Ubuntu18.04でgogsサーバー

Ubuntu18.04でgogsサーバー

以下のqiitaを参考に。。。というかそのままできる。

導入(失敗編)

PackageのInstall
$ 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やんけ!!!

UbuntuのVersition確認
$ cat /etc/lsb-release

導入(成功編)

まずsqliteがないとダメらしいのでインストール

SqliteのInstall
$ 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できる

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-install.jpg

上のは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

https://gogs.example.comにアクセスできれば,成功です

参考文献

https://linuxize.com/post/how-to-install-and-configure-gogs-on-ubuntu-18-04/