自宅サーバに GitBucket をインストールする方法

自宅サーバに GitBucket をインストールする方法 技術ネタ

これまでは、Bitbucket を使っていたのですが、管理するリポジトリが増えそうだし、なんとなく自宅で管理する方が安全な気がしたので、GitBucket に移行することにしました。
その時の構築手順になります。



前提

本説明は以下の環境を前提としています。

  • GitBucket : 4.31.1
  • OS : CentOS Linux release 7.5.1804 (Core)
  • JDK : 11.0.2
  • Nginx : 1.12.2

JDKインストール

JDKが既にインストールされている場合はスキップしてください。
以下のコマンドでJDKをインストールします。

sudo yum install java11-openjdk

GitBucketプログラム実行用ユーザ作成

以下のコマンドでグループ「gitbucket」、ユーザ「gitbucket」を作成します。

# グループ追加
sudo groupadd gitbucket
# ユーザ追加
sudo useradd -g gitbucket -s /bin/bash gitbucket
# 追加したユーザのパスワード設定
sudo passwd gitbucket

GitBucket のインストール

GitBucket をインストールします。
なお、作業は上で作成した GitBucket 用ユーザで行うため、最初に suコマンドでユーザを変更しています。

GitBucketのインストール先は
↑で作成したユーザのホームディレクトリ「/home/gitbucket」としています。
# ユーザ変更
su - gitbucket

# GitBucketをダウンロード
wget https://github.com/gitbucket/gitbucket/releases/download/4.31.1/gitbucket.war

# ダウンロードしたファイルのチェックサム確認
# ※最後に「gitbucket.war: 完了」と表示されればOK
wget https://github.com/gitbucket/gitbucket/releases/download/4.31.1/gitbucket.war.sha256 -O gitbucket.war.sha256; echo -e "\tgitbucket.war" | tee -a gitbucket.war.sha256; sha256sum -c gitbucket.war.sha256; rm gitbucket.war.sha256

# 起動用スクリプト作成
# ※1 ファイルの内容は以下を参照してください。
vi start_gitbucket.sh

# 作成した起動スクリプトの権限変更
chmod 700 start_gitbucket.sh

# GitBucketのデータディレクトリ作成
mkdir data

# 作業が完了したので、gitbucketユーザから抜ける
exit

※1「start_gitbucket.sh」ファイルの内容

#!/bin/bash
java -jar /home/gitbucket/gitbucket.war --prefix=/gitbucket --gitbucket.home=/home/gitbucket/data

ここで一旦、GitBucket が起動できるか確認します。
以下のコマンドを実行後に、
http://xxx.xxx.xxx.xxx:8080/gitbucket/
でページを開き、問題なく表示されるか確認してください。

/home/gitbucket/start_gitbucket.sh

※確認できたら、 Ctrl+c で終了してください。

自動起動設定

自動で GitBucket が起動されるように設定します。

# サービスファイル作成
# ※2 ファイルの内容は以下を参照してください。
sudo -e /usr/lib/systemd/system/gitbucket.service
# 念のため、作成したサービスファイルの内容確認
cat /usr/lib/systemd/system/gitbucket.service

# サービス起動
sudo systemctl start gitbucket
# 起動状態確認
# 「Active: active (running)」と表示されていればOK
sudo systemctl status gitbucket
# 自動起動設定
# 以下のように表示されていればOK
#  Loaded: loaded (/usr/lib/systemd/system/gitbucket.service; enabled; vendor preset: disabled)
sudo systemctl enable gitbucket

※2「gitbucket.service」ファイルの内容

[Unit]
Description = GitBucket daemon
ConditionPathExists = /home/gitbucket

[Service]
ExecStart = /home/gitbucket/start_gitbucket.sh
Restart = always
Type = simple
User=gitbucket
Group=gitbucket

[Install]
WantedBy = multi-user.target

上の操作で GitBucket が起動された状態になっていますので、先程同様、以下のページにアクセスし問題なく表示されるか確認します。
http://xxx.xxx.xxx.xxx:8080/gitbucket/

Nginx にリバースプロキシ設定

Nginx 経由でアクセスするため、リバースプロキシを設定します。

# Nginx設定ファイルを書き換え、GitBucket の proxy_pass を追加
# ※3 ファイルに追加する内容は以下を参照してください。
sudo vi /etc/nginx/nginx.conf

# 設定反映
systemctl reload nginx

※3「nginx.conf」に追加する内容。server ディレクティブに追加してください。

location /gitbucket/ {
    proxy_pass http://127.0.0.1:8080/gitbucket/;
}

Nginx 経由でアクセスできるか、以下のページで確認します。
http://xxx.xxx.xxx.xxx/gitbucket/

ページが正しく表示されれば、全ての作業は完了になります。

【参考】
最初に GitBucket にログインするためのアカウントは以下になります。
ID: root
パスワード: root

GitBucket のURL変更

上の手順で作業は完了していますが、このままWEBページで使っていると、URLにポート番号(8080)がついてしまうなど、使いにくくなっています。
その場合は、以下の手順で URLを変更してください。

  • rootで GitBucketのページにログイン
  • 右上のメニューをクリックし、「System administration」を選択
  • 左のメニューから、「System settings」を選択
  • 「Base URL」が空になっていると思うので、ここに正しいURLを入力
  • ページ右下の「Apply changes」をクリックし設定を保存

最後に

Gitは開発に欠かせないものです。
自宅で Gitサーバを立ち上げたい方がいたら参考にしてください。