Skip to content
PaaS · head-to-head

Dokku vs CapRover

Updated Aug 2026prices checked · Jul 2026
We earn commissions when you shop through the links below. Full disclosure →
Heroku / yr$300
Self-hosted / yr~$283
You keep$17/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera → (opens in new tab)
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
Dokku: Platform-as-a-ServiceCapRover: Platform-as-a-Service
Stack
Dokku: Shell · HerokuishCapRover: TypeScript · Node.js
License
Dokku: MITCapRover: Apache-2.0 + appendix
Min RAM
Dokku: 1 GBCapRover: 1 GB
Difficulty
Dokku: 2 / 5CapRover: 2 / 5
Interface
Dokku: CLI over SSH, no web UICapRover: Web dashboard first
Deploys
Dokku: git push, buildpack or DockerfileCapRover: Images, one-click apps, webhooks
Runtime
Dokku: Plain Docker, single hostCapRover: Docker Swarm, multi-node ready

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 plus an appendix that overrides it: modified free features must stay free and open source, and CapRover's paid features can't be modified or redistributed without a written agreement. Both have paid extras (Dokku Pro, CapRover Pro), but the core PaaS each one ships is free to self-host. For running your own apps, this is not a decision axis.

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.

Where to host itaffiliate disclosure
Kamateratrial either on
The entry tier is a free trial — fine for a first look. Size it up (or run the 2 vCPU / 4 GB box the cost figures above assume) once you're keeping it.1 vCPU · 1 GB RAM · 20 GB SSD · $4.00/mo
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Other comparisons with these apps

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