自宅内GitLabサーバ構築手順メモ

背景/目的

私は履歴書を docker-compose で作成している(参考[1])のですが、それらツール一式 + 個人のデータをバージョン管理したいと考え、自宅にGitLabサーバを構築しようと思い至りました。

今回は試しにラズパイ上で実装したものの、結果的にメモリが不足していると感じ、別マシン上に再構築予定のため、その手順を見返すためにも簡潔にではありますがメモを残しておきます。

実行環境

GitLabサーバを導入したマシンのスペック + GitLabのversionは下記の通りです。
※以前の記事(リンク)でApptainer+MPIの動作確認するために使用したマシンと同じです。

サーバ (ホスト名:sakuya / ラズパイ4)
・OS:Debian GNU/Linux 12 (bookworm)
・CPU:Cortex-A72 (4コア/ARM)
・Memory:4 GB (+swap 2GB)
・GitLab version:GitLab Enterprise Edition v17.5.1-ee

実行手順

以下、簡単に実行した際のコマンドを記述していきます。

### 各コマンドはrootで実行
### GitLabをインストールする上でpostfixが必要になるため
apt-get install -y postfix

Installスクリプトをダウンロードする

wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh

script.deb.shを実行することでレポジトリを追加する

bash script.deb.sh

/etc/apt/sources.list.d/配下を参照するとgitlab-ee.listが存在するため下記実行

apt-get install gitlab-ee

設定を再構成してサービスを起動する(所要時間10~20min)

gitlab-ctl reconfigure

サービスが起動しているか確認する。

nc -vz localhost 80

GitLabログイン用の初期IDはroot/初期Passwordを下記で確認する

cat /etc/gitlab/initial_root_password

これらの作業を実施することでブラウザ上からhttp通信にてGitLabサーバへアクセスできるようになるかと思います。

設定追加事項

上記で最低限の操作が可能になる想定ですが、念のため私は下記2点を実施しました。

  • rootのパスワード変更
    初期パスワードをブラウザ上から変更します。左上の自分のアイコンから「Edit Profile」を選択後、「Password」を選択して設定すれば完了です。
    // 再ログインが要求されるかもしれません
  • Clone時に表示されるホスト名を変更
    当たり前ですが、コードをcloneする際にIPアドレスを直に入力するか、クライアント側で名前解決ができるホスト名を入力しないとcloneは失敗してしまいます。このラズパイはhost名を「sakuya」にしているので、下記のような表示に設定したいと思います。

上図の通りURLにホスト名を入れるにはgitlab.ymlの修正が必要なため下記を実行しました。

### rootで下記のファイルを編集する
emacs /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

ファイルを開いたのちに以下のhost部分を編集する

(中略)

GitLab settings

gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: sakuya ### ここに指定のホスト名を入力する port: 80 https: false

最後に下記のコマンドにて設定を反映させて完了です。(参考[2])

### GitLab関連のサービス一式を再起動する
gitlab-ctl restart

設定作業としては以上で完了となります。

想定される必要なスペック

メモリが足らないとは言いつつも、現時点でどれくらいメモリが使われているのか?について記載すると、常時下記の状態になっており応答がモッサリしています。

ro644@sakuya:~ $ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       3.4Gi       103Mi        72Mi       356Mi       312Mi
Swap:          1.9Gi       1.9Gi       1.2Mi

GitLab の最低メモリ要件についても公式ドキュメントに記載があるため、こちらにも残しておきます。(参考[3])

ラズパイ上で GitLab を動かす場合は、メモリ容量が一番多い 8GB モデルを選ぶことをおすすめします。

私はメモリ不足の観点から、別マシン上でGitLabを実行する方針で考えていましたが、GitLab側のパラメータチューニングなどでも症状を改善できそうですので、今後、併せて設定項目や設定値変更時のレスポンスなどをチェックしてみたいと思っています。このあたりのメモリ設定が有効かもしれないなと思っています。(参考[4])

参考にさせていただいた情報

以上