はじめに
Ubuntu18.04でgogs鯖を立てる記事です.
経緯としてはサークルの代表からGit鯖立てろ!ってことでGogs軽そうで良さげじゃねと
#導入(失敗編)
$ wget -qO- https://dl.packager.io/srv/pkgr/gogs/key | sudo apt-key add -
$ sudo wget -O /etc/apt/sources.list.d/gogs.list \
https://dl.packager.io/srv/pkgr/gogs/pkgr/installer/ubuntu/16.04.repo
$ sudo apt-get update
$ sudo apt-get install gogs
コマンドはGogsのガイドをそのままコピーで楽ちん!!!と思ったら動かなかった...
あ,UbuntuのVersionが18.04.4やんけ!!!
$ cat /etc/lsb-release
#導入(成功編)
まずsqliteがないとダメらしいのでインストール
$ sudo apt install sqlite3
次にgitのversionが最新版かどうか確認(一番最初にしろ)
$ git --version
git version 2.17.1
次に,gitユーザの獲得
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
最新版が0.11.91だったので以下のコマンドを実行Versionを変えれば他のバージョンをgoogledriveからinstallできる
$ VERSION=0.11.91
$ wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz -P /tmp
tarの解凍
$ sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
Gogsインストールディレクトリの所有権をユーザーおよびグループgitに変更
$ sudo chown -R git: /home/git/gogs
Systemdユニットファイルのコピー
$ sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
gogs鯖の起動と確認
$ sudo systemctl start gogs
$ sudo systemctl enable gogs
$ sudo systemctl status gogs
#webインストーラー
webインターフェースを開いて設定を行なっていきます
./gogs web
http://127.0.0.1:3000をブラウザで開いて設定を行います.
上のはGogsの公式が出している画像です.MySqlを使いたい場合,文字コードをUTF8にしたデータベースをMysqlで先に作っておきましょう.
Nginxの設定をします.
Nginxが入っていない人は導入をして,次のファイルを開いて編集します.
sudo nano /etc/nginx/sites-enabled/gogs.example.com
server {
listen 80;
server_name gogs.example.com;
include snippets/letsencrypt.conf;
return 301 https://gogs.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name gogs.example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 50m;
# Proxy headers
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
# log files
access_log /var/log/nginx/gogs.example.com.access.log;
error_log /var/log/nginx/gogs.example.com.error.log;
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:3000;
}
}
最後に,nginxを再起動して,gogsのドメインとルートUrlの変更を行なって,gogsサービスを再起動したら終わりです!!
//Nginxの再起動
$ sudo systemctl restart nginx
$ sudo nano /home/git/gogs/custom/conf/app.ini
[server]
DOMAIN = gogs.example.com
ROOT_URL = https://gogs.example.com/
//Gogsの再起動
$ sudo systemctl restart gogs
参考文献