Skip to content
Dennis Lee edited this page May 27, 2026 · 1 revision

title: Kamal type: platform created: 2026-05-26 last_updated: 2026-05-26 related: ["radar/platforms/Daytona", "radar/platforms/Windmill", "radar/tools/OrbStack"] sources: ["https://github.com/basecamp/kamal"] radar_quadrant: Platforms radar_ring: Assess radar_position: inner

Kamal

Basecamp's open-source deployment tool for Dockerised web applications. Deploys to any server with SSH access and Docker installed, with zero-downtime cutover via Traefik. Extracted from Basecamp's own production infrastructure; formerly named MRSK.

How It Works

Kamal coordinates deployments through a single deploy.yml config file. On deploy, it pulls the new Docker image on each target server, starts the new container, waits for a health check to pass, then stops the old container. Traefik runs as a local load balancer to handle the cutover without dropping requests.

Core capabilities:

  • Zero-downtime deploys — health-checked container swap via Traefik; old container kept until new one is healthy
  • Multi-server deployments — deploy to a fleet of servers in parallel from a single command
  • Accessory services — manages supporting containers (databases, caches, sidekiq) with separate lifecycle commands
  • Secrets management — encrypted .env files committed to the repo; secrets injected at deploy time
  • Rollbackkamal rollback <version> redeploys a previous image tag

Positioning

Kamal occupies the space between manual Docker management and full Kubernetes. It requires no cluster, no Helm, no cloud vendor — only SSH access and a Docker registry. The trade-off is that it does not handle auto-scaling, pod-level resource limits, or multi-region routing. It suits single-region deployments at moderate scale where operational simplicity outweighs elastic infrastructure needs.

Radar Assessment

Kamal sits in the Assess ring of the Platforms quadrant, at inner position. First studied via GitHub (2024-09-26). Self-hosted web app deployment is a recurring problem: manual Docker management is error-prone, Kubernetes is operationally heavy for small services. Kamal provides a structured, reproducible deployment path with zero-downtime semantics and no cloud lock-in. Basecamp runs it in production at scale, which validates the operational model. Inner position reflects a clear trial path (single server, one Dockerised app, one kamal deploy) and direct applicability to homelab and small-production deployments. Remaining gate before Trial is a completed zero-downtime deploy to a real server with rollback verified.

Clone this wiki locally