# Kamal

Deploy web apps anywhere.

Repository: https://github.com/basecamp/kamal
Canonical: https://ross.abutalabs.com/products/kamal
Homepage: https://kamal-deploy.org
Language: Ruby
License: MIT
License Family: permissive
Last push: 2026-08-12T09:22:20+00:00
Link (homepage): https://kamal-deploy.org
Link (site_page): https://kamal-deploy.org/docs
Link (site_page): https://kamal-deploy.org/docs/installation
Link (site_page): https://kamal-deploy.org/docs/configuration/overview
Link (site_page): https://kamal-deploy.org/docs/commands/view-all-commands

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 97, release rhythm 89, longevity 95
- inputs: {"age_days": 1334, "days_push": 21, "days_rel": 76, "gap_med": 2.5, "n_releases_24m": 29}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 14534, forks 747 (observed 2026-08-28T04:11:07.209155+00:00)

## What it is
Kamal is a Ruby-based CLI tool that deploys containerized web apps to any server (bare metal or cloud VMs) over SSH with zero-downtime switching via its companion kamal-proxy. It automates Docker installation, image builds, registry pushes, rolling restarts, rollbacks, and accessory services from a simple config/deploy.yml file.

## Use cases
- deploy a Rails app to cheap Hetzner or DigitalOcean VMs with zero downtime
- deploy a Dockerized web app to my own bare metal servers over SSH
- avoid vendor lock-in from Heroku, Fly.io, or Render
- roll back a bad deployment to a previous container version
- manage accessory services like Redis or a database alongside my app
- run rolling restarts and asset bridging across multiple servers

## When to choose
- you deploy containerized web apps to plain Ubuntu servers or your own hardware
- you want Heroku-like deploy ergonomics without managed-platform pricing
- you want a simple YAML-driven deploy tool without running Kubernetes
- you're a Rails team wanting a first-party deployment workflow

## When to avoid
- you need autoscaling, self-healing, or multi-region orchestration (use Kubernetes)
- your app cannot be containerized with Docker
- you need a fully managed PaaS with no server administration
- you deploy only to serverless platforms

## Facets
- artifact type: cli-tool
- maturity: active
- function: deployment, container-runtime, developer-tools, cli, configuration-management
- domain: web-development, self-hosted, cloud-computing
- platform: cli, cross-platform
- tags: zero-downtime-deploys, docker, ssh, rails, kamal-proxy, bare-metal, rolling-deploys, devops, containers, linux, macos

## Member repositories
- basecamp/kamal (main) score 94
- basecamp/kamal-proxy (infra) score 70

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:07.209155+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:12:29.986278+00:00, confidence not recorded.
  - readme: https://github.com/basecamp/kamal (fetched 2026-08-28T04:11:07.209155+00:00, sha 25830360462f)
  - homepage: https://kamal-deploy.org (fetched 2026-08-29T08:05:56.716741+00:00, sha 57a630603307)
  - site_page: https://kamal-deploy.org/docs/hooks/overview (fetched 2026-08-29T08:05:56.726659+00:00, sha d6b0d44b8bac)
  - site_page: https://kamal-deploy.org/docs (fetched 2026-08-29T08:05:56.719305+00:00, sha 2b98f4d10c80)
  - site_page: https://kamal-deploy.org/docs/installation (fetched 2026-08-29T08:05:56.721258+00:00, sha da624e4a121e)
  - site_page: https://kamal-deploy.org/docs/configuration/overview (fetched 2026-08-29T08:05:56.723121+00:00, sha 232e00dc1d80)
  - site_page: https://kamal-deploy.org/docs/commands/view-all-commands (fetched 2026-08-29T08:05:56.725017+00:00, sha 578d8911e6f7)
  - site_page: https://kamal-deploy.org/docs/upgrading/overview (fetched 2026-08-29T08:05:56.728604+00:00, sha a0a5b0581d03)
  - site_page: https://kamal-deploy.org/v1/docs (fetched 2026-08-29T08:05:56.730350+00:00, sha 56d0e6352432)
- Data as of 2026-08-30T08:39:29.467469+00:00.
