On this page
Overview
Kamal is a Ruby deployment tool for Dockerized web applications on bare metal and cloud VMs. It runs commands across servers with SSHKit and uses kamal-proxy to move traffic between old and new containers for zero-downtime releases. Although created for Rails, it works with any web application that can be containerized with Docker.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Build Docker images and distribute them through a registry
Kamal automates building the application's Dockerfile, pushing the image to a registry, pulling it to target servers, and starting application containers.
Switch traffic between releases with kamal-proxy
After a new container responds to its health check, kamal-proxy routes traffic to it and the old container is stopped, enabling zero-downtime release transitions.
Best fit
Fits direct Docker-host deployment without operating Kubernetes
It suits teams running one or more Docker-capable VMs or bare-metal servers that want a lightweight, repeatable application deployment workflow.
Sources: [1]
Before adoption
kamal setup changes remote hosts and launches containers
The initial kamal setup connects over SSH, may install Docker, logs into the registry, builds and distributes images, and starts proxy and application containers. Review hosts, privileges, and networking before running it.
Sources: [2]
Registry credentials, application secrets, and SSH keys remain operational responsibilities
Private registry credentials and application secrets flow through .kamal/secrets and the environment, so CI and operator credential protection and rotation need explicit policy.
Sources: [2]
Official sources
- [1]Kamal v2.12.0 README(2026-10-03)
- [2]Kamal installation guide(2026-10-03)
- [3]Kamal init command(2026-10-03)
- [4]Kamal v2.12.0 release(2026-10-03)
- [5]Kamal MIT license(2026-10-03)
Supplemental curator note
Kamal fits teams that want to deploy containerized applications directly to VMs or bare metal without operating a Kubernetes cluster. The simpler control plane still leaves SSH access, registry credentials, secrets, host patching, backups, and server lifecycle as explicit operational responsibilities.
Try it in 3 steps
- 1
Install Kamal 2.12.0
Install the pinned stable release into a Ruby environment.
gem install kamal -v 2.12.0 - 2
Verify the CLI version
Confirm the Kamal CLI starts without connecting to any remote servers.
kamal version - 3
Generate local deployment configuration stubs
Create config/deploy.yml, .kamal/secrets, and sample hooks locally. This quick start intentionally does not run kamal setup because that changes remote hosts.
mkdir kamal-demo && cd kamal-demo && kamal init
Growth
Growth trends · Last 30 days
14,627 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 2
- Open PRs
- 86
Development activity is still being collected.
Built with
Categories and tags
GitHub data
GitHub dataView detailed GitHub data
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- OpenComputer558 Stars
2 shared tag(s) · 1 shared category(s)
Define agents as code and operate them as versioned deployments on a managed cloud runtime
TypeScript - Maybe54,280 Stars
2 shared tag(s) · Same language
self-host net worth, transactions, budgets, and investments, but active development ended at v0.6.0
Ruby - Mastodon50,345 Stars
2 shared tag(s) · Same language
run a community-governed server that federates across the Fediverse with ActivityPub
Ruby - Chatwoot37,488 Stars
2 shared tag(s) · Same language
Unify web chat, email, WhatsApp, and social channels into shared inboxes, automation, and AI support
Ruby - Vagrant27,211 Stars
4 shared tag(s) · 2 shared category(s) · Same language
define portable development environments across providers with a Vagrantfile
Ruby - Jenkins26,615 Stars
3 shared tag(s) · 2 shared category(s)
Automate builds, tests, analysis, and deployment with jobs, pipelines, and a large Java plugin ecosystem
Java
Report incorrect information
Tell us if any listing information is incorrect or outdated.