Prerequisites
- Docker Desktop (Mac/Windows) or Docker Engine (Linux).
- An LLM API key — Mistral free tier works (console.mistral.ai).
- Optional: a 7-day trial licence key from getkerno.ai/trial. Without it, Kerno runs in trial mode (silent banner, no licence-server check).
Pull and bring it up
mkdir kerno && cd kerno
# Grab the canonical compose file
curl -O https://raw.githubusercontent.com/getkerno/kerno-deploy/main/docker-compose.yml
# Optional — only if you need overrides (external Postgres, reverse proxy, etc.)
# curl -O https://raw.githubusercontent.com/getkerno/kerno-deploy/main/.env.example
# mv .env.example .env
# Pull the latest image and bring it up
docker compose pull
docker compose up -d
.envis optional. Everything (LLM key, auth, connectors, licence) is configured through the/setupwizard and stored encrypted in the bundled database. The image is multi-arch (amd64 + arm64), so Apple Silicon Macs run natively without Rosetta.
First-boot bootstrap
Watch logs while bootstrap completes — the engine generates its own encryption key, internal API token, and VAPID keys for Web Push:
docker compose logs -f app
# In order:
# ✓ Auto-generated ENCRYPTION_KEY → /app/memory/.encryption-key
# ✓ DB config store ready
# ✓ Auto-generated auth.secret (first boot)
# ✓ Auto-generated VAPID key pair for Web Push
# ✓ API server running on http://localhost:3001
# ✓ Next.js Ready
Open the wizard
Visit http://localhost:3000/setup. The Setup wizard page walks through every step.
Note: nothing in
.envis required. The wizard writes everything to an encrypted DB store. Edit.envonly if you're running an external Postgres or behind a reverse proxy.