
Kamal
Deploys containerized web apps to your own servers with zero-downtime switching.
- Stars
- 14.7k
- Forks
- 769
- Licence
- MIT
- Language
- Ruby
- Last update
- 16 days ago
- Type
- Dev tool
What it is
Kamal is a deployment tool that takes a web app packaged in Docker and puts it onto one or more servers you control, such as bare metal machines or cloud VMs. It uses a proxy called kamal-proxy to switch traffic between old and new containers so users are not interrupted during updates. It was built originally for Rails apps but the README says it works with any web app that can be containerized.
- Deploy a containerized web app to a VM or bare metal server with zero downtime
- Roll out one app across multiple servers from a single configuration
- Use kamal-proxy to route requests between running containers during a release
Great for
- Developers who want to self-host web apps without adopting a managed platform
- Teams running the same app across several servers over SSH
- Rails developers, since the tool was originally built for Rails
- Projects that already run in Docker containers
Not ideal for
- People without Docker experience, since the README assumes containerized apps
- Those who want a hosted platform with no server management, because Kamal deploys to machines you run
- Non-web workloads, since the README describes deploying web apps specifically
How to get it
- 1
See the README
You'll need: Docker · SSH access to target servers
Clone the repository
git clone https://github.com/basecamp/kamal - 2
Run it
- Follow the installation guide at kamal-deploy.org/docs/installation
- Define your deployment configuration as described in the configuration docs
- Run the deploy commands listed in the commands documentation
- 3
Get the most out of it
- Read the configuration docs to set up multiple servers
- Review the commands reference for rollback and other operations
- Use kamal-proxy for traffic switching between container versions
Downloads
Strengths
- Supports zero-downtime deploys according to the README
- Works across multiple servers and any cloud or bare metal host
- Released under the permissive MIT license
Trade-offs
- Requires Docker and SSH access to your servers, which adds setup work
- README is truncated here, so detailed configuration is only available on the external docs site
- Originally designed around Rails, so non-Rails apps may need more manual setup
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| kamal (this) | 14.7k | Dev tool | intermediate | 16 days ago | Developers who want to self-host web apps without adopting a managed platform |
| dokku | 32.2k | App | intermediate | 4 days ago | Developers who want Heroku-style deployment on a server they control |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.