Kamal (by 37signals/Basecamp) is a deployment tool that deploys Docker containers to bare servers — no Kubernetes, no orchestrators.
What You Get for Free
- Zero-downtime deploys — blue-green deployment via Traefik
- Any server — deploy to any VPS with Docker installed
- Multi-server — deploy across multiple servers
- SSL automatic — Traefik handles Let's Encrypt
- Rolling updates — graceful container replacement
- Accessory services — deploy databases, Redis alongside your app
- Environment variables — encrypted secrets management
- Asset bridging — serve new assets immediately
- Health checks — verify deployment before switching traffic
Quick Start
gem install kamal
kamal init # creates config/deploy.yml
# config/deploy.yml
service: my-app
image: my-registry/my-app
servers:
web:
- 192.168.1.1
- 192.168.1.2
traefik:
options:
publish:
- "443:443"
volume:
- "/letsencrypt:/letsencrypt"
kamal setup # first deploy: installs Docker, Traefik, deploys app
kamal deploy # subsequent deploys: zero-downtime update
Why Developers Switch from Kubernetes
K8s is overkill for 90% of apps:
- Simple — YAML config, not K8s manifests
- Any server — $5 VPS, dedicated server, cloud VM
- No cluster — no etcd, no control plane, just Docker
- By Basecamp — they deploy Hey.com (millions of users) with Kamal
A team spent 3 months setting up Kubernetes for a Rails app with 50K users. After Kamal: same reliability, same zero-downtime deploys, setup took 2 hours.
Need Custom Data Solutions?
I build production-grade scrapers and data pipelines for startups, agencies, and research teams.
Browse 88+ ready-made scrapers on Apify → — Reddit, HN, LinkedIn, Google, Amazon, and more.
Custom project? Email me: spinov001@gmail.com — fast turnaround, fair pricing.
Top comments (0)