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!」という行が追加されています。 とても簡単です!