Skip to content

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
Step-by-step guide: how to use KamalInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    See the README

    You'll need: Docker · SSH access to target servers

    Clone the repository

    git clone https://github.com/basecamp/kamal
  2. 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. 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

ProjectStarsTypeLevelUpdatedBest for
kamal (this)14.7kDev toolintermediate16 days agoDevelopers who want to self-host web apps without adopting a managed platform
dokku32.2kAppintermediate4 days agoDevelopers 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.