Skip to content
PaaS · head-to-head

Dokku vs CapRover

Updated Aug 2026prices checked · Aug 2026
Heroku / yr$300
Self-hosted / yr~$55
You keep$245/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera →
The verdictOur pick: Dokku

Pick Dokku if you live in a terminal — a git push deploys, buildpacks or your own Dockerfile build it, and nothing idles on the box that you did not ask for. Pick CapRover when you would rather click: a web dashboard for domains, env vars, and volumes, a one-click app store, built-in Let's Encrypt, and Docker Swarm underneath when one host stops being enough.

Side by side

Dokkuour pick
CapRover
Category
Stack
License
Min RAM
Difficulty
Interface
Deploys
Runtime

Dokku and CapRover want the same thing: Heroku's deploy experience on a server you rent for the price of a sandwich. Both wrap Docker, both handle routing and TLS, both take you from "I have an app" to "it's live at a domain" without writing a deployment pipeline. The difference is almost entirely about where you spend your time. Dokku is a Shell and Herokuish toolchain you drive over SSH and never see a page of. CapRover is a TypeScript and Node.js app whose web dashboard is the product, with a one-click app store and Docker Swarm underneath. Terminal person or dashboard person — that is genuinely most of the decision.

The deploy loop

Dokku's signature move is git. You add your server as a remote, push a branch, and Dokku detects the language, builds with a Heroku buildpack — or your own Dockerfile if you'd rather — and swaps the container in behind its proxy. Config is CLI: dokku config:set, dokku postgres:link, dokku domains:add. There is no web interface at all unless you install a community plugin, and the project does not apologise for that. For anyone who already lives in a shell, it's the shortest possible path: no context switch, trivially scriptable, and every action you took is a command you can put in a runbook.

CapRover deploys from a Docker image, a tarball, a Dockerfile, or a git webhook, and the normal way to set any of that up is by clicking through the dashboard. Environment variables, domains, persistent volumes, and instance counts are all forms. It also has a CLI for CI use, so nothing forces you into the browser, but the browser is where the product's thinking lives. If you are deploying apps you did not write and mostly want them running rather than understood, that's the faster surface.

What each one drags along

Both records list 1 GB as the floor and both rate 2 out of 5 to deploy, so the spec table understates the real difference. Dokku is Docker plus a pile of shell scripts and an nginx it configures — that's it. Idle overhead is close to nothing, and what runs on the box is what you deployed.

CapRover installs Docker in Swarm mode and runs its own captain container and an nginx it manages. That is more moving parts idling, and Swarm brings its own concepts — services, replicas, overlay networks — that you will meet the first time something misbehaves. In exchange you get the thing Dokku pointedly does not have: a scaling story. Adding a node to the cluster and raising an app's instance count is a dashboard operation. Dokku is a single-host tool by design; when one box isn't enough, the answer is a different architecture, not a bigger Dokku.

The app store, and why it's the real differentiator

CapRover's one-click catalogue is the feature people actually switch for. Wanting a database, a monitoring stack, or a CMS running behind HTTPS in a few minutes is a common need, and picking it from a list beats writing a compose file. Automatic Let's Encrypt is built in and wired to the same UI.

Dokku reaches the same destinations through plugins — official ones for Postgres, MySQL, Redis, and Let's Encrypt, plus a healthy community set — but you install and link them yourself from the command line. The result is more explicit and easier to reproduce on a fresh server from a script; it is also more typing, and you need to know what you want before you start.

Licensing and project shape

Dokku is MIT, CapRover is Apache-2.0 — both permissive, both fully free, neither gating features behind a paid edition. Dokku offers paid pro tooling around the edges, but the core PaaS everyone runs is the MIT one. This is not a decision axis; run either without worrying about terms.

Running either on a VPS

A small server handles a couple of applications on either platform. Two practical notes. First, CapRover claims ports 80, 443, and 3000 and expects a wildcard DNS record pointed at the box, so plan your domain before installing; Dokku is happier sharing a machine with things you set up yourself. Second, back up what holds state — Dokku's app config and any linked database service's data directory, CapRover's captain data volume — because in both cases the container layer is disposable and the state layer is not.

Neither is a bad choice, and both are dramatically less work than assembling nginx, certbot, and systemd units by hand. If you find yourself resenting the dashboard, you wanted Dokku. If you find yourself resenting the man pages, you wanted CapRover.

Pick Dokku if…

  • You want git push deploys with buildpacks or your own Dockerfile, driven entirely from a terminal.
  • You want the thinnest possible layer over Docker, with nothing idling that you didn't ask for.
  • Your deployments should be scriptable and reproducible from a fresh server by replaying commands.

Pick CapRover if…

  • You'd rather click than type — a dashboard for domains, env vars, volumes, and scaling.
  • The one-click app store and built-in Let's Encrypt would save you real setup time.
  • You may outgrow one host and want Docker Swarm scaling already in place.

Common questions

Dokku vs CapRover — which should I pick?

It is mostly a question of interface. Dokku is driven entirely from the command line, deploys on git push, and is the thinnest layer you can put over Docker. CapRover puts a web dashboard and a one-click app store in front of Docker Swarm, which costs some idle overhead and buys a much shorter path for anyone who would rather not memorize commands.

Which one scales past a single server?

CapRover. It runs on Docker Swarm, so adding a node and raising an app's instance count is a dashboard operation. Dokku is a single-host tool by design — when one box is no longer enough, the answer is a different architecture rather than a bigger Dokku.

Do both handle HTTPS automatically?

Both get you Let's Encrypt certificates, by different routes. CapRover has it built in and wired to the same UI as everything else, and expects a wildcard DNS record pointed at the server. Dokku does it through an official plugin you install and enable per app from the CLI.

Other comparisons with these apps

Search SelfHost Atlas

Search apps, comparisons, guides, and categories.

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.