【2025年版】GitLab自宅サーバー構築完全ガイド|Docker CE VPS活用法とSSH設定のプロ手順

【2025年版】GitLab自宅サーバー構築完全ガイド|Docker CE VPS活用法とSSH設定のプロ手順






【2025年版】GitLab自宅サーバー構築完全ガイド|Docker CE VPS活用法とSSH設定のプロ手順



GitLab自宅サーバー構築

Docker CE VPS活用法とSSH設定の完全ガイド

※本記事は2025年1月最新情報に基づいて執筆されています


目次

GitLabとは?自宅サーバー構築のメリット

GitLab CEの特徴

  • 完全オープンソース
  • CI/CD機能内蔵
  • Issue管理
  • プロジェクト管理
  • コードレビュー機能

自宅サーバーのメリット

  • 完全なプライバシー保護
  • 長期的なコスト削減
  • カスタマイズ自由度
  • ストレージ制限なし
  • ユーザー数制限なし

なぜGitLab自宅サーバーなのか?

GitHub Enterpriseが月額数万円かかる中、GitLab CEなら完全無料で同等以上の機能を提供。
プライベートリポジトリも無制限、CI/CDパイプラインも自由に構築できます。

GitLab自宅サーバーの具体的メリット

コスト削減効果

GitHub Teams: 月額4ドル/ユーザー

GitLab Premium: 月額19ドル/ユーザー

GitLab CE: 完全無料

セキュリティ

外部サーバーに依存しない

機密コードの完全保護

アクセス制御の完全管理

カスタマイズ性

Runner設定の自由度

バックアップ戦略選択

統合ツール追加可能

GitLab構築に必要な環境とスペック

推奨システム要件

項目 最小要件 推奨要件 本格運用
メモリ (RAM) 4GB 8GB 16GB以上
CPU 2コア 4コア 8コア以上
ストレージ 50GB 100GB SSD 500GB SSD以上
ネットワーク 1Mbps 10Mbps 100Mbps以上

Docker環境要件

  • Docker Engine 20.10以上
  • Docker Compose 1.29以上
  • Ubuntu 20.04 LTS以上推奨
  • root権限またはsudo権限

ネットワーク要件

  • 固定IPアドレス(推奨)
  • ポート80, 443開放
  • SSH用ポート(22または変更後)
  • SSL証明書対応ドメイン

Docker CE GitLab構築手順

1
Docker環境セットアップ

最新のDockerとDocker Composeをインストールします:

# Docker公式リポジトリを追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Docker CEインストール
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# ユーザーをdockerグループに追加
sudo usermod -aG docker $USER
newgrp docker

2
GitLab Docker Compose設定

GitLab用のディレクトリを作成し、docker-compose.ymlファイルを設定:

# GitLab用ディレクトリ作成
mkdir -p ~/gitlab/{config,logs,data}
cd ~/gitlab

# docker-compose.yml作成
cat << 'EOF' > docker-compose.yml
version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: 'your-domain.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://your-domain.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['proxy_set_headers'] = {
          'Host' => '$$http_host',
          'X-Real-IP' => '$$remote_addr',
          'X-Forwarded-For' => '$$proxy_add_x_forwarded_for',
          'X-Forwarded-Proto' => 'https',
          'X-Forwarded-Ssl' => 'on'
        }
        # バックアップ設定
        gitlab_rails['backup_keep_time'] = 604800
        gitlab_rails['backup_path'] = '/var/opt/gitlab/backups'
    ports:
      - '80:80'
      - '2222:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    shm_size: '256m'
EOF

3
GitLab起動と初期設定

GitLabコンテナを起動し、初期パスワードを取得:

# GitLab起動(初回は10-15分程度要する)
docker-compose up -d

# 起動状況確認
docker-compose logs -f gitlab

# 初期rootパスワード取得
docker exec -it gitlab cat /etc/gitlab/initial_root_password

# GitLab管理コマンド実行例
docker exec -it gitlab gitlab-ctl status
docker exec -it gitlab gitlab-ctl reconfigure


重要: 初期パスワードは24時間後に自動削除されるため、必ず記録して新しいパスワードに変更してください。

4
リバースプロキシ設定(Nginx)

SSL終端用のNginx設定:

# Nginx設定ファイル作成
sudo cat << 'EOF' > /etc/nginx/sites-available/gitlab
server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name your-domain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers off;

    location / {
        proxy_pass http://localhost:80;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Ssl on;
    }
}
EOF

# 設定有効化
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

SSH設定とセキュリティ強化

SSH基本セキュリティ設定

# SSH設定ファイル編集
sudo nano /etc/ssh/sshd_config

# 推奨設定内容:
Port 2222                    # デフォルトポート変更
PermitRootLogin no          # root直接ログイン禁止
PasswordAuthentication no   # パスワード認証無効
PubkeyAuthentication yes    # 公開鍵認証有効
MaxAuthTries 3              # 認証試行回数制限
ClientAliveInterval 300     # セッションタイムアウト
ClientAliveCountMax 2

# 設定適用
sudo systemctl restart sshd

GitLab用SSH鍵設定

1. SSH鍵生成(クライアント側)

# ED25519鍵生成(推奨)
ssh-keygen -t ed25519 -C "your-email@example.com"

# または RSA鍵生成
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"

# 公開鍵表示
cat ~/.ssh/id_ed25519.pub

2. GitLabでの鍵登録

  • 1. GitLabにログイン
  • 2. User Settings → SSH Keys
  • 3. 公開鍵を貼り付け
  • 4. Titleを設定して保存

SSH接続テストとGit設定

# SSH接続テスト
ssh -T git@your-domain.com -p 2222

# Git グローバル設定
git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"

# リポジトリクローンテスト
git clone ssh://git@your-domain.com:2222/username/project.git

# SSH設定ファイル(~/.ssh/config)
Host gitlab-home
    HostName your-domain.com
    Port 2222
    User git
    IdentityFile ~/.ssh/id_ed25519

Git料金比較とコスト分析

主要Gitサービス料金比較(2025年1月現在)

サービス 無料プラン 個人プラン チームプラン 年間コスト(5名)
GitLab CE (自宅) 完全無料 ¥0
GitHub パブリックのみ $4/月 $4/月・人 ¥36,000
GitLab.com 5名まで $19/月 $19/月・人 ¥171,000
Bitbucket 5名まで $3/月 $6/月・人 ¥54,000

コスト削減効果

初期構築費用:
¥0 – ¥50,000
月額運用費用:
¥1,000 – ¥5,000
年間総コスト:
¥12,000 – ¥60,000

※VPS・電気代・ドメイン代含む

投資回収期間

vs GitHub Teams: 約3-6ヶ月

vs GitLab Premium: 約1-2ヶ月

vs Bitbucket: 約6-12ヶ月

5年間で約100万円以上の削減効果

GitLab構築におすすめのVPSサーバー

ConoHa VPS

国内最速クラス

高速SSD標準

初期費用無料

時間課金対応

簡単セットアップ

月額¥1,848〜


詳細を見る

KAGOYA CLOUD VPS

老舗の安定性

GitLabテンプレート有

24時間サポート

高い稼働率

日割り課金

月額¥979〜


詳細を見る

mixhost VPS

高性能GPU対応

NVMe SSD標準

30日返金保証

Docker環境構築済

CI/CD高速化

月額¥1,078〜


詳細を見る

VPS選択のポイント

性能重視

CPU性能とメモリ容量がGitLabの快適性を左右

セキュリティ

ファイアウォール機能とバックアップ体制

サポート

日本語サポートと技術支援の充実度

運用・保守のベストプラクティス

定期バックアップ設定

# GitLab バックアップスクリプト
#!/bin/bash
docker exec gitlab gitlab-backup create

# crontab設定(毎日2時にバックアップ)
0 2 * * * /path/to/backup-script.sh

監視・アラート設定

ディスク使用量監視

メモリ使用量チェック

GitLab健全性確認

SSL証明書期限管理

よくある質問(FAQ)

Q: GitLab CEで商用利用は可能ですか?

A: はい、GitLab CEは完全にオープンソースであり、商用利用も無料で可能です。ライセンス制限はありません。

Q: GitLabのアップデートはどうすれば良いですか?

A: docker-compose pullで最新イメージを取得し、docker-compose up -dで再起動することでアップデートできます。

Q: 自宅サーバーが落ちた場合のリスクは?

A: 定期的なバックアップとクラウドストレージへの同期により、データ損失リスクを最小限に抑えられます。

GitLab自宅サーバーで開発環境を自由に

2025年こそ、コストを抑えながら高品質な開発環境を構築しましょう。
GitLab CEなら無料でエンタープライズ級の機能をフル活用できます。

※本記事は2025年1月時点の情報に基づいて執筆されています。内容の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。


目次