← ブログに戻る

OpenCode Review ローカルデプロイのサーバー選定:4GB vs 8GB vs 16GB

OpenCode Review ローカルデプロイのサーバー選定:4GB vs 8GB vs 16GB

チームがプライベートネットワークで OpenCode による PR レビューを導入したいが「4GB VPS で足りるか」で止まっている——3 台の Linux VPS(4/8/16GB)で同一の opencode serve + PR レビュー負荷を実行し、ピークメモリ・swap・E2E 時間を計測。**結論:API のみの軽量レビューなら 4GB ギリ可;チーム日常は 8GB が最低ライン;複数リポ並行 + MCP は 16GB。**

先週、12 人のバックエンドチームから相談がありました。社内ネットワークで OpenCode を使った PR Code Review を導入したい——GitHub Copilot のクラウドレビューは使わず、コード diff をプライベートネットワークから出したくない。インフラ担当は 4GB・8GB・16GB の VPS 見積もり 3 枚を渡し、「どれを買うべきか」と聞いてきました。

これは「OpenCode とは何か」の話ではなく、セルフホスト型レビューサーバーが実際にどれだけのリソースを食うかの問題です。同一スペックの Linux VPS 3 台(Ubuntu 22.04、2 vCPU、メモリのみ異なる)で同じ opencode serve + PR レビューワークロードを実行し、ピークメモリ・swap 回数・E2E 時間を計測しました。結論を先に:

  • 4GB:個人試用 / 単一リポの軽量レビュー——動くが swap 多発
  • 8GB:小規模チームの日常レビューにおける最低ライン
  • 16GB:複数リポ並行 + MCP + 長時間セッション——本番推奨デフォルト

ローカルデプロイで実際に動いているもの

opencode serve は軽量 Web サービスに見えがちですが——プロセス自体は小さい(アイドル時 RSS 約 150–250MB)。しかし OpenCode が Code Review を行うと、エージェントはサーバー上で一連のローカル操作を実行します:

操作 典型的なメモリ影響
大規模リポの git clone / git diff 200MB–1GB(リポサイズ依存)
LSP 言語サーバー(TypeScript、Go 等) 300MB–800MB/インスタンス
npm test / pytest 子プロセス 500MB–2GB
MCP サーバー(filesystem、github 等) 100MB–500MB/インスタンス
SQLite セッション DB(長期蓄積) 最大 1–2GB(#16729

サーバー選定は opencode serve --port 4096 単体ではなく、レビュータスクが起動する子プロセスのピークを見るべきです。

2 つのデプロイモード

OpenCode は 2 つのセルフホスト入口を提供(公式ドキュメント):

opencode serve(ヘッドレス API サーバー)

OPENCODE_SERVER_PASSWORD=your-secret opencode serve \
  --hostname 0.0.0.0 \
  --port 4096
  • OpenAPI 3.1 エンドポイントを公開(/doc で Swagger 確認)
  • TUI クライアントは opencode attach http://host:4096 で接続
  • CI webhook トリガー、チーム統一レビューゲートウェイに最適

opencode web(ブラウザ UI)

OPENCODE_SERVER_PASSWORD=your-secret opencode web \
  --hostname 0.0.0.0 \
  --port 4096
  • ブラウザ UI を自動起動
  • エンジニアが PR diff を手動貼り付けてレビュー
  • 本番環境では Nginx/Caddy リバースプロキシ + HTTPS を推奨

セキュリティ最低ラインOPENCODE_SERVER_PASSWORD を必ず設定;認証とファイアウォールなしに 0.0.0.0 を公開しない。

テスト環境

項目 仕様
VPS Ubuntu 22.04 × 3、2 vCPU、SSD 40GB、メモリ 4/8/16GB
OpenCode 2026.7 版、Anthropic Claude Sonnet API 接続
テストリポ ① TypeScript monorepo(pnpm、約 120 パッケージ)② Go マイクロサービス(Docker Compose 含む)
レビュータスク PR シミュレーション:エージェントが diff 読取 → lint 実行 → 単体テスト → Critical/Warning/Suggestion 出力
サンプリング 各シナリオ 3 回の中央値;free -m + /proc/PID/status でピーク記録

3 段階メモリ横断比較

シナリオ S1:単一リポ軽量 PR(3 ファイル変更、テストなし)

構成 ピークメモリ Swap レビュー時間
4GB 2.1 GB 軽微(~80MB) 38s
8GB 2.1 GB なし 36s
16GB 2.1 GB なし 35s

4GB はギリギリ——すでに swap の兆候あり。

シナリオ S2:中規模 PR + lint + 単体テスト

構成 ピークメモリ Swap レビュー時間
4GB 3.8 GB 深刻(~1.2GB) 2m 48s
8GB 3.6 GB なし 1m 12s
16GB 3.6 GB なし 1m 08s

4GB は所要時間 2 倍——8GB が分水嶺。

シナリオ S3:2 リポ並行レビュー + MCP filesystem

構成 ピークメモリ Swap レビュー時間
4GB OOM Kill 失敗
8GB 7.2 GB 頻繁(~2GB) 4m 15s
16GB 6.8 GB なし 2m 02s

8GB は動くがカクつく;16GB が快適ゾーン。

シナリオ S4:長時間セッション(48 時間連続、20+ レビュー)

構成 プロセス RSS SQLite DB システム swap
4GB 1.4 GB 890 MB 継続 2GB+
8GB 1.1 GB 1.2 GB 1.15 GB(#16729 と一致)
16GB 980 MB 1.2 GB なし

長期運用後の DB 膨張は共通課題。opencode.json で retention を有効化:

{
  "retention": {
    "days": 30
  }
}

4GB:許容できるケース

向いている:

  • 個人開発者が自分の小さな PR をたまにレビュー
  • クラウド API のみ、ローカルテストなし
  • レビューが 2–3 倍遅くなること、たまの OOM 再起動を許容

向いていない:

  • チーム共有レビューサーバー
  • MCP や並行レビューが必要
  • 24/7 常駐サービス

節約テクニック:4GB VPS をオンデマンド起動——PR webhook 受信時に systemctl start opencode、レビュー完了後にシャットダウン。24/7 の 16GB より安いが、コールドスタートに 15–30 秒かかる。

8GB:小規模チームの最低ライン

8GB は大多数のチームへのスタート推奨

  • opencode serve + LSP 1 つ + 単一リポ完全レビューフローを同時実行可能
  • ピークは通常 5–7GB、OS 用に 1–2GB 残る
  • VPS 月額約 $12–24(Hetzner、Vultr、DigitalOcean 同クラス)

注意点:

  • 並行レビューセッションを 1–2 に制限
  • 週 1 回サービス再起動 + DB VACUUM
  • OPENCODE_DIAGNOSTICS=1 でメモリ傾向を監視

16GB:本番デフォルト

以下のシナリオは 16GB 直行:

  • 3 人以上のチームが 1 つのレビューゲートウェイを共有
  • 2+ リポの並行レビュー
  • MCP 有効(GitHub、Jira、filesystem)
  • npm test / docker compose で PR 検証が必要
  • 24/7 常駐、頻繁なメンテナンスを避けたい

16GB VPS 月額約 $24–48——パートタイムの人間レビュアーより桁違いに安い。

メモリ以外に見るべきこと

次元 推奨
CPU 2 vCPU 最低;並行レビューは 4 vCPU
ディスク SSD 40GB+;SQLite DB と git clone が容量を消費
ネットワーク モデル API への HTTPS アウトバウンド;インバウンドはプライベート IP に制限
OS Ubuntu 22.04 LTS または Debian 12;Bun ランタイムは OpenCode 同梱
バックアップ ~/.local/share/opencode/ の定期バックアップ

ハイブリッド:VPS + クラウド Mac

レビューに iOS / Xcode ビルド検証が含まれる場合、Linux VPS のメモリをいくら増やしても xcodebuild は動きません。2 つの一般的なハイブリッド構成:

  1. Linux VPS(8GB)opencode serve を動かし汎用コードレビュー
  2. クラウド Mac mini(16GB+) で MCP または webhook 経由の iOS 専用レビュー

Claude Code メモリ選定ベンチマーク で M4 Mac mini 各段階を詳細テスト済み——OpenCode のエージェント子プロセスモデルは Claude Code と高度に類似し、結論は相互に参考になる。

5 分デプロイチェックリスト

# 1. OpenCode インストール
curl -fsSL https://opencode.ai/install | bash

# 2. API Key 設定(env-file 推奨、コマンドライン平文は避ける)
cat > /etc/opencode.env <<'EOF'
ANTHROPIC_API_KEY=sk-ant-...
OPENCODE_SERVER_PASSWORD=your-strong-password
OPENCODE_SERVER_USERNAME=review-bot
EOF

# 3. systemd サービス作成
sudo tee /etc/systemd/system/opencode-serve.service <<'EOF'
[Unit]
Description=OpenCode Review Server
After=network.target

[Service]
EnvironmentFile=/etc/opencode.env
ExecStart=/usr/local/bin/opencode serve --hostname 127.0.0.1 --port 4096
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 4. 起動
sudo systemctl enable --now opencode-serve

# 5. Nginx リバースプロキシ(任意、HTTPS 追加)
# location /opencode/ { proxy_pass http://127.0.0.1:4096/; }

段階別選定早見表

状況 推奨構成 月額目安
個人、たまに小 PR をレビュー 4GB VPS(オンデマンド) $4–8
2–5 人チーム、単一リポ 8GB VPS $12–24
5+ 人チーム、複数リポ並行 16GB VPS $24–48
iOS/Xcode レビュー含む 16GB クラウド Mac mini 時間課金/月額
高セキュリティ(コード不出網) 16GB オンプレ + ローカルモデル ハードウェア一括

結論

OpenCode Review ローカルデプロイのメモリボトルネックは opencode serve 自体ではなく、レビュー時にエージェントが起動する git・LSP・テスト・MCP 子プロセスにあります。4GB は動くが窮屈;8GB は小規模チームの最低ライン;16GB は本番環境の手間のかからない選択。iOS コードレビューや Xcode MCP も必要ならクラウド Mac mini を検討——Linux VPS のメモリ増設では xcodebuild は解決しません。

期間限定オファー →