VPS上にForgejoをセルフホストする方法(完全ガイド)
Forgejoは、プロジェクトやリポジトリの管理をシームレスに行える、強力なオープンソースのセルフホスト型Gitサービスです。仮想プライベートサーバー(VPS)に展開することで、データの完全なコントロールや環境のカスタマイズが可能になります。このガイドでは、VPS上にForgejoをセルフホストするための手順を、インストールから設定まで詳しく解説します。
前提条件
始める前に、以下のものを準備してください:
- 1GB以上のRAMと1つのCPUコアを持つVPS
- VPSに向けて設定されたドメイン名(任意だが推奨)
- VPSにインストール済みのDockerとDocker Compose
- Linuxコマンドラインの基本的な知識
VPSプロバイダーの選択
VPSプロバイダーを選ぶ際は、パフォーマンス、価格、サポートなどの要素を考慮してください。以下はForgejoのホスティングに適した主要なVPS提供者の比較表です:
| プロバイダー | 価格(月額) | RAM | ストレージ | データセンター | |----------------------|--------------|----------|--------------|----------------- - | | Contabo VPS | 5.99 EUR | 4 GB | 200 GB | ヨーロッパ | | Hetzner Cloud | 4.15 EUR | 2 GB | 20 GB | ヨーロッパ | | DigitalOcean | 6 USD | 1 GB | 25 GB | グローバル | | Vultr | 6 USD | 1 GB | 25 GB | グローバル | | Linode (Akamai Cloud)| 5 USD | 1 GB | 25 GB | グローバル |
すべての価格は競争力があり、Forgejoのようなアプリのセルフホスティングに適した堅実な基盤を提供します。より多くの選択肢については、full VPS comparisonを参照してください。
ステップ1:VPSのセットアップ
-
VPSにアクセス:SSHを使ってVPSにログインします。
ssh root@your_server_ip -
システムの更新:VPSを最新の状態にします。
apt update && apt upgrade -y -
DockerとDocker Composeのインストール:
apt install docker.io docker-compose -y -
Dockerサービスの起動と有効化:
systemctl start docker systemctl enable docker
ステップ2:Dockerを使ったForgejoのデプロイ
-
Forgejo用のディレクトリを作成:
mkdir -p /opt/forgejo cd /opt/forgejo -
docker-compose.ymlファイルを作成:お好みのテキストエディタを使ってファイルを作成します。
nano docker-compose.yml以下の内容を追加してください。
version: '3' services: forgejo: image: forgejo/forgejo:latest environment: - GITEA__database__DB_TYPE=sqlite3 - GITEA__database__PATH=/data/gitea/gitea.db - GITEA__server__DOMAIN=yourdomain.com - GITEA__server__ROOT_URL=https://yourdomain.com volumes: - ./data:/data ports: - "3000:3000" - "22:22" restart: unless-stoppedDOMAINとROOT_URLは実際のドメイン名に書き換えてください。 -
Forgejoを起動:
docker-compose up -d
ステップ3:Forgejoにアクセス
コンテナが起動したら、Webブラウザからhttp://yourdomain.com:3000にアクセスできます。初期設定を行い、管理者アカウントを作成します。
任意:リバースプロキシの設定
セキュリティ向上とSSL対応のために、リバースプロキシの設定を推奨します。NginxやTraefikを利用できます。以下はシンプルなNginxの設定例です:
-
Nginxのインストール:
apt install nginx -y -
Nginx設定の作成:
nano /etc/nginx/sites-available/forgejo以下を追加します。
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } -
設定の有効化:
ln -s /etc/nginx/sites-available/forgejo /etc/nginx/sites-enabled/ nginx -t systemctl restart nginx
よくある質問(FAQs)
1. VPS上でForgejoをセルフホストするのは安全ですか?
適切なセキュリティ対策を行えば、安全にセルフホストできます。具体的には、定期的なソフトウェアの更新、強力なパスワードの使用、ファイアウォールの設定などがあります。VPS提供者がDDoS対策を提供しているか確認し、遅延やセキュリティニーズに合ったデータセンターの場所を選びましょう。さらに、HTTPSを使ってデータの暗号化も忘れずに。フォーラムのr/selfhostedのセキュリティ実践例も参照してください。
2. Forgejoの機能はカスタマイズ可能ですか?
はい、Forgejoは高度にカスタマイズ可能です。管理画面から設定を変更したり、さまざまな認証方法やリポジトリの権限設定を行ったりできます。公式のForgejoドキュメントには、詳細なカスタマイズ方法やCI/CDツールとの連携についても載っています。
3. インストール中に問題が発生した場合はどうすればいいですか?
コミュニティフォーラムのr/selfhostedやGitHubのIssueを検索してみてください。また、DockerとDocker Composeのバージョンを最新に保つことも重要です。ForgejoのGitHubリポジトリには、多くの情報とユーザサポートがあるので、トラブルシューティングに役立ちます。
このガイドに従えば、VPS上で完全に動作するForgejoインスタンスを構築できるはずです。コーディングやセルフホスティングをお楽しみください!