Skip to main content
The Docker image packages the gateway and CLI into a single container using Bun as the runtime.

Quick start

1

Build the image

2

Run the container

Open http://localhost:3000 to launch the Settings UI and configure your AI provider.

Docker Compose

A docker-compose.yml is included for the common case.
Data persists in the spaceduck-data volume across restarts and upgrades.

Persistence

The container stores its SQLite database at /data/spaceduck.db. The compose file mounts a named volume at /data, so your data survives container restarts. Default database path inside the container:

Environment variables

API keys

Pass provider API keys as environment variables:
  • GEMINI_API_KEY
  • OPENROUTER_API_KEY
  • AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_REGION
Use a local .env file with Docker Compose and keep it out of version control.

Running the CLI inside the container

The image includes the CLI bundle. If your container is named spaceduck:

Local AI providers

If you want Spaceduck inside Docker to connect to a model server running on your host machine (LM Studio, llama.cpp, etc.):
Docker Desktop provides host.docker.internal to reach the host:

Healthcheck

The image includes a built-in healthcheck against /api/health. Verify manually:

Notes

  • Playwright/browser tooling is not included in the default image to keep it lean.
  • The Docker image is intended for gateway-first usage. The CLI is included for setup and maintenance inside the container.
  • To add custom binaries or system packages, extend the image with your own Dockerfile.