開発者ドキュメント

Ubuntu14.04でGogsを設定する方法

Gogsからの記事

序章

Gogs は、Goで記述されたセルフホストのGitサービスであり、実行が非常に簡単で、システムの使用量も少なくなっています。 これは、セルフホストのGitサービスをセットアップするための最も簡単で、最速で、最も苦痛のない方法であることを目指しています。

このチュートリアルを終了すると、Gogsの実行中のインスタンスが作成されます。これには、Webインターフェイス、管理ダッシュボード、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データベースを作成します。 your_passwordを、この手順の前半で選択したルートパスワードに置き換えます。

:このコマンドでは、-pフラグとパスワードの間にスペースはありません。

mysql -u root -pyour_password < gogs.sql

ソースからGogsをインストールするには、GitやMercurialなどのバージョン管理ツールが必要なので、次にインストールします。

sudo apt-get -y install mercurial git

SSH経由でリポジトリのクローンを作成する場合は、SSHサーバーが機能している必要がありますが、幸い、Ubuntu14.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を使用して、Goの最新の準拠バージョンをWebサイトからダウンロードします。 執筆時点では、最新のファイルは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サービスを管理します。

まず、インストールしましょう。

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      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

また、URLhttp://your_server_ip:3000/でWebページにアクセスできるはずです。 これによりインストールページにリダイレクトされますが、まだ記入しないでください。

ステップ4—Nginxをリバースプロキシとして設定する

ドメイン名をGogsに簡単にバインドできるように、Nginxをリバースプロキシとして構成することに移りましょう。

まず、Nginxをインストールします。

sudo apt-get -y install nginx

次に、gogsのNginx構成ファイルを作成します。

sudo nano /etc/nginx/sites-available/gogs

次のコンテンツを追加し、your_server_ipをDropletのIPアドレスに置き換えます。 ドロップレットにドメイン名を使用している場合は、代わりにここでドメイン名を使用できます。

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仮想ホスト構成ファイルの詳細については、このチュートリアルを参照してください。

最後に、Nginxを再起動して、仮想ホスト構成をアクティブ化します。

sudo service nginx restart

これで、ポートを指定しなくても、URLhttp://your_server_ip/でWebページにアクセスできるようになります。

ステップ5—ゴグを初期化する

最初の実行のためにGogsを初期化するためのもう1つの簡単なステップが残っています。

http://your_server_ip/installにアクセスして、次のオプションを入力します。 それらの多くはすでに記入されていますが、赤の変数をサーバーの値に置き換えてください。

最初のセクションで、 GogsにはMySQL、PostgreSQL、またはSQLite3が必要です。次のように入力してください。

2番目のセクションGogsの一般設定に、次のように入力します。

オプションの電子メールと通知の設定をスキップし、管理者アカウント設定で、管理者のユーザー名とパスワードを選択し、電子メールアドレスを含めます。 次のステップでは、管理者ユーザー名をyour_admin_usernameと呼びます。

最後に、 Gogsのインストールをクリックして、ログインします。

ステップ6—テストゴグ

これですべて完了です。 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に追加された行。 とても簡単です!

モバイルバージョンを終了