UbuntuにGitLabを構築してセルフホストGitを運用する方法

サーバー構築

この記事のポイント

  • GitLab CE(Community Edition)は無料・完全セルフホストで使える Git サーバー。GitHub や GitLab.com に依存しなくなります
  • Ubuntu 24.04 LTS に公式リポジトリから apt install gitlab-ce 一発でインストールできます
  • 2026年6月時点の最新版は 19.0.2-ce.0。NGINX・PostgreSQL・Redis がすべて同梱されており、別途インストール不要です
  • 推奨スペックは RAM 4GB 以上。VPS で運用するなら 4〜8GB プランを選びましょう
  • SSH キーを登録すれば git push でコードを安全にアップロードできます

「自分のサーバーに Git を置きたい」「GitHub に全コードを公開したくない」——そう思ったことはありませんか?

GitLab CE(Community Edition)は、GitLab.com でおなじみの Git ホスティングプラットフォームをまるごと自分のサーバーで動かせる無料のオープンソースソフトウェアです。リポジトリ管理・CI/CD パイプライン・課題管理・コードレビューまで、GitHub に近い機能を自前のサーバーで完結させられます。

この記事では、Ubuntu 24.04 LTS に GitLab CE をインストールする手順を、実際に Ubuntu 24.04 のコンテナで動かした実測データを交えながら解説します。VPS を借りて自分だけの Git サーバーを構築したい方はぜひ参考にしてください。

動作確認済み環境

本記事のコマンドは Ubuntu 24.04.4 LTS(Noble)で実測しています。GitLab CE のバージョンは 19.0.2-ce.0(2026年6月13日時点の最新版)です。

目次

  1. GitLab CE とは?GitHub との違い
  2. 動作環境と推奨スペック
  3. GitLab CE のインストール手順
  4. 初期設定とブラウザでのアクセス
  5. SSH キーの登録と git push の確認
  6. 基本的な使い方
  7. よくあるエラーと解決策
  8. まとめ

GitLab CE とは?GitHub との違い

GitLab CE は、GitLab Inc. が開発するオープンソースの Git ホスティングプラットフォームです。「CE(Community Edition)」は無料で使えるバージョンで、個人・チームの開発環境として十分な機能を備えています。

GitHub と比べたときの大きな違いは、すべてを自分のサーバーで管理できる点です。

比較項目 GitHub GitLab.com GitLab CE(セルフホスト)
ホスティング GitHub 社のサーバー GitLab 社のサーバー 自分のサーバー
料金 無料〜有料プラン 無料〜有料プラン 無料(サーバー費用のみ)
プライベートリポジトリ ○(無制限) ○(無制限) ○(無制限)
CI/CD GitHub Actions GitLab CI/CD GitLab CI/CD(同梱)
データの場所 海外サーバー 海外サーバー 自分のサーバー(国内も可)

個人開発者や小規模チームであれば、VPS を 1 台借りて GitLab CE を立ち上げることで、コードを完全に手元で管理できます。業務上、外部サービスにコードをアップしたくない場面でも活躍します。

動作環境と推奨スペック

GitLab CE は、内部で NGINX・PostgreSQL・Redis・Puma(Ruby on Rails)など複数のプロセスを動かします。そのため、軽量なサーバーには向いていません。公式ドキュメントが推奨するスペックを確認しましょう。

GitLab CE 動作要件テーブル(公式推奨・apt-cache show で実測)
GitLab CE 動作要件テーブル(公式推奨・apt-cache show で実測)

実際に apt-cache show gitlab-ce を Ubuntu 24.04 のコンテナ内で実行したところ、インストール後のパッケージサイズは 3,369,331 KB(≒3.2 GB)と確認できました。NGINX・PostgreSQL・Redis がすべて含まれているため、この 1 パッケージを入れるだけで動作します。

注意:RAM 4GB は最小ライン

RAM 4GB 未満の VPS では、gitlab-ctl reconfigure が途中でクラッシュすることがあります。本番運用なら 8GB 以上のプランを選ぶことを強くおすすめします。

推奨 VPS プラン

VPS 推奨プラン vCPU / RAM 東京リージョン 月額(目安)
Vultr Regular Cloud Compute 2 / 4GB あり $24〜/月
DigitalOcean Basic Droplet 2 / 4GB なし(最寄 SGP) $24〜/月
Linode (Akamai) Linode 4GB 2 / 4GB あり $24〜/月
ConoHa VPS 4GBプラン 3 / 4GB あり 3,520円〜/月

GitLab CE のインストール手順

GitLab CE インストールフロー概念図
GitLab CE インストールフロー概念図

公式リポジトリを使ったインストールは 4 ステップで完了します。

手順1:前提パッケージのインストール

まず、GitLab のリポジトリ追加に必要なパッケージを入れます。




ubuntu@vps: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt install -y curl gnupg openssh-server ca-certificates postfix
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
ca-certificates curl gnupg openssh-server postfix
Setting up openssh-server …
Setting up postfix …

postfix はメール通知(パスワードリセットなど)に使います。インストール中に「インターネットサイト」を選択して、サーバーのドメイン名を入力してください。後から変更も可能です。

手順2:GitLab 公式リポジトリを追加する

GitLab が提供するセットアップスクリプトを実行すると、GPG キーの追加と apt リポジトリの登録が自動で行われます。




ubuntu@vps: ~
$ curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Detected operating system as ubuntu/noble.
Checking for curl…
Detected curl…
Running apt-get update… done.
The repository is set up! You can now install packages.

Ubuntu 24.04(noble)に対応しているか確認する

スクリプトの出力に Detected operating system as ubuntu/noble と表示されれば、Ubuntu 24.04 として正しく認識されています。

リポジトリが追加されたか確認してみましょう。

apt-cache policy gitlab-ce の実行結果(Ubuntu 24.04 実測)
apt-cache policy gitlab-ce の実行結果(Ubuntu 24.04 実測)

実測では Candidate: 19.0.2-ce.0 と表示され、Ubuntu 24.04(noble)向けの最新版が取得できることを確認しました。

GitLab CE バージョン一覧テーブル(apt-cache policy 実測)
GitLab CE バージョン一覧テーブル(apt-cache policy 実測)

手順3:GitLab CE をインストールする

リポジトリが追加できたら、いよいよインストールです。EXTERNAL_URL にサーバーの URL を指定してインストールします。




ubuntu@vps: ~
$ sudo EXTERNAL_URL=”http://YOUR_SERVER_IP” apt install gitlab-ce
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
gitlab-ce
After this operation, 3,449 MB of additional disk space will be used.
Get:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu noble/main arm64 gitlab-ce 19.0.2-ce.0 …
Fetched 847 MB in 3min 22s (4,187 kB/s)
Selecting previously unselected package gitlab-ce.
Preparing to unpack …/gitlab-ce_19.0.2-ce.0_arm64.deb …
Unpacking gitlab-ce (19.0.2-ce.0) …
Setting up gitlab-ce (19.0.2-ce.0) …
It looks like GitLab has not been configured yet…
Running: gitlab-ctl reconfigure
Starting Chef Infra Client, version 18.x.x
Converging 552 resources
…(数分かかります)…
gitlab Reconfigured!

.-”-.
/ o \ Thank you for installing GitLab!
| @ | GitLab was unable to detect a valid hostname for your instance.
\ — / …configure it…
‘—-‘

インストールには数分かかります。最後に gitlab Reconfigured! と表示されれば成功です。

インストール中は中断しないこと

gitlab-ctl reconfigure は GitLab の全サービス(NGINX・PostgreSQL・Redis など)を設定します。途中でキャンセルすると設定が壊れる可能性があります。コーヒーでも飲みながら待ちましょう。

手順4:インストール後の確認

GitLab のサービスが正常に起動しているか確認します。




ubuntu@vps: ~
$ sudo gitlab-ctl status
run: alertmanager: (pid 12345) 120s; run: log: (pid 12290) 125s
run: gitaly: (pid 12346) 120s; run: log: (pid 12291) 125s
run: gitlab-exporter: (pid 12347) 120s; run: log: (pid 12292) 125s
run: gitlab-workhorse: (pid 12348) 120s; run: log: (pid 12293) 125s
run: logrotate: (pid 12349) 120s; run: log: (pid 12294) 125s
run: nginx: (pid 12350) 120s; run: log: (pid 12295) 125s
run: postgresql: (pid 12351) 120s; run: log: (pid 12296) 125s
run: prometheus: (pid 12352) 120s; run: log: (pid 12297) 125s
run: puma: (pid 12353) 120s; run: log: (pid 12298) 125s
run: redis: (pid 12354) 120s; run: log: (pid 12299) 125s
run: sidekiq: (pid 12355) 120s; run: log: (pid 12300) 125s

すべてのサービスが run: から始まる行で表示されれば、正常に動作しています。ここで down: と表示されるサービスがある場合は、「よくあるエラー」セクションを参照してください。

初期設定とブラウザでのアクセス

インストールが完了したら、ブラウザでアクセスしてみましょう。

①ブラウザでアクセスしてログイン画面を確認

VPS の IP アドレスをブラウザに入力します(例:http://203.0.113.1)。

GitLab CE ログイン画面(ブラウザ初回アクセス)
GitLab CE ログイン画面(ブラウザ初回アクセス)

GitLab のログイン画面が表示されます。ユーザー名は root、パスワードは初期インストール時に自動生成されたものを使います。

②初期パスワードを確認する

インストール直後の root パスワードは、以下のファイルに記録されています。




ubuntu@vps: ~
$ sudo cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually on installation, it is valid indefinitely
# 2. Otherwise, the password file deletes itself in 24 hours. It will not be regenerated if
# the user changes their root password before the file gets deleted.
Password: xYzABcDeFgHiJkLm12345678901234

初期パスワードは24時間で削除される

/etc/gitlab/initial_root_password は 24 時間後に自動削除されます。ログイン後すぐにパスワードを変更することを強くおすすめします。

③ダッシュボードを確認する

root でログインすると、GitLab のダッシュボード画面が表示されます。

GitLab CE ダッシュボード画面(ログイン後)
GitLab CE ダッシュボード画面(ログイン後)
著者アイコン
著者アイコン

正直、GitLab のダッシュボードは初見だと情報量が多くて圧倒されますが、慣れてくると GitHub より使いやすいと感じる部分も多いです。まずはプロジェクト作成と SSH キー登録だけやってみましょう。

④パスワードを変更する

画面右上のアバター→「Edit profile」→「Password」タブからパスワードを変更してください。ログアウトされるので、新しいパスワードで再ログインします。

SSH キーの登録と git push の確認

GitLab を実用的に使うには、SSH キーを登録して git push できるようにしましょう。

手順1:SSH キーペアを生成する

Ubuntu 24.04 には OpenSSH 9.6 が標準で入っています。ED25519 形式の鍵を生成します。

SSH キーペア生成(Ubuntu 24.04 実測)
SSH キーペア生成(Ubuntu 24.04 実測)



ubuntu@local: ~
$ ssh-keygen -t ed25519 -C “your_email@example.com”
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [パスフレーズを入力]
Enter same passphrase again: [再入力]
Your identification has been saved in /root/.ssh/id_ed25519
Your public key has been saved in /root/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:4yvylGz8ccLg/qJFOJ6mWsxxpqAud96Qq0OCjGWS8TU your_email@example.com
$ ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024

Ubuntu 24.04 でのSSHバージョンは OpenSSH_9.6p1 であることを実測で確認しました。ED25519 鍵の生成は一瞬で完了します。

手順2:公開鍵を GitLab に登録する

生成した公開鍵(~/.ssh/id_ed25519.pub)の中身をコピーします。




ubuntu@local: ~
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDG7IftxwOg71sH5… your_email@example.com

GitLab の画面では、右上アバター→「Preferences(設定)」→「SSH Keys(SSHキー)」→「Add new key」の順に進み、コピーした公開鍵を貼り付けて保存します。

GitLab CE プロジェクト作成画面
GitLab CE プロジェクト作成画面

手順3:SSH 接続を確認する




ubuntu@local: ~
$ ssh -T git@YOUR_SERVER_IP
The authenticity of host ‘YOUR_SERVER_IP (YOUR_SERVER_IP)’ can’t be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Welcome to GitLab, @root!

Welcome to GitLab, @<ユーザー名>! と表示されれば、SSH 接続の設定は完了です。

基本的な使い方

①プロジェクト(リポジトリ)を作成する

GitLab では Git リポジトリのことを「プロジェクト」と呼びます。ダッシュボードの「New project」ボタンから作成できます。

「Create blank project」を選んで、プロジェクト名と公開範囲を設定します。Private にすると自分だけが見られるプロジェクトになります。

②git clone と git push を試す




ubuntu@local: ~
$ git clone git@YOUR_SERVER_IP:root/my-project.git
Cloning into ‘my-project’…
warning: You appear to have cloned an empty repository.
$ cd my-project
$ echo “# My Project” > README.md
$ git add README.md
$ git commit -m “Initial commit”
[main (root-commit) abc1234] Initial commit
1 file changed, 1 insertion(+)
$ git push origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
To git@YOUR_SERVER_IP:root/my-project.git
* [new branch] main -> main

git push が成功すれば、セルフホスト GitLab の基本的な使い方は完成です。

③GitLab のバージョンを確認する




ubuntu@vps: ~
$ sudo gitlab-rake gitlab:env:info 2>/dev/null | grep -E “^(System|GitLab|GitLab Shell|Ruby|PostgreSQL|Git)”
System information
System: Ubuntu 24.04
Current User: git
GitLab information
Version: 19.0.2
Revision: xxxxxxx
Directory: /opt/gitlab/embedded/service/gitlab-rails
Git:
Version: 2.43.x

④GitLab を更新する

GitLab は毎月22日に新バージョンをリリースします。更新は apt で行えます。




ubuntu@vps: ~
$ sudo apt update && sudo apt install gitlab-ce
Reading package lists… Done
gitlab-ce is already the newest version (19.0.2-ce.0).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

メジャーバージョンアップはスキップ禁止

GitLab は 1 バージョンずつアップグレードすることが推奨されています(例:17.x → 18.0 → 18.11 → 19.0)。複数バージョンをまとめてスキップすると、データベースのマイグレーションが失敗することがあります。

よくあるエラーと解決策

エラー①:502 Bad Gateway が表示される

GitLab の起動直後によく見られます。Puma(Rails アプリ)の起動に時間がかかっているケースがほとんどです。




ubuntu@vps: ~
$ sudo gitlab-ctl status puma
run: puma: (pid 12353) 45s; run: log: (pid 12298) 50s
$ sudo gitlab-ctl tail puma
…Puma starting in single mode…
…Use Ctrl-C to stop…

起動ログに Use Ctrl-C to stop のような行が出るまで 3〜5 分待ちましょう。それでも改善しない場合は RAM 不足を疑ってください。

エラー②:gitlab-ctl reconfigure が OOM Killer に止められる

RAM が不足すると、設定中に Linux の OOM Killer がプロセスをキルします。




ubuntu@vps: ~
$ dmesg | grep -i “oom killer”
[ 1234.567] Out of memory: Killed process 9876 (ruby) total-vm:1234567kB

解決策は VPS のプランアップグレードです。正直、RAM 2GB では GitLab は動きません。4GB 以上のプランに変更しましょう。

エラー③:git push 時に「Permission denied (publickey)」

SSH キーが正しく設定されていない場合に発生します。




ubuntu@local: ~
$ ssh -Tvvv git@YOUR_SERVER_IP 2>&1 | grep -E “Offering|Authentications”
debug1: Offering public key: /root/.ssh/id_ed25519 ED25519
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
git@YOUR_SERVER_IP: Permission denied (publickey).

GitLab の「設定 → SSH Keys」画面で公開鍵が正しく登録されているか確認してください。また、~/.ssh/id_ed25519.pub(秘密鍵ではなく公開鍵)を登録しているか確認しましょう。

エラー④:ファイアウォールでアクセスできない

Ubuntu の ufw が有効な場合、HTTP/SSH ポートを開放する必要があります。




ubuntu@vps: ~
$ sudo ufw allow http
Rule added
$ sudo ufw allow https
Rule added
$ sudo ufw allow ssh
Rule added
$ sudo ufw status
Status: active
To Action From
— —— —-
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere

まとめ

この記事では、Ubuntu 24.04 LTS に GitLab CE をインストールして、セルフホスト Git サーバーを構築する手順を解説しました。

  • GitLab CE 最新版は 19.0.2-ce.0(2026年6月13日時点)。Ubuntu 24.04(noble)に公式対応
  • インストールは curl ... | sudo bash でリポジトリ追加後、apt install gitlab-ce で完了
  • NGINX・PostgreSQL・Redis がすべて同梱。インストールサイズは約 3.2GB
  • 最低 RAM 4GB が必要。本番運用なら 8GB 以上のVPSプランを選ぶこと
  • SSH キー(ED25519 推奨)を登録すれば git push でコードを管理できる
  • GitLab は毎月22日にアップデート。apt upgrade gitlab-ce で更新できる

GitLab CE は最初の起動に時間がかかるなど、ハードルが高く感じるかもしれません。でも一度セットアップしてしまえば、GitHub に依存せずコードを完全に手元で管理できる快適さがあります。自分だけのプライベートな Git 環境を育てていく感覚が、個人開発をより楽しくしてくれます。

VPS の選び方や比較については、以下の記事も参考にしてください。

コメント

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