ローカルサーバに Gogs をインストールする
ちょっとローカルに Git のリポジトリを置いておくサーバが欲しかったので docker コンテナにインストールしました。
今回は http によるアクセスのみで、SSH によるアクセスはできない設定です。
# cat /etc/debian_version 8.8
コンテナの3000ポートとホストの3000ポートを繋いでいます。
Gogs のインストールはドキュメントを読むと楽勝です。
今回はバイナリ版を入れています。
ざっくり環境を整える
sudo と vim と wget を入れておきます。なぜか curl も気分で入れました。
# apt-get install sudo vim wget curl -y # adduser zoar # usermod -aG sudo zoar # su zoar
MySQL Server のインストール
$ sudo apt-get install mysql-server -y $ sudo /etc/init.d/mysql start
コントロールするユーザーとデータを格納するデータベースを作ります。
$ mysql -uroot -p mysql> CREATE DATABASE gogs; mysql> CREATE USER zoar@localhost IDENTIFIED BY '%パスワード%'; mysql> use mysql mysql> SELECT User FROM user WHERE User = 'zoar'; +------+ | User | +------+ | zoar | +------+ mysql> GRANT all ON gogs.* TO zoar@localhost; mysql> \q
Go言語のインストール
apt-get で入れようとすると 1.3 が落ちてくるので godeb を使って 1.8 をインストールします。
$ cd /tmp $ wget https://godeb.s3.amazonaws.com/godeb-amd64.tar.gz $ tar xvf godeb-amd64.tar.gz $ sudo mv godeb /usr/local/bin/
godeb から Go 言語をインストールする。
$ godeb list | more $ godeb install 1.8
Gogs バイナリのインストール
バイナリを落としてきて展開すればOK。
横着なのでホームディレクトリに直接展開しています。
$ cd /tmp $ wget https://cdn.gogs.io/0.11.19/linux_amd64.tar.gz $ cd ~ $ tar xvf /tmp/linux_amd64.tar.gz
Gogs を起動してウェブインターフェイスにアクセスすれば完了
$ cd gogs $ ./gogs web
変更したのは次の部分。
最後に Gogs をインストール
をクリックしておしまい。
最初に作成したユーザーが Gogs のサイト管理もできる権限に設定されます。
普通の(?) http で接続できるようにする
操作するときに :3000
を付けるのが面倒な感じだったので docker ホストで動いてる apache2 にプロキシ設定を追加して /gogs でもアクセスできるようにしました。
まずはコンテナにアタッチして設定を変更します。
host$ docker attach %hash% container$ vi ./custom/conf/app.ini ROOT_URL = http://%サーバーIP%:3000 ↓ ROOT_URL = http://%サーバーIP%/gogs
再度起動しておく
container$ ./gogs web
Ctrl+p q
でデタッチしてホストの設定をいじる
host$ sudo vi /etc/apache2/mods-enabled/proxy.conf ProxyPass /gogs http://%サーバーIP%:3000 ProxyPassReverse /gogs http://%サーバーIP%:3000 host $ sudo service apache2 reload
これで http://%サーバーIP%/gogs
にアクセスして gogs を使えるようになりました。