ソースやスクリプトといったもののバージョンやパッケージなどのリポジトリ管理ツールとしてGitHubが使用されているが、自分だけのリポジトリ管理ツールを使いたいと思います。GitHubに近い機能を実装しているGitBusketをインストールします。GitBusketはJavaで作成されていますが、利便性を考えNGINXによるリバースプロキシでアクセスするようにします。
前提条件
OS: CentOS8.2(8.2.2.2004)
Minimalインストール、SELinuxは無効
SSL証明書が発行されていること
必要なパッケージのインストール
yum install -y java-1.8.0-openjdk wget
GitBusketのインストールと設定
GitBucket起動用スクリプトの作成
起動用のスクリプトを作成します。
vi /usr/local/sbin/StartGitBucket.sh
!/bin/sh
su - -c "java -jar /usr/local/gitbucket/gitbucket.war --gitbucket.home=/usr/local/gitbucket/"
スクリプトへ実効権限を付与します。
chmod +x /usr/local/sbin/StartGitBucket.sh
GitBucketのダウンロード
warファイルなどを保存するためのフォルダを作成し、GitBucketをダウンロードします。(最新のバイナリは 以下のURLで確認してください。)

mkdir /usr/local/gitbucket
cd /usr/local/gitbucket
wget https://github.com/gitbucket/gitbucket/releases/download/4.34.0/gitbucket.war
システムサービス登録
システムサービス設定情報を作成します。
vi /usr/lib/systemd/system/gitbucket.service
[Unit]
Description = GitBucket daemon
[Service]
ExecStart = /usr/local/sbin/StartGitBucket.sh
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
システムサービスを再読み込みします。
systemctl daemon-reload
システムサービスとして認識されているか確認します。
systemctl list-unit-files --type=service | grep gitbucket
gitbucket.service disabled
と表示されていることを確認します。
GitBusketの自動起動設定
systemctl enable gitbucket
Created symlink /etc/systemd/system/multi-user.target.wants/gitbucket.service → /usr/lib/systemd/system/gitbucket.service.
Nginxのインストールと設定
Nginxのインストール
yum -y install nginx
リバースプロキシ設定ファイル作成
SSLのための証明書は/etc/nginx/cert配下に準備されているという前提での設定となります。また、SSLに関する設定については各自調整をしてください。一部リクエストに関するレスポンスがHTTPで返されるため、HTTPSにリダイレクトを行う設定にしてあります。
vi /etc/nginx/conf.d/getbusket.conf
server {
listen 80;
server_name <ホスト名に置き換えてください>;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name <ホスト名に置き換えてください>;
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
ssl_dhparam /etc/nginx/cert/dhparam.key;
ssl_session_tickets on;
ssl_session_ticket_key /etc/nginx/cert/session_ticket.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers "AES128+ECDHE:AES256+ECDHE:AES128+EDH:AES256+EDH:HIGH:!aNULL :!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4!CAMELLIA!AES128-SHA!AES128-SHA256!AES128 -GCM-SHA256:!AES256-GCM-SHA384:!AES256-SHA256:!AES256-SHA!AES256-CCM8!AES256 -CCM!AES128-CCM!ARIA128-GCM-SHA256!AES128-CCM8!ARIA256-GCM-SHA384";
ssl_prefer_server_ciphers on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
Nginxの自動起動設定
systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
Firewallの通信許可設定
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
アクセス確認
ブラウザでhttps://ホスト名にアクセスします。
以下の画面が表示されることを確認します。

右上のSign inをクリックするとログイン画面が表示されます。

Username、Passwordにrootを入れて[Sign in]ボタンをクリックします。

右上の[r]をクリックしAccount Settingsを選択します。ログインパスワードを変更してください。
