Running in production · Edition No. 39 · 3 Oct 2026

basecamp/kamal

Copies a packaged application onto servers you own over SSH and switches the traffic over without a gap.

← Running in productionRead the whole edition →

14,627 stars · MIT (read from /blob/main/MIT-LICENSE — plain /blob/main/LICENSE returns 404 because the file is named MIT-LICENSE; plain and unmodified, 'Copyright (c) 2023 David Heinemeier Hansson') · v2.12.0 (2026-06-18, year confirmed by rubygems.org/gems/kamal) · Track this in Scout

Copies a packaged application onto servers you own over SSH and switches the traffic over without a gap.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Kamal is a command-line program (a tool you type into a terminal window rather than click) written in Ruby. It takes a container — a sealed box holding your application and everything it needs to run — and sends it to one or more servers over SSH, which is the normal way of logging in to a remote machine.

What it is good for. Anyone who has a working application and a rented server, and who is paying a hosting company every month for the step in between. Kamal removes that step. It is also good for anyone who tried a cluster manager, found a hundred pages of documentation, and gave up. The thing it replaces is not a tool. It is a monthly bill.

Stars14,627
LicenceMIT (read from /blob/main/MIT-LICENSE — plain /blob/main/LICENSE returns 404 because the file is named MIT-LICENSE; plain and unmodified, 'Copyright (c) 2023 David Heinemeier Hansson')
Latestv2.12.0 (2026-06-18, year confirmed by rubygems.org/gems/kamal)
Good
  • One file of settings and one command. There is no management panel to install on the server, and nothing is left running there except the application itself and a small traffic switch.
  • It installs the container software on the target server for you during setup, so a blank rented machine is enough to start.
  • It is the tool a real company built for its own products and still uses, so the awkward parts — rolling from the old version to the new one, running a one-off task, reading the logs — are all covered.
Watch for
  • You need Ruby on the machine you are typing on, because the install command is gem install kamal. The project does say you can run it inside a container instead, and its own documentation calls that route limited.
  • Your application must already be packaged as a container, and you must write and keep a settings file by hand. There is no screen to click.
  • The project publishes no memory, processor or disk figure anywhere, and names no minimum version of Ruby or of the container software. There are also 85 waiting changes against 73 waiting problems, which means the settings file can shift between small version numbers.
Similar repositories
  • dokku/dokku

    The same job of running your own containers on your own machine, but it is a service installed on the server that you push code to, rather than a tool on the machine you type on; Ubuntu 22.04 and 24.04 or Debian 11 and later only.

    Track this in Scout
  • coollabsio/coolify

    The same job of deploying to a server you own, but through a web page with a catalogue of ready-made services instead of a settings file and a command.

    Track this in Scout
  • caprover/caprover

    Also deploys containers to your own machine and adds a web screen with a web server and free certificates built in, but it runs on Docker Swarm, which is a cluster manager you then have to understand.

    Track this in Scout
Install
gem install kamal
Screenshots
basecamp/kamal: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.