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.
- 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.
- 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.
- 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/coolifyThe 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
gem install kamal
