0
2

More than 3 years have passed since last update.

Ubuntu18.04でのGogs鯖の導入

Last updated at Posted at 2020-03-24

はじめに

Ubuntu18.04でgogs鯖を立てる記事です.
経緯としてはサークルの代表からGit鯖立てろ!ってことでGogs軽そうで良さげじゃねと

導入(失敗編)

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

参考文献

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2