テクノロジーガイド

GitLab を Ubuntu 16.04 Xenial にインストールする手順

4 min read インフラ 更新されました 17 Oct 2025
Ubuntu 16.04 に GitLab CE をインストールする手順
Ubuntu 16.04 に GitLab CE をインストールする手順

GitLab は Rails ベースのオープンソース Git リポジトリ管理システムです。チームでコードを管理し、バグや機能要求を追跡し、アプリケーションのテストとデプロイを行えます。Wiki、Issue トラッキング、コードレビュー、活動フィード、マージ管理などの機能を備え、複数プロジェクトをホストできます。

エディションは主に次の 4 種類です。

  1. GitLab CE (Community Edition) - セルフホスト、無料、コミュニティフォーラムでサポート
  2. GitLab EE (Enterprise Edition) - セルフホスト、有料、追加機能あり
  3. GitLab.com - SaaS、無料プランあり
  4. GitLab.io - GitLab Inc. が管理するプライベートインスタンス

このガイドは GitLab CE(Community Edition)を Ubuntu 16.04 (Xenial Xerus) 上に Omnibus パッケージを使ってインストールする手順です。Omnibus は GitLab の稼働に必要なパッケージやサービスをまとめてインストールします。

重要: ここに記載したコマンドは root 権限で実行するか、sudo を付けて実行してください。

目的と対象読者

このチュートリアルは、セルフホスト型の GitLab を初めて導入するシステム管理者や開発チーム向けです。サーバー管理の基本(SSH 接続、パッケージ管理、ファイル編集)が理解できることを前提とします。

重要な前提条件

  • Ubuntu 16.04 Server 64bit
  • 最小メモリ 2GB
  • root 権限

手順の概要

  1. 必要パッケージのインストール
  2. GitLab のインストール(Omnibus)
  3. GitLab の外部 URL 設定
  4. Let’s Encrypt と DHPARAM の証明書生成
  5. Nginx で HTTPS を有効化
  6. UFW ファイアウォールの設定
  7. GitLab の初期設定
  8. 検証(プロジェクト作成、初回コミット)

ステップ 1 - 必要な Ubuntu パッケージをインストール

まずはサーバーに root としてログインし、リポジトリを更新します。

ssh root@GitLabServer
apt-get update

次に curl、openssh-server、ca-certificates、postfix をインストールします。postfix はメール(SMTP)を扱うためのパッケージです。

sudo apt install curl openssh-server ca-certificates postfix

postfix のインストール中に設定ダイアログが表示されます。一般的な構成は “Internet Site” を選び、メール送信元に使うホスト名(サーバーの FQDN)を入力します。

Ubuntu で Postfix を設定する画面

Postfix に設定するホスト名入力画面

注記: メール送信が不要な場合でも Postfix は GitLab の一部機能(通知や招待)で利用されます。ローカル送信のみでよければデフォルト設定で問題ありません。


ステップ 2 - GitLab のインストール

Omnibus リポジトリを追加して、gitlab-ce パッケージをインストールします。

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Ubuntu に GitLab リポジトリを追加している様子

リポジトリ追加後、GitLab CE をインストールします。

sudo apt install gitlab-ce

ダウンロードとインストールが完了すると、パッケージの出力が表示されます。

GitLab のインストール表示

補足: 大規模な環境やカスタム構成では Omnibus ではなくソースからのビルドや Docker コンテナを検討してください(代替アプローチ節参照)。


ステップ 3 - GitLab の外部 URL を設定

GitLab の主要設定は /etc/gitlab/gitlab.rb にあります。まず編集します。

cd /etc/gitlab
vim gitlab.rb

9 行目付近にある external_url をあなたのホスト名に合わせて変更します。ここでは例として gitlab.hakase-labs.co を使います。まず HTTP で設定して後で HTTPS に変更します。

external_url 'http://gitlab.hakase-labs.co'

保存してエディタを閉じます。

注記: external_url は GitLab が生成するリンク(メール通知やウェブ UI)に使われます。正しい FQDN を設定してください。


ステップ 4 - Let’s Encrypt と DHPARAM の証明書を生成

HTTPS を有効にするために Let’s Encrypt の無料証明書を取得し、さらに DH パラメータを作成します。

まず certbot(ここではパッケージ名 letsencrypt)をインストールします。

sudo apt install letsencrypt -y

証明書をドメイン用に生成します。

letsencrypt certonly -d gitlab.hakase-labs.co

メールアドレスの入力、利用規約への同意など対話形式のプロンプトに従ってください。

Let's Encrypt 証明書生成のメール入力画面

Let's Encrypt 利用規約に同意する画面

成功すると /etc/letsencrypt/live// に証明書が配置されます。

Let's Encrypt 証明書生成完了のメッセージ

次に GitLab 用に /etc/gitlab/ssl ディレクトリを作ります(ディレクトリ名とパスは Omnibus の既定に合わせます)。

mkdir -p /etc/gitlab/ssl/

DH パラメータを生成します。これは SSL/TLS の鍵交換を強化します。時間がかかる場合がありますが 2048 ビットで十分です。必要に応じて 4096 にできます(より時間がかかります)。

sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

OpenSSL で DH パラメータを生成している様子

最後に証明書ファイルのパーミッションを制限します。

chmod 600 /etc/gitlab/ssl/*

これで Let’s Encrypt の証明書と DHPARAM が準備できました。


ステップ 5 - Nginx で HTTPS を有効化

/etc/gitlab/gitlab.rb を編集して external_url を HTTPS に変更し、Nginx に証明書を指定します。

cd /etc/gitlab
vim gitlab.rb

external_url を HTTPS に変更します。

external_url 'https://gitlab.hakase-labs.co'

次に Nginx の SSL 設定を追加します(行を追加または編集)。

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

注意: パスは LetsEncrypt の出力先に合わせています。ドメイン名を必ず置き換えてください。

設定を反映するために reconfigure を実行します。

sudo gitlab-ctl reconfigure

実行ログには nginx の再設定やサービスの起動が表示されます。

GitLab 設定反映完了のメッセージ

これで HTTPS が有効になり、HTTP から HTTPS へのリダイレクトも働きます。


ステップ 6 - UFW ファイアウォールの設定

UFW を有効化し、SSH、HTTP、HTTPS を許可します。

まず UFW を有効にします。

ufw enable

次にポートを許可します。

ufw allow ssh
ufw allow http
ufw allow https

UFW で HTTP/HTTPS を許可している様子

ルールを確認します。

ufw status

UFW ルールを確認しているスクリーンショット

追加の運用上の注意:

  • GitLab の内部サービス(例: gitlab-shell, registry 等)を外部に公開する場合は、必要なポートだけ開けること。
  • 管理用途の IP を限定する場合は ufw の “allow from to any port ” を利用します。

ステップ 7 - GitLab の初期設定

ブラウザで https://gitlab.hakase-labs.co にアクセスします(URL はあなたのドメインに置き換えてください)。初回アクセス時に root ユーザーの初期パスワードリセット画面が表示されます。

root パスワードのリセット

インストール後に GitLab のデフォルトパスワードをリセットする画面

root ユーザーでログインします。

デフォルトの root で GitLab にログインする画面

プロフィール情報の更新 右上のアイコンから Profile Settings を選び、表示名とメールアドレスを更新します。

GitLab のデフォルトプロフィールを変更する画面

プロフィールとユーザー名を更新して保存します。

ユーザー名とメールアドレスを更新する画面

ユーザー名は Account タブで変更できます。

GitLab のユーザー名変更画面

SSH 鍵の登録 ローカル環境に SSH 鍵がない場合は生成します。

ssh-keygen

公開鍵 (id_rsa.pub) の内容を GitLab の SSH Keys にコピーして追加します。

Ubuntu で SSH 鍵を生成している例

GitLab に SSH 鍵を追加する画面

登録制限とプロジェクト上限 管理エリア > Settings でサインアップ制限やユーザーごとのプロジェクト上限を設定できます。組織ポリシーに合わせて制限を設定してください。

システム設定画面

サインアップ制限と上限設定を行う画面


ステップ 8 - 動作確認テスト

簡単な操作で GitLab が正しく動いているかを確認します。

プロジェクト作成

画面上部の + アイコンから新規プロジェクトを作成します。名前、説明、可視性を設定して Create project をクリックします。

新規プロジェクト作成の画面

プロジェクトページに遷移したら、ローカルからクローンして README を追加する手順を行います。

最初のコミットと push

ローカルに Git がインストールされていることを確認し、git の user.name と user.email を設定します。

git config --global user.name "hakase"
git config --global user.email "[email protected]"

リポジトリをクローンし、README.md を作成してコミットします。

git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md

コミットしてプッシュします。

git add .
git commit -m 'Add README.md file by hakase-labs'
git push origin master

プッシュ時にプロンプトが出たらユーザーのパスワードを入力します。成功するとリポジトリ上に README が表示されます。

最初のコミットの画面

リポジトリに README が追加されているブラウザ表示

以上で GitLab の基本インストールと検証は完了です。


よくある失敗と対処法

  • Let’s Encrypt 証明書取得で HTTP-01 が失敗する場合: ドメインが正しく DNS で公開され、80 番ポートが外部から到達可能であるか確認します。プロキシやファイアウォールで遮断されていないか確認してください。
  • git push で認証エラーが出る場合: HTTPS で push するなら正しいユーザー名/パスワード、SSH であれば公開鍵が GitLab に登録済みであるかを確認します。
  • gitlab-ctl reconfigure が失敗する場合: /etc/gitlab/gitlab.rb の構文ミスやパスの誤りがないか確認し、ログ(/var/log/gitlab)を参照して原因を特定します。

代替アプローチ

  • Docker / Docker Compose を使う: コンテナ化して運用する場合、公式 Omnibus イメージや helm チャート(Kubernetes)を使う方法があります。簡易なスケールや移行管理に有利です。
  • GitLab.com を利用する: セルフホスティングの運用負荷を避ける場合、GitLab の SaaS を利用します。ただしデータのローカル保持やカスタム認証が必要な場合はセルフホストが有利です。

セキュリティ強化と運用上のベストプラクティス

  • 定期的に gitlab-ctl upgrade と apt update を実行してパッケージを更新する。メンテナンス時間を確保してから実施します。
  • バックアップ: Omnibus のバックアップコマンド(gitlab-rake gitlab:backup:create)を定期実行し、外部ストレージに保管します。
  • 監査ログとモニタリング: /var/log/gitlab の監査ログを集約し、SLA/SLI 指標(稼働率、レスポンス)を監視します。
  • 管理者アクセスの制限: 管理用 IP の限定、二要素認証(2FA)を管理者ユーザーに要求する。

運用チェックリスト

  • external_url が正しく設定されている
  • Let’s Encrypt 証明書が /etc/letsencrypt/live に生成されている
  • /etc/gitlab/ssl/dhparams.pem が存在しパーミッションが 600 になっている
  • gitlab-ctl reconfigure が成功している
  • UFW で SSH, HTTP, HTTPS が許可されている
  • 初期 root パスワードを変更済み
  • 管理者アカウントに 2FA を有効化済み
  • 定期バックアップスケジュールを設定済み

簡易運用手順(SOP)

  1. 予定されたメンテナンス時間を告知する
  2. サーバーに SSH で root ログイン
  3. パッケージ更新: apt update && apt upgrade
  4. GitLab の再構成チェック: sudo gitlab-ctl reconfigure
  5. サービス状態確認: sudo gitlab-ctl status
  6. バックアップ作成: sudo gitlab-rake gitlab:backup:create
  7. 異常なログが無いか確認: sudo tail -n 200 /var/log/gitlab/*
  8. メンテナンス終了を通知する

1 行用語集

  • Omnibus: GitLab を単一パッケージで配布する公式のバンドル方式
  • external_url: GitLab が外部に公開するベース URL
  • DHPARAM: Diffie-Hellman 鍵交換に使うパラメータファイル
  • certbot / letsencrypt: 無料の SSL/TLS 証明書を発行するツール

参考リンク


まとめ

このガイドでは Ubuntu 16.04 に Omnibus パッケージを使って GitLab CE をインストールし、Let’s Encrypt による SSL、DHPARAM、NGINX の HTTPS 設定、UFW の基本設定、初期の管理タスクとテスト手順を説明しました。導入後はバックアップと更新運用を必ず実施し、必要に応じて代替のデプロイ方法(Docker/Kubernetes)も検討してください。

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

MacでFacebookチャットをメッセージに追加する簡単手順
チュートリアル

MacでFacebookチャットをメッセージに追加する簡単手順

DNS_PROBE_FINISHED_BAD_CONFIG を修正する方法
ネットワーク

DNS_PROBE_FINISHED_BAD_CONFIG を修正する方法

DiscordでNetflixをストリーミングする方法
How-to

DiscordでNetflixをストリーミングする方法

Windows 10でGet Office通知とタイルを無効化する方法
Windows 10

Windows 10でGet Office通知とタイルを無効化する方法

Windows Updateで音が出ない問題を修正する方法
トラブルシューティング

Windows Updateで音が出ない問題を修正する方法

Octaveで学ぶ信号の加算と乗算
オーディオ

Octaveで学ぶ信号の加算と乗算