Tools: Report: Kamal Has a Free Deployment Tool — Deploy Docker Apps Without Kubernetes
Kubernetes Is Overkill for Most Apps
Kamal: Zero-Downtime Docker Deployment
How It Works
Config in 10 Lines
Deploy
What You Get
Kamal vs Alternatives
When to Use Kamal
When to Use Something Else
Install You have one app, one database, and one worker process. Kubernetes wants you to learn pods, services, deployments, ingresses, ConfigMaps, Secrets, HPA, PDB, and 47 YAML files. Kamal (from the makers of Ruby on Rails) deploys Docker containers to any server with zero downtime. No Kubernetes. No orchestrator. Just SSH and Docker. Works with any Docker container — Ruby, Python, Node.js, Go, Rust. Deploy scrapers to your own infrastructure. 88+ scrapers on Apify. Custom: [email protected] Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse
# config/deploy.yml
-weight: 500;">service: my-app
image: my-app servers: web: hosts: - 1.2.3.4 worker: hosts: - 1.2.3.4 cmd: bin/jobs registry: username: myuser password: - KAMAL_REGISTRY_PASSWORD env: secret: - DATABASE_URL - REDIS_URL
# config/deploy.yml
-weight: 500;">service: my-app
image: my-app servers: web: hosts: - 1.2.3.4 worker: hosts: - 1.2.3.4 cmd: bin/jobs registry: username: myuser password: - KAMAL_REGISTRY_PASSWORD env: secret: - DATABASE_URL - REDIS_URL
# config/deploy.yml
-weight: 500;">service: my-app
image: my-app servers: web: hosts: - 1.2.3.4 worker: hosts: - 1.2.3.4 cmd: bin/jobs registry: username: myuser password: - KAMAL_REGISTRY_PASSWORD env: secret: - DATABASE_URL - REDIS_URL
kamal setup # First time: -weight: 500;">install Docker, Traefik, deploy
kamal deploy # Subsequent: build, push, deploy with zero downtime
kamal rollback # Something wrong? Roll back in 10 seconds
kamal setup # First time: -weight: 500;">install Docker, Traefik, deploy
kamal deploy # Subsequent: build, push, deploy with zero downtime
kamal rollback # Something wrong? Roll back in 10 seconds
kamal setup # First time: -weight: 500;">install Docker, Traefik, deploy
kamal deploy # Subsequent: build, push, deploy with zero downtime
kamal rollback # Something wrong? Roll back in 10 seconds
gem -weight: 500;">install kamal
kamal init
kamal setup
gem -weight: 500;">install kamal
kamal init
kamal setup
gem -weight: 500;">install kamal
kamal init
kamal setup - You have a server with Docker installed
- Kamal builds your Docker image
- Kamal deploys it via SSH
- Traefik handles routing and SSL
- Zero downtime — old container runs until new one is healthy - Zero-downtime deploys (health checks, rolling -weight: 500;">restart)
- Automatic SSL via Traefik + Let's Encrypt
- Multi-server deploys from one config
- Accessory services: deploy Redis, PostgreSQL alongside your app
- Rolling deploys: -weight: 500;">update servers one at a time
- Audit trail: kamal audit shows deploy history - Small to medium apps that need reliable deployment
- Teams that know Docker but do not want Kubernetes
- Rails apps (Kamal was built for Rails at Basecamp/HEY)
- Any Dockerized app on any server - Need a UI: Use Coolify instead
- Large scale: 50+ services → consider Kubernetes
- Zero ops: Use Vercel/Railway