Skip to main content

Local development

The same compose files production uses will run the whole stack on a Mac. Docker Desktop must be running. Nothing else is required — no SOPS, no age key, no Tailscale, no VPS access, no secrets of any kind. .env.local is created for you from .env.local.example on first run.
That builds and starts the edge stack, the observability stack and the vault, and waits until they actually answer.

Verified cold

The local runbook was verified on 2026-07-26 against main at 0b40403 — not “it worked on the machine that built it”, but a fresh clone into an empty directory on a Mac with every stack image deleted, no volumes, no networks, no .env.local and an empty build cache. Every command was run exactly as written, and nothing outside the runbook was needed. Cold start is roughly a minute, most of it Grafana installing plugins. The point of those commands is that the result is re-verifiable at any time — run them and check.

Source documents