all posts

The Best Dokku Alternatives in 2026

Ajay Kumar··9 min read

Dokku is one of the most quietly successful pieces of infrastructure software ever written. A few thousand lines of bash on a single box, and you get git push deploy, buildpack builds, zero-downtime swaps, Let's Encrypt certificates and one-command Postgres. It is the Heroku experience for the cost of a VPS, and for a huge number of side projects and internal tools it has been the correct answer for a decade.

I'm Ajay, I build PandaStack. People start looking for alternatives for a small set of predictable reasons, and which reason applies determines which replacement is right — so this post is organised by reason rather than by a ranked list.

Why people leave Dokku

  • The single box became a single point of failure. Everything on it dies together, and the recovery procedure is 'rebuild the server from memory'.
  • They want a UI. Dokku is entirely CLI-over-SSH, which is great alone and awkward the moment a second person needs to see what's deployed.
  • The box needs patching, the disk fills with old images, and nobody owns that work.
  • Multiple apps started competing for the same RAM, with no isolation between them beyond Docker's.
  • They want previews per pull request, and building that on Dokku means writing it yourself.

If you want to stay self-hosted

Coolify

The most direct upgrade path and the most popular Dokku successor. Same idea — your server, your Docker — but with a real web UI, multi-server support, one-click databases and services, automatic TLS, and preview deployments per pull request built in. If your reason for leaving is 'I want a UI and per-PR previews without writing them', this is the answer and you can be running in an afternoon. It is heavier than Dokku (a full application rather than bash scripts), which is exactly the tradeoff you're making.

Dokploy

Newer, lighter, and built around Docker Swarm for multi-node. Covers the same ground as Coolify with a smaller surface area and a cleaner interface, at the cost of a smaller ecosystem and less accumulated documentation. Worth a look if Coolify feels like more than you need but Dokku is less.

CapRover

The elder statesman of this category — Docker Swarm underneath, a one-click app catalogue, and a UI that has been stable for years. Less fashionable than Coolify and correspondingly less churn. If you value 'this has worked the same way for five years' over 'this has the newest features', CapRover is a reasonable pick.

Kamal

A different philosophy and worth understanding as a category, not just a tool. Kamal is not a PaaS — there is no daemon on the server, no control plane, no UI. It is a deploy tool that SSHes into machines you specify, pulls a container image and swaps it behind a proxy. Your configuration is a YAML file in the repo. Nothing runs on the server between deploys except your app and the proxy.

That minimalism is the point. There is no PaaS to upgrade, break, or be locked into, and the whole system is legible in an afternoon. The cost is that anything a PaaS gives you for free — a UI, per-PR previews, managed databases, log aggregation — you assemble yourself. Pick Kamal when you want deployment to be boring and explicit, and you're comfortable owning the servers.

Nomad or k3s

The step up in complexity, and usually a step too far for someone leaving Dokku. Both give you real multi-node scheduling, health-based rescheduling and declarative desired state. Nomad is dramatically simpler than Kubernetes and deserves more attention than it gets; k3s is a genuine Kubernetes in one binary if you want the ecosystem. Choose these when you have several machines and workloads that need to move between them — not because a single-box PaaS felt unsophisticated.

If the box is the problem

Every option above still leaves you owning a server: its kernel updates, its disk, its failure. If that ownership is the actual reason you're reading this, the honest move is to a managed platform and the question becomes which one keeps the parts of Dokku you liked.

What made Dokku good was git push deploy, no Dockerfile required, and a price that didn't scale with the number of small apps. That last one is where most managed platforms fall down: a per-app or per-service monthly minimum makes a Dokku box holding eleven small projects expensive to replace.

The managed shortlist

  • Render and Railway — closest to the Heroku model, good ergonomics, per-service pricing that adds up if you have many small apps.
  • Fly.io — closest to 'a VM I control' among the managed options, with real global placement. More configuration surface, more power.
  • DigitalOcean App Platform — simple, predictable, cheap enough, thinner on features.
  • PandaStack — mine; the section below is a pitch and labelled as such.

PandaStack

We keep the two Dokku properties that matter: connect a repo and push to deploy with no Dockerfile required, and don't charge a per-app minimum. Framework detection reads your repo the way a buildpack does — Next, Vite, Django, FastAPI, Rails, Go, static — and falls back through your own pandastack.json, then Dockerfile hints, then a build-pack pass. Each app runs in its own Firecracker microVM rather than a container on a shared kernel, which is a stronger isolation boundary than Dokku gives you between apps on one box.

The economics are the part that actually replaces a Dokku box. Billing is per-second on active CPU and resident memory, and apps scale to zero when idle and wake in about a second — so eleven mostly-idle side projects cost roughly what eleven mostly-idle side projects should cost, rather than eleven service minimums.

# The Dokku equivalent: point it at a repo, no Dockerfile.
pandastack apps create \
  --git-url https://github.com/you/your-app \
  --branch main \
  --auto-deploy

# Every push to main deploys. Blue-green: the new VM has to pass a
# health check before traffic moves, and the old one is then torn down.
git push origin main

Where Dokku still wins: it's free apart from the VPS, it runs on hardware you can touch, and there is no vendor. Those are real and I'm not going to argue you out of them.

Choosing in one paragraph

If you want a UI and previews and are happy owning a server, use Coolify. If you want the opposite — explicit, minimal, no control plane — use Kamal. If you have several machines and real scheduling needs, use Nomad. If the server ownership itself is the problem, move to a managed platform and pick on pricing shape: per-service minimums are what make a Dokku box expensive to replace, so look hardest at what a mostly-idle app costs.

Getting your apps out

Dokku migrations are usually easy because Dokku barely touches your app. Two things to collect before you start:

  1. Your config. Run dokku config:show for every app and save it — this is the state that lives only on the box and is the thing people lose.
  2. Your data. dokku postgres:export for each database. Test the restore on the target before you cut over, not during.

Your Procfile and buildpack setup carry over to most destinations unchanged, because they're a Heroku convention rather than a Dokku one. If you were using a Dockerfile, that carries over everywhere.

The summary

Coolify for a UI and per-PR previews on your own hardware. Dokploy or CapRover for something lighter. Kamal if you want deploys to be an explicit, legible YAML file with no daemon. Nomad or k3s only if you genuinely have a fleet. And a managed platform if the box itself is what you're tired of — in which case judge the candidates on what a mostly-idle app costs, because that number is what determines whether the move is affordable for the eleven small things your Dokku box was quietly holding up.

Frequently asked questions

Is Dokku still maintained in 2026?

Yes. Dokku continues to see active releases and remains a reasonable choice for a single-server deployment. The reasons to move off it are almost never 'it stopped working' — they are that a single box is a single point of failure, that a CLI-over-SSH interface is awkward once a second person is involved, or that you want per-PR previews and don't want to build them yourself. If none of those apply to you, staying is a perfectly defensible decision.

What is the closest thing to Dokku with a web UI?

Coolify. It keeps the same fundamental model — your server, your Docker, git-driven deploys — and adds a web interface, multi-server support, one-click databases, automatic TLS and preview deployments per pull request. Dokploy is a lighter alternative in the same category, and CapRover is the longer-established one with a smaller feature set and correspondingly less churn. All three are a straightforward afternoon's migration from a Dokku box.

How is Kamal different from Dokku?

Kamal is a deploy tool, not a platform. Nothing runs on your server between deploys except your app and a proxy — there is no control plane, no daemon, no UI, and no state on the box that isn't in your repo. You describe your servers and image in a YAML file, and Kamal SSHes in, pulls the image and swaps containers. That makes it dramatically more legible than a PaaS and dramatically less featured: no managed databases, no preview environments, no dashboard. Pick it when you want deployment to be explicit and boring.

What is the cheapest way to host many small apps after Dokku?

Look hardest at per-app pricing minimums, because that is what makes replacing a Dokku box expensive. A single VPS running eleven small projects costs one VPS; a managed platform charging a monthly minimum per service costs eleven of those. The managed options that work economically for this shape either bill purely on consumption or let apps scale to zero when idle, so a project nobody visited this week costs close to nothing. Get an actual number for 'a mostly-idle app' from each candidate before you shortlist.

How do I export my apps and data out of Dokku?

Two things matter, and one of them is easy to forget. First, run dokku config:show for every app and save the output — environment configuration lives only on that box and is the state people lose. Second, export each database with the plugin's export command and, crucially, test restoring it on the target platform before you cut over rather than during. Your Procfile and buildpack configuration are Heroku conventions rather than Dokku ones, so they carry over to most destinations unchanged.

Keep reading

Run code in a microVM in one API call.

49ms p50 cold start. Fork, snapshot, and scale to zero.

Start free
Written by Ajay Kumar, Founder, PandaStack.