全システム正常稼働中 21 対応暗号資産 · Monero歓迎 No-KYCポリシー
ChainVPS

Dev · KYC不要

Gitea をオフショアVPSでホスト

no-KYCで暗号資産決済のVPS上に、自分だけの軽量なセルフホスト型Gitフォージを構築し、すべてのリポジトリ、issue、CIパイプラインをサードパーティのクラウドから切り離しておきましょう。

概要

Giteaは、Go言語で書かれたセルフホスト型のGitサービスです。GitHub/GitLabの軽量な代替として、リポジトリ、プルリクエスト、issue、wiki、リリース、Actions(CI/CD)を提供します。単一のバイナリまたはDockerイメージとして配布され、メモリ使用量も小さいため、ソースコードを完全に自分たちで管理したいチームに最適です。

オフショアでホストする理由

ソースコードはチームが保有する中でも最も機密性の高いデータの一つです。身元を明かさないオフショアVPSでホストすることで、大手コードホスティングプラットフォームのデータ保持・削除ポリシーの手の届かない場所に置くことができます。no-KYCで暗号資産決済を行えば、プロジェクトのインフラが企業の身元情報に紐づくことはなく、無制限帯域幅のおかげでクローン、CI実行、リリースのダウンロードが従量制の思わぬ制限を受けることもありません。

デプロイ

実際に動作するリファレンス構成

これを新しいChainVPSインスタンスにコピーしてください。プレースホルダーを置き換えてから起動します。

docker-compose.yml

# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
  server:
    image: gitea/gitea:1.22
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
      # correct clone URLs — set to your domain once DNS is ready:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI — front with a TLS reverse proxy in production
      - "222:22"      # git-over-SSH (host 222 -> container 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

ファイアウォール

開放するポート

ポートプロトコル用途
3000TCPGitea WebUIおよびHTTP git — 本番環境ではTLSリバースプロキシ(Caddy/Nginx)の背後に置いてください
222TCPGit-over-SSH(ホストポートをコンテナの22番にマッピング) — SSH鍵によるclone/pushに使用
443TCPドメインと証明書の準備が整った後、リバースプロキシ経由のHTTPS用
22TCP管理用のホストSSH — Giteaの222番ポートとは別のポートにし、鍵認証のみにしてください

適正サイジング

必要なプラン

軽量

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

個人開発者や少人数のユーザー、数十件のリポジトリ、CIなし。Giteaのアイドル時メモリ使用量は150-200MB程度です。

中規模

VPS Pro (2-4 vCPU, 4-8 GB RAM)

小規模チーム、活発なプルリクエスト、さらにCI用のGitea Actionsランナーを1〜2台。大きなリリース成果物用にストレージボリュームを追加してください。

大規模

Dedicated(またはリポジトリ用のStorage VPS)

多数の同時ユーザー、大規模なmonorepo、CIの高い同時実行数、あるいはLFSを多用するメディア。専有CPUによりclone/pack処理を高速に保ち、リポジトリ/LFSデータ用にはStorageプランを組み合わせてください。

最適なロケーション: プライバシー重視のロケーションを選びましょう — スイス(CH)とアイスランド(IS)はソースコードにとって最も強固なデータ保護体制を提供し、オランダ(NL)、ルーマニア(RO)、モルドバ(MD)、ルクセンブルク(LU)も確かなオフショアの選択肢です。gitの往復通信は遅延の影響を受けやすいため、clone/pushのレイテンシを抑えるにはコントリビューターに最も近いリージョンを選んでください。

セキュリティを固める

セキュリティ強化チェックリスト

  • ポート3000を生のままインターネットに公開しないでください — GiteaはTLSリバースプロキシ(Caddyの自動HTTPS、またはNginx + certbot)の前段に置き、GITEA__server__ROOT_URLをhttpsドメインに設定して、クローンURLが正しくなるようにしてください。
  • 管理者アカウントを作成したら、すぐにDISABLE_REGISTRATION=true(composeにはすでに設定済み)にして、誰も自己登録できないようにしてください。ユーザーは手動または管理パネル経由で招待します。
  • git-over-SSHはポート222のまま維持し、ホスト自体のsshdは別のポートにして、両方とも鍵認証のみ(PasswordAuthentication no)にしてください。Giteaはauthorized_keysを内部で管理するため、手動で編集しないでください。
  • すべてのアカウントで2FAを有効にし、管理者には必須にしてください。DBパスワードは環境変数から、パーミッション600のDocker secretまたは.envファイルへ移してください。
  • ./gitea(リポジトリ、設定、LFS)とgiteaデータベースのpg_dumpを定期的にバックアップし、イメージはlatestではなくバージョンタグ(gitea/gitea:1.22)に固定して、アップグレードを意図的に行えるようにしてください — メジャーバージョンを上げる前にリリースノートを読んでください。

質問

ホスティング Gitea — FAQ

別サービスなしでCI/CDを実行できますか?

はい。Giteaには組み込みのActions(GitHub Actions互換)があります。有効化した上で、ランナーコンテナ(gitea/act_runner)をインスタンスに登録してください。本格的なCI負荷がある場合は、ビルドがWebサービスのリソースを奪わないよう、Mediumプラン以上を使用してください。

SQLite、MySQL、それともPostgreSQL?

SQLiteは軽量な単一ユーザーには十分で、DBコンテナも不要です。チーム利用や今後の成長を見込む場合は、composeに示した通りPostgreSQLを使用してください — 同時実行性能がはるかに優れており、pg_dumpでのバックアップも簡単です。

GitHub/GitLabからリポジトリを移行するにはどうすればよいですか?

Gitea組み込みの移行ツールは、issue・PR・リリース・wikiを含めてURL指定でリポジトリをインポートできます。プライベートリポジトリやメタデータを取得するには、移行フォームに移行元プラットフォームのトークンを追加してください。

大容量ファイル(Git LFS)には対応していますか?

はい、LFSはネイティブにサポートされており、/data以下に保存されます。大容量のバイナリやメディアをホストする場合は、./giteaをStorage VPSのボリュームに配置し、ディスク容量を見込んでおいてください — LFSオブジェクトはすぐに容量を消費します。

no-KYCホストでもコードのプライバシーは守られますか?

リポジトリは選択したオフショア法域内にあるVPSのディスク上に完全に保管され、サードパーティにミラーされることはありません。登録を無効のままにし、HTTPS + SSH鍵を使用し、2FAを有効にして、暗号化したオフボックスバックアップを取ることで、完全な管理下に置けます。

今すぐ起動 Gitea
次の60秒以内に。

帯域無制限 · DDoS対策込み · 21種類の暗号資産 · KYC不要。