A Compose control plane that does not own your containers.
Windlass gives you projects, Git deployments, HTTPS domains, logs, terminals and backups on your own server. It shells out to the real docker compose rather than replacing it, so removing the panel leaves everything running.
curl -fsSL https://get.windlass.run | sudo sh
Ubuntu or Debian with Docker · Apache-2.0 · one Go binary and an embedded UI
< 40 MiBidle footprint, enforced by CI
0extra services: no Redis, no Kubernetes, no job runner
compose.yamlis the source of truth, on disk, yours
It does not own your containers
Compose files on disk are the source of truth, and Windlass runs the real docker compose in that directory. Stop the panel, remove it, or hand-edit a compose.yaml: your applications keep serving, and the panel picks the change up.
Deployments that survive a restart
Manual, Git, webhook, template and rollback deployments, as crash-resumable jobs with replayable events. A deploy interrupted halfway does not leave a half-built stack behind.
HTTPS without a certificate chore
Caddy owns routing and certificates. Windlass touches only its own tagged route objects, so a route you added by hand is still there afterwards.
Small enough to forget about
One Go process serving the API and the frontend, with CI enforcing an idle footprint under 40 MiB. No Redis, no Kubernetes, no Swarm, no separate job runner.
The things you actually open a panel for
Container logs, a browser terminal, host and container metrics, image cleanup, file and environment editing, and Compose-native CPU and memory limits.
Backups and accounts
Local and S3-compatible backups with optional schedules. Local users, roles, TOTP, and optional OAuth.