Self-Hosting Kamal: Modern Deployment Tool from Basecamp
Kamal deploys containerized apps to bare VPS servers. Created by Basecamp, it's a simple alternative to Kubernetes for small teams.
What Is Kamal?
Kamal (formerly MRSK) is a deployment tool from Basecamp. It deploys Docker containers to bare Linux servers — no Kubernetes, no complex orchestration.
How Kamal Works
1. Build your Docker image
2. Push to a registry
3. Kamal pulls the image on your servers
4. Kamal manages Traefik for routing
5. Zero-downtime deploys with rolling updates
Key Features
Simple Configuration
yamlservice: myapp
image: myapp
servers:
registry:
server: ghcr.io
username: user
password:
Zero-Downtime Deploys
Kamal uses rolling deploys — the new container starts, health checks pass, then the old container is stopped.
Accessories
Deploy databases and supporting services alongside your app.
Multi-Server
Deploy to multiple servers with different roles (web, worker, etc.).
Kamal vs Kubernetes vs Docker Compose
When to Use Kamal
Deployment
Install Kamal locally, configure deploy.yml, run `kamal deploy`. Your app is live with zero-downtime deploys.
Kamal proves that you don't need Kubernetes for production deployments. For most web apps, a VPS + Kamal is all you need.