← Назад к блогу

OpenCode Review локальный деплой: выбор сервера 4 ГБ vs 8 ГБ vs 16 ГБ

OpenCode Review локальный деплой: выбор сервера 4 ГБ vs 8 ГБ vs 16 ГБ

Команда хочет OpenCode для ревью PR в приватной сети, но застревает на вопросе «хватит ли VPS на 4 ГБ». Мы прогнали одинаковые нагрузки opencode serve + PR review на трёх Linux VPS (4/8/16 ГБ) и замерили пик RAM, swap и E2E-время. **Итог: 4 ГБ для лёгких API-ревью едва; 8 ГБ — минимум для команды; 16 ГБ при параллельных multi-repo + MCP.**

На прошлой неделе к нам обратилась команда из 12 backend-разработчиков: они хотят OpenCode для PR code review в корпоративной сети — без облачного GitHub Copilot, diff'ы кода не должны покидать приватную сеть. Ops-лид положил на стол три котировки VPS — 4 ГБ, 8 ГБ, 16 ГБ — и спросил: «Какой тариф брать?»

Это не вопрос «что такое OpenCode» — это вопрос сколько ресурсов реально потребляет self-hosted review-сервис. Мы прогнали одинаковые нагрузки opencode serve + PR review на трёх Linux VPS (Ubuntu 22.04, 2 vCPU, отличается только RAM) и замерили пик RAM, события swap и E2E-время. Итог сразу:

  • 4 ГБ: личные тесты / лёгкие single-repo ревью — работает, но swap частый
  • 8 ГБ: минимальная рабочая линия для ежедневных командных ревью
  • 16 ГБ: параллельные multi-repo ревью + MCP + длинные сессии — рекомендуемый production default

Что реально работает при локальном деплое

Многие думают, что opencode serve — просто лёгкий веб-сервис. Сам процесс скромный (idle ~150–250 МБ RSS). Но при code review агент выполняет цепочку локальных операций на сервере:

Операция Типичное влияние на память
git clone / git diff больших репо 200 МБ–1 ГБ (зависит от размера)
LSP-серверы (TypeScript, Go и т.д.) 300 МБ–800 МБ/инстанс
Подпроцессы npm test / pytest 500 МБ–2 ГБ
MCP-серверы (filesystem, github и т.д.) 100 МБ–500 МБ/инстанс
SQLite БД сессий (долгосрочный рост) до 1–2 ГБ (#16729)

Размер сервера — не про opencode serve --port 4096 отдельно, а про пик памяти review-подпроцессов.

Два режима деплоя

OpenCode предлагает два self-hosted входа (официальная документация):

opencode serve (headless 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 и командных review-шлюзов

opencode web (браузерный UI)

OPENCODE_SERVER_PASSWORD=your-secret opencode web \
  --hostname 0.0.0.0 \
  --port 4096
  • Автоматически открывает браузерный интерфейс
  • Удобно для ручной вставки PR diff
  • Production: Nginx/Caddy reverse proxy + HTTPS

Базовая безопасность: всегда задавайте OPENCODE_SERVER_PASSWORD; не выставляйте 0.0.0.0 в интернет без auth и firewall.

Тестовая среда

Параметр Спецификация
VPS Три Ubuntu 22.04, 2 vCPU, SSD 40 ГБ, RAM 4/8/16 ГБ
OpenCode 2026.7, подключение к Anthropic Claude Sonnet API
Тестовые репо ① TypeScript monorepo (pnpm, ~120 пакетов) ② Go-микросервис (с Docker Compose)
Задача review Симуляция PR: агент читает diff → lint → unit-тесты → Critical/Warning/Suggestion
Сэмплирование 3 прогона на сценарий, медиана; free -m + /proc/PID/status для пиков

Сравнение трёх уровней памяти

Сценарий S1: Лёгкий single-repo PR (3 файла, без тестов)

Конфиг Пик RAM Swap Время review
4 ГБ 2,1 ГБ лёгкий (~80 МБ) 38s
8 ГБ 2,1 ГБ нет 36s
16 ГБ 2,1 ГБ нет 35s

4 ГБ едва пригоден — swap уже заметен.

Сценарий S2: Средний PR + lint + unit-тесты

Конфиг Пик RAM Swap Время review
4 ГБ 3,8 ГБ сильный (~1,2 ГБ) 2m 48s
8 ГБ 3,6 ГБ нет 1m 12s
16 ГБ 3,6 ГБ нет 1m 08s

4 ГБ удваивает задержку — 8 ГБ точка перелома.

Сценарий S3: Параллельный review 2 репо + MCP filesystem

Конфиг Пик RAM Swap Время review
4 ГБ OOM Kill сбой
8 ГБ 7,2 ГБ частый (~2 ГБ) 4m 15s
16 ГБ 6,8 ГБ нет 2m 02s

8 ГБ работает, но дёргается; 16 ГБ — комфортная зона.

Сценарий S4: Длинная сессия (48 ч непрерывно, 20+ review)

Конфиг RSS процесса SQLite DB Системный swap
4 ГБ 1,4 ГБ 890 МБ постоянно 2 ГБ+
8 ГБ 1,1 ГБ 1,2 ГБ 1,15 ГБ (совпадает с #16729)
16 ГБ 980 МБ 1,2 ГБ нет

Раздувание БД — общая проблема. Включите retention в opencode.json:

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

4 ГБ: когда можно терпеть

Подходит для:

  • Соло-разработчик, иногда ревьюит свои маленькие PR
  • Только облачные API, без локальных тестов
  • Готовность к review в 2–3× медленнее и редким OOM-рестартам

Не подходит для:

  • Общего командного review-сервера
  • MCP или параллельных review
  • 24/7 always-on сервиса

Лайфхак: VPS 4 ГБ по требованию — systemctl start opencode по PR webhook, shutdown после review. Дешевле 24/7 на 16 ГБ, но cold start 15–30 секунд.

8 ГБ: минимум для маленькой команды

8 ГБ — наша стартовая рекомендация для большинства команд:

  • Одновременно opencode serve + 1 LSP + полный single-repo review flow
  • Пики обычно 5–7 ГБ, 1–2 ГБ для ОС
  • VPS ~$12–24/мес (Hetzner, Vultr, DigitalOcean)

Обратите внимание:

  • Ограничьте параллельные сессии до 1–2
  • Еженедельный рестарт + VACUUM БД
  • OPENCODE_DIAGNOSTICS=1 для мониторинга памяти

16 ГБ: production default

Сразу 16 ГБ когда:

  • 3+ инженеров делят один review-шлюз
  • Параллельные review на 2+ репо
  • MCP включён (GitHub, Jira, filesystem)
  • Нужны npm test / docker compose для валидации PR
  • 24/7 без частого обслуживания

VPS 16 ГБ ~$24–48/мес — на порядки дешевле part-time человека-ревьюера.

Помимо RAM

Измерение Рекомендация
CPU 2 vCPU минимум; 4 vCPU для параллельных review
Диск SSD 40 ГБ+; SQLite DB и git clone занимают место
Сеть HTTPS исходящий к API моделей; входящий только private IP
ОС Ubuntu 22.04 LTS или Debian 12; Bun runtime в комплекте с OpenCode
Бэкап Регулярные бэкапы ~/.local/share/opencode/

Гибрид: VPS + облачный Mac

Если review включает валидацию iOS / Xcode build, никакой Linux VPS не запустит xcodebuild. Два распространённых гибридных паттерна:

  1. Linux VPS (8 ГБ) для opencode serve — общий code review
  2. Облачный Mac mini (16 ГБ+) для iOS review через MCP или webhook

Наш бенчмарк RAM Claude Code детально тестировал уровни M4 Mac mini — модель agent-подпроцессов OpenCode близка к Claude Code.

Чеклист деплоя за 5 минут

# 1. Установить OpenCode
curl -fsSL https://opencode.ai/install | bash

# 2. Настроить API key (env-file, не plaintext в командной строке)
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 reverse proxy (опционально, HTTPS)
# location /opencode/ { proxy_pass http://127.0.0.1:4096/; }

Таблица быстрого выбора

Ваша ситуация Рекомендация В месяц
Соло, редкие маленькие PR VPS 4 ГБ (on-demand) $4–8
Команда 2–5, один репо VPS 8 ГБ $12–24
Команда 5+, параллельные multi-repo VPS 16 ГБ $24–48
Включая iOS/Xcode review Облачный Mac mini 16 ГБ почасово/месяц
Высокий compliance (код on-prem) 16 ГБ on-prem + локальные модели разовая покупка железа

Заключение

Узкое место по памяти при локальном OpenCode Review — не сам opencode serve, а git-, LSP-, test- и MCP-подпроцессы, которые агент запускает при review. 4 ГБ работает, но тесно; 8 ГБ — минимум для команды; 16 ГБ — спокойный production-выбор. Для iOS review или Xcode MCP смотрите облачный Mac mini — больше RAM на Linux VPS не решит xcodebuild.

Ограниченное предложение →