09/11/2018 GogsのURLを修正しました。
Google Cloud Platformで無料枠になっていたf1-microの用途に悩んでいたのですが、おひとり様gitサーバーとして使ってみよう、と天啓が下りました。
GitHubのようなOSSで有名なのはGitLabですが、f1-microのスペックでは非常に厳しいです。
(推奨環境がCPU 2コア、メモリ4GB)
他に何かないかなと探してみるとGitBucketやらが出てきましたが、その中でGogsが非常に軽いと聞き、使ってみることにしました。
f1-microの環境は、
f1-micro(vCPU x 1、メモリ 0.6 GB)、
us-west1-c、
HTTP, HTTPSトラフィックの許可、
30GBの標準の永続ディスク、
また、独自ドメインで運用したいのでネットワークに静的 IP アドレスを割り当てています。
今回は、
Gogs, Apache, sqlite,
ssl化にLet's Encryptを使用しています。
必要に応じてiptablesは各自で設定してください。
Contents [hide]
準備
インスタンスを作りたて前提です。Gogs導入前にまずは必要な設定等をしていきます。
swapファイルも作っておきます。(今回は2GB)
Apache、Certbot、Sqliteをインストールします。
gitユーザーの追加,Gogsの導入
Gogsのインストールの説明にしたがってGogsを設置していきます。
Apacheのリバースプロキシの設定をして独自ドメインでアクセスした際にgogsに飛ぶようにします。
cd /etc/apache2/sites-available
sudo vim 000-default.conf
# DocumentRootの下の行ぐらいに追加
+ ProxyPreserveHost On
+ ProxyRequests off
+ ProxyPass / http://127.0.0.1:3000/
+ ProxyPassReverse / http://127.0.0.1:3000/
# Apacheのproxy, proxy_http モジュールの有効化
sudo a2enmod proxy proxy_http
# Apache2とgogsの起動
sudo service apache2 start
sudo service gogs start
設定したドメインでアクセスできることを確認できたら、次はsslの設定をします。
httpsで接続できることを確認できたらgogsの初期設定をして導入完了です。
おそらく初回アクセスで/installのページに飛ぶのでそこで初期設定を行います。
Certbotの自動更新
certbot (Let's Encrypt)は自動で更新してくれないのでcronに登録して自動更新してくれるようにしておきましょう。
今回は月に一回、証明証を更新する設定にしています。
Gogsのカスタム
初期設定後、custom/confにapp.iniが作成されるので、そのファイルからある程度Gogsのカスタムができます。
詳細はhttps://gogs.io/docs/advanced/configuration_cheat_sheetを参照してください。