Skip to content

How it works

Empty cloud account to deployed app, in four moves.

No Terraform to maintain, no hardening checklist you half remember, no deploy.yml written from scratch for every environment.

KamalCloud's providers screen: Hetzner connected with six servers, DigitalOcean and AWS waiting for a token, and own hardware alongside them.KamalCloud's providers screen: Hetzner connected with six servers, DigitalOcean and AWS waiting for a token, and own hardware alongside them.
The SSH key screen for a server, showing the key KamalCloud signs in with and what to do when it cannot get in.The SSH key screen for a server, showing the key KamalCloud signs in with and what to do when it cannot get in.
A deploy run, with the output showing KamalCloud writing config/deploy.production.yml and Kamal building and booting the image.A deploy run, with the output showing KamalCloud writing config/deploy.production.yml and Kamal building and booting the image.
The KamalCloud request queue: a server build, a hardening change and a deploy, each recorded against the CLI that asked and waiting for someone to agree to it.The KamalCloud request queue: a server build, a hardening change and a deploy, each recorded against the CLI that asked and waiting for someone to agree to it.
Connect your first serverSign-ups are paused while the app is in maintenance.
FAQ

Questions about the setup.

All questions
Can I still run kamal deploy from my laptop?

Yes. Your repository's deploy.yml is left as it is. For each environment KamalCloud writes a standard Kamal destination file and a secrets file on its runner, next to the checkout. With those files and your own SSH access, Kamal runs from your laptop the same way. Nothing about the Kamal workflow is replaced or intercepted.

What does KamalCloud install on my servers?

On the runner, the one box Kamal runs from: git, curl, Docker, a deploy key, an SSH config and the pinned official Kamal image. On the servers your app runs on, nothing of KamalCloud's — Kamal puts Docker there, the same as it would from your laptop. The hardening fixes change the machine's own configuration: ufw, fail2ban, unattended upgrades, sshd. Each one is a separate button, and the security page reads the result back off the machine rather than trusting that it ran.

What if KamalCloud dies in the middle of a deploy?

The deploy carries on. Kamal runs detached on the runner, so it is not holding your browser tab or a KamalCloud process open for the duration. If the worker watching the run goes away, another picks it back up and settles the record on what actually happened on the machine, rather than on what KamalCloud last saw. We deploy KamalCloud with KamalCloud, which is the only reason we know this works.

Connect a server. Start with staging.

Register a machine you already have, or provision a new one. Nothing is touched that you have not chosen.

Sign-ups are paused while the app is in maintenance.