Because the deploy was never the hard part. Kamal already builds, ships and swaps traffic better than anything we would write. What nobody handles is the machine underneath it: creating it, locking it down, keeping it patched, proving the backup restores, and knowing what the whole estate costs. KamalCloud does that half, and leaves the deploy to Kamal.
The three rows that actually differ.
Everything else in the grid below is table stakes. These three are where the choice is real.
01
You end up owning a real Kamal config
Not portable-because-it-is-Docker. Your repository's own config/deploy.yml, plus a destination file KamalCloud writes in Kamal's own format, both run by the official Kamal image.
KamalCloud
Standard Kamal config the Kamal CLI runs
Coolify and Dokploy
Settings stored in their own database, with no export format
02
It hardens the machine, then tells you what it costs
Creating a server is no longer rare: Coolify now does it too. Fixing it is. KamalCloud applies twelve named hardening fixes one at a time, and estimates the whole estate from each provider's own price list, with a spend trend and idle resources flagged.
KamalCloud
Provision, harden and price, in one place
Coolify and Dokploy
Updates and a security check at most. Firewall, SSH and the bill are yours
03
The API cannot change anything on its own
Reads of servers, apps and requests answer directly. Every change asked for through the API or CLI is proposed and waits for an admin to approve it in the browser. Hand the CLI to a script, or to an agent, without handing over the estate.
KamalCloud
Approval-gated by design, not by policy
Coolify and Dokploy
A token with write access acts at once, with no approval step
Hosted for you. Self-hosting is possible — billing is optional in the code.
You install and maintain it, or rent Coolify Cloud
You install and maintain it, or rent Dokploy Cloud
Deploy engine
Kamal — the official image, pinned to v2.12.0
Its own: Nixpacks, Railpack, Dockerfile or Compose, behind Traefik or Caddy
Its own: Nixpacks, Railpack, Buildpacks, Dockerfile or Compose, behind Traefik
The config you end up owning
Standard Kamal config: your deploy.yml plus a destination file in Kamal's format
Stored in Coolify's database, with no export format
Stored in Dokploy's database. Export is an open feature request
Creates servers for you
YesHetzner, DigitalOcean and AWS, over their APIs
YesHetzner, DigitalOcean and Vultr, over their APIs
NoServers are added over SSH
Bring a server you already have
YesOver SSH, with a custom user and port
Yes
Yes
Server hardeningKamalCloud's fixes that change the machine need it to accept a root login.
Yes12 named fixes, applied one at a time: host and cloud firewall, fail2ban, SSH lockdown, automatic updates, swap
PartlyInstalls OS updates from the dashboard. Firewall and SSH are left to you
PartlyA security check reports on UFW, SSH and Fail2Ban. You apply the fixes
Cost dashboard
YesEstimated from each provider's price list, spend trend, idle resources flagged
NoNothing in its docs
NoNothing in its docs
AI
YesAn MCP server built from the caller's own role, with OAuth 2.1 and a preview before anything costly
PartlyAn MCP server that can deploy, not built from the caller's role
PartlyAn assistant that writes Compose files, and an MCP server
Approval-gated API
YesThe API and CLI read servers and apps. Turn on human-approval mode and every change they ask for is a request an admin approves
NoScoped tokens act at once
NoTokens act with their user's permissions
Backups to your own S3
YesDatabases and volumes, scheduled, to one or more buckets, with restore and download
YesDatabases with restore. Volumes are scheduled, but not restored from the dashboard
YesDatabases and volumes, scheduled, with restore
Git providers
GitHub, GitLab, Gitea, Bitbucket
GitHub, GitLab, Gitea, Bitbucket
GitHub, GitLab, Gitea, Bitbucket, and any Git URL
Push to deploy
YesBranch or tag triggers, with path filters
YesWith watch paths
YesWith watch paths, except on Gitea
Docker Compose apps
NoKamal-shaped apps only
Yes
Yes
Preview and PR environments
No
YesRemoved when the PR closes
PartlyGitHub only
Multiple hosts per environment
YesSeveral hosts and Kamal roles per environment. More than one proxy host needs a supplied certificate or a load balancer — Kamal's constraint, not ours.
PartlySeveral servers behind your own load balancer. Swarm is deprecated
YesSeveral servers, or a Swarm cluster
One-click apps
5: WordPress, Directus, Stalwart, Vaultwarden and Runwell
7-day trial, then one plan: $29 a month for unlimited servers and people
Free to self-host. Cloud is $5 a month for 2 servers, $3 per extra server
Free to self-host. Cloud starts at $4.50 a month per server
Maturity
New
Since 2021, about 62k GitHub stars, Apache-2.0
Since 2024, about 37k GitHub stars, Apache-2.0 with proprietary parts
Last verified: 14 September 2026, against KamalCloud's code and Coolify's and Dokploy's own docs, pricing pages and changelogs. Both move quickly. Tell us where we have it wrong and we will correct it here.
When to choose Coolify instead
If you want a long catalog of one-click applications, if your apps are Compose files you would rather not reshape, if you need preview environments per pull request, or if running the control plane yourself is something you actively want — Coolify is the better tool and it is free. It has years of work and a large community behind it, and neither of those is something we can claim yet.
Choose KamalCloud when the machine matters as much as the deploy: when you want the servers hardened for you, the bill in the same place, and an API that cannot change anything without a person saying so — on top of a Kamal config that stays yours.
FAQ
The objections, not the highlights.
Coolify is free. Why would I pay for this?
That is the hardest question on this page and the sticker prices are not comparable. Self-hosted Coolify is free software that you host, patch, back up and debug at two in the morning, on a server you are also paying for. Coolify Cloud takes that away for a few dollars a month, and it is a fair answer. What neither gives you is the machine hardened, the bill in view, or an API that waits for a person. If those do not matter to you, Coolify is a genuinely good choice.
Coolify and Dokploy have hundreds of one-click apps. How many do you have?
Five: WordPress, Directus, Stalwart, Vaultwarden and Runwell, against roughly 370 and 530. Ours are production-shaped — volumes that stand their container down for a consistent backup, and honest version notes each — but five is five. If you are shopping for a catalog, we are not it yet.
Do you support Docker Compose?
No. KamalCloud deploys Kamal-shaped applications. If your app is a Compose file and you want it to stay one, this is the wrong tool and we would rather you knew before you signed up than after.
Can I self-host KamalCloud?
It is possible — billing is optional in the code — but it is not the product we support or document. The hosted control plane is the thing we run, watch and patch.
Try it against your own server.
The comparison that counts is the one you run. Connect a machine and see what the hardening panel says about it.