This is the reference for how the packaged desktop install actually works under the hood — see
Install the desktop app for the step-by-step if you just want to get it running.
The downloadable release ZIP is a Docker Compose project: docker-compose.yml (the app +
Postgres + Redis), an optional docker-compose.ollama.yml override (adds a local Ollama
container), start.bat/start.sh and stop.bat/stop.sh wrapper scripts, and adocker/.env.example template.
start.sh/start.bat copies docker/.env.example to a real .env if one doesn't exist yet and
auto-generates AUTH_SECRET for you. The template is intentionally short — everything else can be
filled in later through the setup wizard or Settings:
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
# Free tier — get a key at build.nvidia.com (no credit card)
NVIDIA_API_KEY=
# Required — the start script will generate this automatically if left as-is.
AUTH_SECRET=replace-this-with-a-random-32-character-string
# Leave this as-is for local Docker use
NEXTAUTH_URL=http://localhost:3000
# Optional — only needed if you use docker-compose.ollama.yml for local AI
# OLLAMA_BASE_URL=http://ollama:11434Keys set here take priority over keys entered in Settings — leave them blank if you'd rather
manage keys entirely from inside the app.
# Standard start
./start.sh # Mac/Linux
start.bat # Windows
# With local Ollama models
docker compose -f docker-compose.yml -f docker-compose.ollama.yml up -d
# Stop
./stop.sh # or stop.bat, or just stop it from Docker Desktopoutput: 'standalone'The Next.js build uses output: 'standalone' — a self-contained production build that doesn't
need the full node_modules tree copied into the image. This is a hard constraint on any change to
the build config: breaking standalone output breaks the Docker image entirely, not just a dev
convenience.