ソースやスクリプトといったもののバージョンやパッケージなどのリポジトリ管理ツールとして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を選択します。ログインパスワードを変更してください。
