DEV Community

Alex Spinov
Alex Spinov

Posted on

Kamal Has a Free Deployment Tool — Deploy Docker Apps Without Kubernetes

Kubernetes Is Overkill for Most Apps

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: Zero-Downtime Docker Deployment

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.

How It Works

  1. You have a server with Docker installed
  2. Kamal builds your Docker image
  3. Kamal deploys it via SSH
  4. Traefik handles routing and SSL
  5. Zero downtime — old container runs until new one is healthy

Config in 10 Lines

# config/deploy.yml
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
Enter fullscreen mode Exit fullscreen mode

Deploy

kamal setup    # First time: install Docker, Traefik, deploy
kamal deploy   # Subsequent: build, push, deploy with zero downtime
kamal rollback # Something wrong? Roll back in 10 seconds
Enter fullscreen mode Exit fullscreen mode

What You Get

  • Zero-downtime deploys (health checks, rolling restart)
  • Automatic SSL via Traefik + Let's Encrypt
  • Multi-server deploys from one config
  • Accessory services: deploy Redis, PostgreSQL alongside your app
  • Rolling deploys: update servers one at a time
  • Audit trail: kamal audit shows deploy history

Kamal vs Alternatives

Feature Kamal Docker Compose Kubernetes Coolify
Zero downtime Yes No Yes Yes
Complexity Low Low Very High Low
Multi-server Yes No Yes Yes
SSL Auto Manual Manual Auto
UI Dashboard No (CLI) No Dashboard Yes
Learning curve 1 day 1 hour Weeks 1 day

When to Use Kamal

  • 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

When to Use Something Else

  • Need a UI: Use Coolify instead
  • Large scale: 50+ services → consider Kubernetes
  • Zero ops: Use Vercel/Railway

Install

gem install kamal
kamal init
kamal setup
Enter fullscreen mode Exit fullscreen mode

Works with any Docker container — Ruby, Python, Node.js, Go, Rust.


Deploy scrapers to your own infrastructure. 88+ scrapers on Apify. Custom: spinov001@gmail.com

Top comments (0)