http://gogs.io [Gogs]からの記事
前書き
http://gogs.io [Gogs]はGoで記述された自己ホストGitサービスであり、実行が非常に簡単で、システムの使用率も低くなっています。 セルフホストGitサービスをセットアップするための最も簡単で、最速で、最も簡単な方法になることを目指しています。
このチュートリアルの終わりまでに、Webインターフェイス、管理ダッシュボード、Gitのプルアンドプッシュなどの操作へのアクセスを含むGogsの実行インスタンスが作成されます。
前提条件
このチュートリアルを実行するには、次のものが必要です。
-
任意のサイズのUbuntu 14.04ドロップレット。
-
sudo non-root user。 このチュートリアルでは、セキュリティ上の理由から、Gogs専用の別のsudo非ルートユーザーを使用します。 このチュートリアルでは、Gitサービスの規則に従って、この専用ユーザーの名前が* git *であると想定しています。 * git *ユーザーとしてこのチュートリアルに従う必要があります。
手順1-データベースのインストール
この手順では、バックエンドのGogsデータベースを作成します。
ログインした後、システムパッケージが最新であることを確認してください。
sudo apt-get update
MySQLをバックエンドサーバーとして使用するので、次にインストールします。 ここの `+ -y +`フラグは、すべてのプロンプトに対してyesと仮定します。
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データベースを作成します。 `+`をこのステップで先ほど選択したルートパスワードに置き換えます。
注意:このコマンドでは、 `+ -p +`フラグとパスワードの間にスペースはありません。
mysql -u root -p < gogs.sql
_ _
ソースからGogsをインストールするには、GitやMercurialなどのバージョン管理ツールが必要なので、次にインストールします。
sudo apt-get -y install mercurial git
SSH経由でリポジトリのクローンを作成する場合は、機能するSSHサーバーが必要ですが、幸いなことにUbuntu 14.04にはすぐに使えるものが付属しています。
ステップ2-Goのインストール
GogsはGoで記述されているため、Gogsをコンパイルする前にインストールする必要があります。
まず、Go用に設定する必要がある環境変数がいくつかあります。 これを行うには、ファイル `+〜/ .bashrc +`を開いて編集します。
nano ~/.bashrc
ファイルの最後に次の行を追加し、閉じて保存します。
export GOPATH=/home/git/go
export GOROOT=/usr/local/src/go
export PATH=${PATH}:$GOROOT/bin
次に、変更を適用します。
source ~/.bashrc
次に、 `+ wget `を使用して、http://golang.org/dl/ [website]から最新の準拠バージョンのGoをダウンロードします。 執筆時点では、最新のファイルは ` 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.
手順3-Gogsをサービスとしてインストールして開始する
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
Gogsサービスの管理には、http://supervisord.org/ [Supervisor]を使用します。
まず、インストールしましょう。
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で自動的に起動し、ログファイルと対応する環境変数の場所を指定します。 スーパーバイザー構成の詳細については、https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps [tutorial]をご覧ください。
次に、スーパーバイザを再起動します。
sudo service supervisor restart
次のコマンドでGogsが実行されていることを確認できます。
ps -ef | grep gogs
このようなものが出力として表示されるはずです。
root 1344 1343 0 08:55 ? 00:00:00 /home/git/go/src/github.com/gogits/gogs/gogs web
サーバーが実行されていることを確認するには、 `+ stdout.log +`ファイルも調べます。
tail /var/log/gogs/stdout.log
次のような行が表示されるはずです。
2015/03/09 14:24:42 [I] Gogs: Go Git Service 0.5.16.0301 Beta
URL `+ http://:3000 / +`でWebページにアクセスできるはずです。 これによりインストールページにリダイレクトされますが、まだ記入しないでください。
ステップ4-Nginxをリバースプロキシとして設定する
次に、* Nginx *をリバースプロキシとして構成して、ドメイン名をGogsに簡単にバインドできるようにします。
まず、Nginxをインストールします。
sudo apt-get -y install nginx
次に、gogs用のNginx構成ファイルを作成します。
sudo nano /etc/nginx/sites-available/gogs
次のコンテンツを追加し、「++」をドロップレットのIPアドレスに置き換えます。 ドロップレットにドメイン名を使用している場合は、代わりにここでドメイン名を使用できます。
server {
listen 80;
server_name ;
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仮想ホスト構成ファイルの詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04を参照してください-lts [チュートリアル]。
最後に、Nginxを再起動して仮想ホスト構成をアクティブにします。
sudo service nginx restart
これで、ポートを指定せずにURL `+ http:/// +`でWebページにアクセスできるはずです。
ステップ5-Gogsの初期化
Gogsを最初の実行用に初期化するための、もう1つの簡単なステップが残っています。
`+ http:/// install +`にアクセスして、次のオプションを入力します。 それらの多くはすでに入力されていますが、赤の変数をサーバーの値に置き換えてください。
最初のセクションでは、* GogsにはMySQL、PostgreSQL、またはSQLite3 *が必要です。記入してください。
-
データベースタイプ:
+ MySQL
-
ホスト:
+127.0.0.1:3306 +
-
ユーザー:
+ root
-
パスワード:
++
-
データベース名:
+ gogs +
2番目のセクション* Gogsの一般設定*に入力します。
-
リポジトリのルートパス:
+ / home / git / gogs-repositories +
-
実行ユーザー:
+ git +
-
ドメイン:
++
-
HTTPポート:
+ 3000 +
-
アプリケーションURL:
+ http:/// +
オプションの電子メールと通知の設定をスキップし、[管理者アカウントの設定] *で管理者のユーザー名とパスワードを選択し、電子メールアドレスを含めます。 次のステップでは、管理者のユーザー名を「++」と呼びます。
最後に、* Gogsのインストール*をクリックして、ログインします。
ステップ6-Gogsをテストする
完了です! Gogsが正しく機能することを確認するために、簡単なプル/プッシュテストを行いましょう。
最初に、 `+ http:/// repo / create +`に移動して* my-test-repo *という名前のリポジトリを作成し、*このリポジトリをREADME.md *で初期化するオプションをクリックします。
これで、クローンを作成できるはずです。 最初に、ホームディレクトリに移動します。
cd
次に、リポジトリを複製します。
git clone http:////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://// my-test-repo +`に戻ると、READMEに「I love Gogs!」という行が追加されています。 とても簡単です!