Hardening
Applied over SSH. The machine's own firewall is the only one there is, so there is no cloud firewall to attach.
Self-hosted
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.
Connect it under Providers, then Self-hosted. There is nothing to paste.
Add a server with its address, the SSH user, and the port if sshd is not on 22.
Put KamalCloud's deploy key on it with the one-line command from the server's SSH key page.
Applied over SSH. The machine's own firewall is the only one there is, so there is no cloud firewall to attach.
The official Kamal image runs against your repository from GitHub, GitLab, Gitea or Bitbucket.
Databases and caches as accessories, the volumes your containers mount, and backups of both.
Live logs and a shell in the browser, and commands on a schedule inside your running app.
A self-hosted machine can be the box Kamal runs on, including one that is also a deploy target.
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.
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.
Yes. Import the private half under Account, then SSH keys, and name it on the server.
KamalCloud forgets it. Only servers at Hetzner, DigitalOcean or AWS are destroyed at the provider.
Yes. Import it, and KamalCloud reads it off the Docker containers and touches nothing on the machine.
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.