Configuration reference

Every knob in one place.

deploy/.env

Written by the setup wizard (only the first two):

VarDefaultMeaning
PUBLISH_HOST100.96.0.3Published bind address
PUBLISH_PORT8787Published port
OPEN_BOT_DEV01 = devMode (product report filing, POST /api/improvements)
OPEN_BOT_MARKETPLACE_URL—Marketplace base URL
OPEN_BOT_MARKETPLACE_TOKEN—Instance marketplace write token fallback
OPEN_BOT_GITHUB_TOKEN—Agent GitHub identity injected into desktops
DATA_DIR/datasqlite + media vault volume
OPEN_BOT_AI_CONFIG/app/config/ai.tsAI config bind mount (read-only)

Read by apps/control/src/env.ts (host-side or container defaults):

VarDefault
WEB_DISTapps/web/dist
IDLE_MINUTES15
MAX_DESKTOPS4
MAX_THREAD_SCREENS3
OPENCODE_IMAGE / COMPUTER_IMAGEopen-bot-opencode:local / open-bot-computer:local
VIKING_IMAGEghcr.io/volcengine/openviking:latest
COOKIE_SECUREunset ("1" = Secure cookies)

app_settings (Admin page / API)

KeyDefaultMeaning
media_snapshot_cap_mb3072Chat media snapshot cap; 0 = off
media_vault_cap_mb3072Media vault cap; 0 clears
desktop_disk_max_gbunsetDisplay-only Hardware disk max; 0 = full disk
plugin_install_policymanualmanual | auto (also pending-review plugins)
plugin_auto_updateoffoff | stable
marketplace_api_key—obm_… key preferred over env token
backup_config / backup_status / backup_next_run_at—Backup scheduler state

Ports

PortUse
8787Control plane (published as PUBLISH_HOST:PUBLISH_PORT)
5173Web dev server (vite)
3001Docs dev server (bun run dev:doc)
4096Desktop OpenCode server
1933OpenViking server
5902–5909Thread screen VNC (display + 5900)
9224–9231Thread screen CDP (display + 9222)
4700–4719Thread preview allowlist

Route index

Grouped under /api — see Control plane for the full list and auth rules. Highlights: /auth/*, /me, /desktop*, /threads, /cron*, /personas*, /projects*, /plugins*, /media/*, /reports*, /voice, /stt, /tts, /keys, /providers*, /model, /models, /image, /video, /model3d, /system1, /viking, /skills, /backup*, /admin/*, /opencode/*, WS /events, /preview/frame/<token>/.

Migrations

bun run db:generate regenerates drizzle migrations in packages/db/drizzle — run it for any manifest or DB change, then rebuild images.