
Kamal Has a Free Zero-Downtime Deployment Tool — Here's How to Use It
Kubernetes is overkill for most apps. Capistrano is outdated. Kamal (from 37signals/Basecamp) deploys Docker containers to any server with zero downtime — no orchestrator needed. What Is Kamal? Kamal deploys your containerized app to bare metal servers using Docker. It handles zero-downtime deploys, rolling restarts, SSL, and multi-server setups — without Kubernetes. Quick Start gem install kamal kamal init # config/deploy.yml service : my-app image : my-docker-user/my-app servers : web : hosts : - 1.2.3.4 - 5.6.7.8 worker : hosts : - 9.10.11.12 cmd : bin/jobs registry : username : my-docker-user password : - KAMAL_REGISTRY_PASSWORD env : clear : DATABASE_URL : postgres://db.example.com/myapp secret : - RAILS_MASTER_KEY - STRIPE_SECRET_KEY traefik : options : publish : - " 443:443" volume : - " /letsencrypt:/letsencrypt" kamal setup # First deploy — installs Docker, Traefik, deploys app kamal deploy # Subsequent deploys — zero downtime How Zero-Downtime Works Build new Docker image Pus
Continue reading on Dev.to DevOps
Opens in a new tab

