Compare / self-hosted PaaS
Coolify, Dokploy, or a managed platform
A self-hosted PaaS puts a Heroku-shaped interface on a server you rent: Coolify and Dokploy both give you git-driven deploys, TLS, and one-click databases for the price of the VPS. The honest question is not which is better — it is whether owning the host is worth what it costs you, and that answer changes as the project grows.
Why developers look for a self-hosted PaaS alternative
Coolify is the mature one
Apache 2.0, around 40,000 GitHub stars, over 280 one-click services, and a v4.0 release in May 2026 that added an MCP server — the first self-hosted PaaS an agent can drive natively.
Dokploy is the lean one
Source-available, around 24,000 stars since launching in April 2024, built on Docker Swarm with first-class Compose support. Faster to learn, smaller surface, fewer moving parts.
The server is cheap and the ownership is not
A $12 VPS runs several small apps. You also own kernel updates, firewall rules, certificate renewals, disk space, database backups, and a restore you have actually tested.
One box is one box
Scaling past it means a second server, a load balancer, shared storage, and session state that is not local — which is the work a platform was doing for you.
Lizard vs self-hosted PaaS
Every figure read off self-hosted PaaS’s published pricing and our own. Last verified: August 2026.
| Compared by | Lizard | self-hosted PaaS |
|---|---|---|
| Infrastructure cost | $0.0278 per vCPU-hour, $0.0139 per GB-hour, on measured use | Your VPS bill — about $12 a month for a small server |
| Who patches the host | We do | You do |
| Database backups | Managed Postgres | Yours to schedule, store off-box, and test |
| TLS certificates | Issued on the first deploy, renewed for you | Handled by Coolify or Dokploy, until DNS moves |
| Isolation | A pod per service, with a default-deny network policy | Docker containers sharing one kernel |
| Scaling past one machine | lizard scale, or another service | A second server, a load balancer, and shared state |
| Licence | A hosted service | Coolify is Apache 2.0; Dokploy is source-available |
| Who gets paged | We do | You do |
When self-hosting is the better choice
Side projects, homelabs, agencies running many small client apps, and anyone whose bill would otherwise be dominated by a dozen near-idle services. A $12 server running eight apps under Coolify is genuinely cheaper than any per-service platform, you keep full control of the data, and the software is good — Coolify in particular is a well-built project with a real community. If you enjoy running the box, run the box.
Moving from self-hosted PaaS
No Dockerfile required — lizardpack detects the stack and writes one on the build node. If your repo already has a Dockerfile, it is used as it stands.
Frequently asked questions
Coolify if you want maturity and breadth: Apache 2.0, around 40,000 stars, over 280 one-click services, and an MCP server since v4.0 in May 2026. Dokploy if you want something leaner and quicker to learn, built on Docker Swarm with first-class Docker Compose support. Coolify has more features; Dokploy has fewer things to understand.
On the invoice, almost always — a $12 VPS running several apps beats per-service pricing. Once you count the hours spent on kernel updates, certificate renewals, backup testing, and the evening the disk fills, the gap narrows and often reverses. The break-even is your hourly rate, not the server price.
It does not own the machine underneath. Kernel patching, disk capacity, off-box backups, monitoring, and failover to a second host stay yours. It also cannot schedule across servers the way a real orchestrator does — scaling past one box means building the surrounding infrastructure yourself.
Yes, and the Dockerfile comes with you. Run lizard up in the repo — an existing Dockerfile is used as it stands — then lizard add postgres redis for the managed pieces, pg_dump and pg_restore for the data, lizard secrets set for the environment, and lizard domain add for the domain and certificate.
Every service runs in its own pod with a default-deny network policy, so no other tenant can reach it and it cannot open connections into the platform itself. On a box you host, you configure that yourself, and one escaped container reaches everything else on the machine — including your other clients, if you host several. For untrusted or generated code, a Lizard sandbox goes further: its own Firecracker micro-VM, with its own kernel.
Build with AI. Ship with Lizard.
You don't need a platform team to go live. Your whole cloud, one CLI command away.
No credit card required