OSS Tanbou

deploy Dockerized web apps to bare metal or cloud VMs over SSH and switch traffic with kamal-proxy for zero-downtime releases

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
14,627
Primary language
Ruby
License
MIT
Repository last updated
Sep 30, 2026
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.

Sources: [1][2]

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.

Sources: [1][2]

Coordinate multi-server deployment with SSH, secrets, and hooks

Configuration in config/deploy.yml, .kamal/secrets, and hooks coordinates SSH-based deployment and related tasks across servers.

Sources: [2][3]

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]

Server lifecycle and data protection remain outside Kamal's deployment focus

Kamal simplifies application deployment but does not replace host patching, database backups, storage planning, monitoring, or broader infrastructure recovery processes.

Sources: [1][2][4]

Official sources

  1. [1]Kamal v2.12.0 README(2026-10-03)
  2. [2]Kamal installation guide(2026-10-03)
  3. [3]Kamal init command(2026-10-03)
  4. [4]Kamal v2.12.0 release(2026-10-03)
  5. [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. 1

    Install Kamal 2.12.0

    Install the pinned stable release into a Ruby environment.

    gem install kamal -v 2.12.0
  2. 2

    Verify the CLI version

    Confirm the Kamal CLI starts without connecting to any remote servers.

    kamal version
  3. 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
Check the official README

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
Stars
14,627
Forks
754
Watchers
100
Open issues
67
Contributors
167
Owner type
Organization
Primary language
Ruby
License
MIT
Repository last updated
Sep 30, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?