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. SetANTHROPIC_AUTH_TOKENto enable. - (Optional) A vision model for the
describe-imageskill. SetVISION_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:
Next
Install quickstart
docker compose up --build and you’re running.