[ Gogs](http://gogs.io/)は、Goで記述された自己ホスト型のGitサービスです。実行が簡単で、システムの使用率が低くなっています。セルフホストのGitサービスを構築するための最も簡単、最速、そして最も簡単な方法を目指しています。
このチュートリアルの最後に、Gogsの実行中のインスタンスがあります。これには、Webインターフェイス、管理ダッシュボード、およびGitのプルやプッシュなどの操作へのアクセスが含まれます。
このチュートリアルに従うには、次のものが必要です。
このステップでは、バックエンドGogsデータベースを作成します。
ログイン後、システムソフトウェアパッケージが最新であることを確認してください。
sudo apt-get update
[MySQL](https://cloud.tencent.com/product/cdb?from=10680)をバックエンドサーバーとして使用し、インストールします。ここでの -y
フラグは、すべてのプロンプトがそうであることを前提としています。
sudo apt-get-y install mysql-server
インストールプロセス中に、システムはデータベース** root **ユーザーのパスワードを入力するように要求します。このチュートリアルの後半で必要になるため、安全に使用し、覚えておいてください。
次に、 gogs.sql
という名前のファイルを作成して開きます。ここでは nano
エディターを使用していますが、お好みのテキストエディターを使用できます。
nano gogs.sql
次のコンテンツをファイルに貼り付けて、保存して閉じます。
DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
最後に、MySQLを使用して gogs.sql
を実行し、Gogsデータベースを作成します。 your_password
を、この手順の前半で選択したルートパスワードに置き換えます。
注:このコマンドでは、 -p
記号とパスワードの間にスペースはありません。
mysql -u root -pyour_password < gogs.sql
ソースコードからGogsをインストールするには、GitやMercurialなどのバージョン制御ツールを使用してからインストールする必要があります。
sudo apt-get-y install mercurial git
SSH経由でリポジトリのクローンを作成する場合は、機能するSSHサーバーが必要ですが、幸い、Ubuntu14.04にはすぐに使用できるサーバーが用意されています。
GogsはGoで記述されているため、Gogをコンパイルする前にインストールする必要があります。
まず、Goのいくつかの環境変数を設定する必要があります。これを行うには、編集用に 〜/ .bashrc
ファイルを開きます。
nano ~/.bashrc
ファイルの最後に次の行を追加し、閉じて保存します。
export GOPATH=/home/git/go
export GOROOT=/usr/local/src/go
export PATH=${PATH}:$GOROOT/bin
次に、変更を適用します。
source ~/.bashrc
次に、 wget
を使用して、Goの最新のコンパイル済みバージョンを[Webサイト](http://golang.org/dl/)からダウンロードします。この記事を書いている時点で、最新のファイルは go1.4.2.linux-amd64.tar.gz
です。
wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
tar
を使用してアーカイブを解放します。
tar zxf go1.4.2.linux-amd64.tar.gz
ディレクトリを 〜/ .bashrc
で定義した $ GOROOT
ディレクトリに変更します。
sudo mv go $GOROOT
ここで、ターミナルに「go」と入力すると、次のようになります。
go
次のようなものが表示されます。
Go is a tool for managing Go source code.
Usage:
go command [arguments]
...
Use "go help [topic]"for more information about that topic.
Goには、Goプロジェクトのソースコードとそのすべての依存関係を簡単にダウンロードするための組み込みコマンド get
があります。これを使用して、Gogsをダウンロードします。
go get-d github.com/gogits/gogs
Gogsのソースコードは $ GOPATH / src / github.com / gogits / gogs
に移動するので、そこに移動します。
cd $GOPATH/src/github.com/gogits/gogs
次に、バイナリファイルをビルドして生成します。このコマンドの実行には時間がかかる場合があります。
go build
[Supervisor](http://supervisord.org/)を使用してGogsサービスを管理します。
まず、インストールしましょう。
sudo apt-get-y install supervisor
スーパーバイザー構成セクションを作成して、Gogsデーモンを作成しましょう。まず、ログファイル用のディレクトリを作成します。
sudo mkdir -p /var/log/gogs
次に、スーパーバイザー構成ファイルを開いて編集します。
sudo nano /etc/supervisor/supervisord.conf
以下をファイルに追加して、Gogsセクションを作成します。
[ program:gogs]
directory=/home/git/go/src/github.com/gogits/gogs/
command=/home/git/go/src/github.com/gogits/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/git", USER="git"
user = git
このセクションでは、Gogsを起動し、Supervisorを使用して自動的に起動し、ログファイルの場所と対応する環境変数を指定するために実行するコマンドを定義します。
次に、Supervisorを再起動します。
sudo service supervisor restart
次のコマンドを使用して、Gogsが実行されているかどうかを確認できます。
ps -ef | grep gogs
これに似た出力が表示されるはずです。
root 13441343008:55?00:00:00/home/git/go/src/github.com/gogits/gogs/gogs web
stdout.log
ファイルを表示して、サーバーが実行されていることを確認することもできます。
tail /var/log/gogs/stdout.log
次のような行が表示されます。
2015 /03/0914:24:42[I] Gogs: Go Git Service 0.5.16.0301 Beta
また、URLが「http:// your_server_ip:3000 /」のWebページにアクセスできる必要があります。これによりインストールページにリダイレクトされますが、まだ入力されていません。
ドメイン名をGogsに簡単にバインドできるように、** Nginx **をリバースプロキシとして構成し続けましょう。
まず、Nginxをインストールします。
sudo apt-get-y install nginx
次に、gogsのNginx構成ファイルを作成します。
sudo nano /etc/nginx/sites-available/gogs
以下を追加し、 your_server_ip
をTencentCVMのIPアドレスに置き換えます。 Tencent CVMのドメイン名を使用している場合は、ここでドメイン名を使用できます。
server {
listen 80;
server_name your_server_ip;
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP
location /{
proxy_pass http://localhost:3000;}}
そして、Nginxがそれを使用できるように、それにシンボリックリンクを作成します。
sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs
最後に、Nginxを再起動して、仮想ホスト構成をアクティブ化します。
sudo service nginx restart
これで、URLvhttp:// your_server_ip /
を使用して、ポートを指定せずにWebページにアクセスできるようになります。
最初の実行時にGogsを初期化する簡単な手順もあります。
http:// your_server_ip / install
にアクセスし、次のオプションを入力します。これらの多くはすでに入力されていますが、必ず赤い変数をサーバーの値に置き換えてください。
最初の部分では、** GogsにはMySQL、** [** PostgreSQL ](https://cloud.tencent.com/product/postgresql?from=10680)、またはSQLite3 **が必要です。次のように入力してください。
MySQL
127.0.0.1:3306
root
your_database_password
gogs
2番目の部分である** Gogs General Settings **に、次のように入力します。
/ home / git / gogs-repositories
git
your_server_ip
3000
http:// your_server_ip /
オプションのメールと通知の設定をスキップし、[**管理者アカウントの設定] **で、管理者のユーザー名とパスワードを選択し、メールアドレスを含めます。次のステップで、adminユーザー名を your_admin_username
に設定します。
最後に、[**インストールゴグ] **をクリックしてログインします。
これですべて完了です。簡単なプル/プッシュテストを実行して、Gogsが正しく実行されていることを確認しましょう。
まず、 http:// your_server_ip / repo / create
に移動し、** my-test-repo **という名前のリポジトリを作成してから、[このリポジトリを初期化するためにREADME.mdを使用]オプションをクリックします。 。
これで、クローンを作成できるはずです。まず、ホームディレクトリに移動します。
cd
次に、リポジトリのクローンを作成します。
git clone http://your_server_ip/your_admin_username/my-test-repo.git
リポジトリディレクトリに切り替えます。
cd my-test-repo
README.md
を更新します。
echo 'I love Gogs!'>> README.md
変更を送信してプッシュします。このコマンドは、Gogsのユーザー名とパスワードを要求します。
git add --all && git commit -m "init commit"&& git push origin master
ここで、 http:// your_server_ip / your_admin_username / my-test-repo
に戻ると、README行に「IlikeGogs!」が追加されているのがわかります。とても簡単です!
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu14.04でゴグを設定する方法」
Recommended Posts