Skip to content

Self-hosted

Kamal on machines you already own.

Your own hardware, or a machine at a provider KamalCloud does not speak to. KamalCloud reaches it over SSH and manages what runs on it, without pretending it built it.

Any Linux box you can SSH into

Added in three steps.

There is no token. Self-hosted machines are reached over SSH, not over an API.
  1. 01

    Connect it under Providers, then Self-hosted. There is nothing to paste.

  2. 02

    Add a server with its address, the SSH user, and the port if sshd is not on 22.

  3. 03

    Put KamalCloud's deploy key on it with the one-line command from the server's SSH key page.

What works over SSH.

Everything that runs over SSH works. Everything that needs a provider API does not.

Hardening

Applied over SSH. The machine's own firewall is the only one there is, so there is no cloud firewall to attach.

Deployed with Kamal

The official Kamal image runs against your repository from GitHub, GitLab, Gitea or Bitbucket.

Backups, volumes and accessories

Databases and caches as accessories, the volumes your containers mount, and backups of both.

Logs, shell and tasks

Live logs and a shell in the browser, and commands on a schedule inside your running app.

A runner of its own

A self-hosted machine can be the box Kamal runs on, including one that is also a deploy target.

IPv4 or IPv6

KamalCloud dials whichever address it is given, and records both if you supply both.

KamalCloud will not build, resize, power, reboot or price a machine it does not have a provider behind.

FAQ

Questions about your own machines.

All questions
Which SSH user does KamalCloud need?

Whichever you set. It needs to be able to run Docker and, for hardening, sudo without a password prompt. Kamal takes one SSH user and port for a whole environment, so every machine in it has to agree on both.

Can I use a key the machine already trusts?

Yes. Import the private half under Account, then SSH keys, and name it on the server.

What happens if I delete a self-hosted server in KamalCloud?

KamalCloud forgets it. Only servers at Hetzner, DigitalOcean or AWS are destroyed at the provider.

Can I bring an app that is already running on it?

Yes. Import it, and KamalCloud reads it off the Docker containers and touches nothing on the machine.

Register a machine you already have.

Add its address, put the deploy key on it, and read what the hardening panel says before you change anything.

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