Setup
From a clean clone, one command starts an interactive wizard:
bun run setupThe wizard:
- Writes
deploy/.env(mode 0600) with your publish host and port. - Optionally installs dependencies, builds images, pulls OpenViking, and starts Compose.
- Prints the URL of your instance.
It does not ask for an AI provider — chat models are connected later, per user, inside the desktop.
What it asks
| Question | Default | Written to |
|---|---|---|
| Publish host | 100.96.0.3 | PUBLISH_HOST |
| Publish port | 8787 | PUBLISH_PORT |
Both can be an IPv4 address or hostname. The Compose file maps ${PUBLISH_HOST}:${PUBLISH_PORT} to the control plane's internal port 8787.
First login
Open the printed URL (default http://100.96.0.3:8787) and sign in with:
admin@localhost / changemeThe first login forces new credentials, stored hashed in sqlite.
Connect a chat model
Chat models are per user, connected inside the desktop:
- Open a thread (the desktop starts on demand).
- On the Providers page — or via a terminal on the thread screen — run
opencode auth logininside the user container. - Pick the model per thread from the model selector.
Configure OpenViking memory
Set the OpenViking embedding and VLM providers on the Config page. The full walkthrough — including the Cloudflare Workers AI option — is in OpenViking setup.
Manual Compose
Everything the wizard does, by hand:
bun install
bun run images # build control + desktop images
docker pull ghcr.io/volcengine/openviking:latest
docker compose --env-file deploy/.env -f deploy/compose.yml up --build -dThe setup wizard refuses to run inside Docker — it manages the host's Docker daemon.