pickuma.
Infrastructure

Coolify vs Dokku vs CapRover: self-host PaaS compared in 2026

We deployed the same three-service app to Coolify, Dokku, and CapRover on a $12/mo Hetzner box. Here's the architecture, memory footprint, and ops cost of each self-hosted PaaS in 2026.

7 min read

Self-hosting a PaaS used to mean weekends lost to Nginx, systemd, and SSL renewals that broke at 3am. Coolify, Dokku, and CapRover all promise to compress that work into a git push and a web dashboard. They get there through different stacks, and the wrong pick costs you migration time you won’t get back.

We deployed the same three-service app — a Node API, a Postgres database, and a static Astro frontend — to each platform on a fresh $12/mo Hetzner CX22 (2 vCPU, 4GB RAM). What follows is what we hit, where each one bent, and which we’d reach for on the next project.

Architecture decides what breaks

Dokku is the oldest of the three (2013) and the leanest: a few thousand lines of Bash glue around Docker, designed to run on a single host. App lifecycles live in ~/dokku/<app> directories. There’s no web UI in the core — you ssh in and run dokku apps:create, dokku domains:add, dokku certs:add. A community plugin (dokku-letsencrypt) handles TLS. Plugins are first-class: Postgres, Redis, MongoDB, Clickhouse all ship as dokku-postgres, dokku-redis, etc., and they wire env vars into your app automatically when you dokku <db>:link.

CapRover sits on Docker Swarm. That choice is the whole story: you get multi-node orchestration, rolling deploys, and a one-click app store (over 100 apps as of writing) out of the box, but you also inherit Swarm’s quirks — overlay network DNS oddities, volume placement headaches, and a deprecation cloud since Docker shifted focus to Kubernetes. The web dashboard is the primary interface; the CLI exists but is secondary.

Coolify v4 rewrote the platform on Laravel + Docker Compose (no Swarm, no Kubernetes by default). v4 added multi-server support, so one Coolify instance can deploy to many remote Docker hosts over SSH. The UI is the most polished of the three — closest to Vercel or Render in feel — and it’s the only one with a built-in S3-compatible backup story for databases and a managed-Postgres-style UX.

Where each one actually fits

Pick Dokku when: you have one server, you live in the terminal, and you want the smallest moving-parts footprint. Memory baseline is around 150MB. The plugin ecosystem is mature — Dokku has been around twice as long as the others and the community plugins have been hammered on for a decade. The cost: no web UI in core, no built-in multi-server, no out-of-the-box backup scheduling. If you can’t ssh, you can’t operate Dokku.

Pick CapRover when: you want a web dashboard, one-click apps (Ghost, Nextcloud, Plausible, MinIO are common picks), and you don’t mind being on Docker Swarm. Memory baseline is around 400MB. The one-click app catalog is the strongest selling point — adding a Plausible instance is genuinely two clicks. Watch the Swarm caveat: if a node goes down mid-deploy, Swarm’s recovery is more fragile than Compose’s restart loops. Bind-mount volumes also don’t move between nodes, which surprises first-time multi-node users.

Pick Coolify when: you want the modern UX, your team has people who aren’t comfortable in SSH, and you’ll plausibly outgrow a single host within 12 months. Memory baseline is around 700MB (the heaviest of the three — it runs Laravel, a database, Redis, and Soketi for itself). In exchange you get: per-app TLS via Caddy, push-to-deploy from GitHub/GitLab with previews, an actual database backup scheduler with S3 destinations, and a real audit trail. v4 is younger and breaks more often than Dokku — check the GitHub issues for your stack before committing.

A note on community velocity: Coolify is the most actively developed (multiple releases per month, around 45k GitHub stars), CapRover is steady (around 13k stars, monthly-ish releases), Dokku is mature and slow-moving (around 30k stars, releases when needed). Velocity cuts both ways — Coolify breaks more often, Dokku has more sharp edges that nobody has filed off in five years.

Ops cost, the part nobody benchmarks

The total cost of running these is not the server. It’s the time you spend recovering from upgrades.

Dokku upgrades are mostly painless because there’s almost nothing to upgrade — you apt upgrade dokku and re-run dokku plugin:update. We have seen Postgres plugin updates require a careful read of the changelog (volume layout changes between major Postgres versions).

CapRover upgrades go through the dashboard. The Swarm-level upgrades (Docker version, Swarm state) are the ones to worry about; the CapRover layer itself is a single container restart. We hit one Swarm gotcha during a Docker 25 to 26 upgrade where the overlay network needed manual recreation — a documented issue with documented recovery, but not fun at the time.

Coolify v4 upgrades are the most invasive — schema migrations on every minor version, occasional breaking config changes during the v4 stabilization period (we’re past the worst of it as of 2026 but not all the way clear). Their changelog is honest about it, and rollback works, but plan upgrades on a weekday, not Friday afternoon.

FAQ

FAQ

Can I run any of these on a $5/month VPS? +
Dokku, yes — its ~150MB baseline leaves room for small apps on a 1GB box. CapRover needs roughly 512MB free after its ~400MB baseline, so 1GB is the floor and you'll be tight. Coolify wants 2GB minimum and won't install cleanly on 1GB. A Hetzner CX22 (2 vCPU, 4GB, around $5-7/mo) is the realistic floor for Coolify.
What's the migration story between them? +
There isn't a clean one. All three deploy Docker containers from a Git repo, so your app is portable — what isn't portable is the database, env vars, TLS state, and any platform-specific config (heroku-buildpacks for Dokku, captain-definition for CapRover, Compose YAML for Coolify). Plan a migration as a clean redeploy, not a lift-and-shift.
Are any of these production-ready for a paid SaaS? +
Yes, with caveats. Dokku and CapRover both run paid SaaS workloads today; pair either with off-host Postgres backups and a separate monitoring layer (Uptime Kuma, Grafana). Coolify is production-ready for solo founders and small teams; we'd be cautious deploying it for a multi-million-dollar revenue line until the v4 release train slows down further.

Related tools

Some links above are affiliate links. We may earn a commission if you sign up. See our disclosure for details.

Related reading

See all Infrastructure articles →

Get the best tools, weekly

One email every Friday. No spam, unsubscribe anytime.