Skip to main content

Host machine

macOS and Windows work for local development via Docker Desktop, but production deployments should be Linux — Docker Desktop has resource ceilings and worse networking for multi-container stacks.

Per-chat sandbox resources

Each active chat gets its own container. Defaults (overridable via .env): Budget for concurrent users: N chats × 2 GB RAM plus overhead. Tune in .env — see Configuration.

External services you’ll need

  • An OpenAI-compatible LLM provider. OpenAI, Anthropic (via LiteLLM), OpenRouter, Azure, self-hosted vLLM — anything that speaks POST /chat/completions. Required for the main chat.
  • (Optional) Anthropic API for the sub_agent (Claude Code) tool. Set ANTHROPIC_AUTH_TOKEN to enable.
  • (Optional) A vision model for the describe-image skill. Set VISION_API_KEY, VISION_API_URL, VISION_MODEL.

Ports

Both are exposed on the host by the bundled Compose files. Put a reverse proxy in front for TLS.

A note on PUBLIC_BASE_URL

The single most common mistake self-hosters make is leaving PUBLIC_BASE_URL at http://localhost:8081 when deploying behind a domain. It must be a URL your browser can reach:
It’s baked into the system prompt and into every file link. See Configuration.

Next

Install quickstart

docker compose up --build and you’re running.