GitBucketをインストールする

この記事は約6分で読めます。

ソースやスクリプトといったもののバージョンやパッケージなどのリポジトリ管理ツールとして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で確認してください。)

たけぞう瀕死ブログ
たけぞう瀕死ブログ
https://github.com/gitbucket/gitbucket
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を選択します。ログインパスワードを変更してください。

タイトルとURLをコピーしました