finds.dev

// 8 picks · reviewed October 2026

The Best Self-Hosted PaaS and Heroku Alternatives in 2026

Self-hosted PaaS exists for one reason: you want Heroku's git-push deploy experience without Heroku's per-dyno pricing. Every tool here manages Docker containers, SSL, and databases on servers you already own or rent — the real differences show up in what's doing the orchestration underneath (plain Docker over SSH, versus Docker Swarm, versus Kubernetes) and how much you still own if the tool itself disappears tomorrow.

The split that matters most: six of these eight — Coolify, Dokploy, CapRover, Dokku, Kamal, Vito — assume you're bringing your own VPS and nothing else. The other two, Sealos and Kubero, assume you already have, or want, a Kubernetes cluster underneath. Picking the wrong bracket is the easiest way to end up running more infrastructure than the problem needed.

  1. 01coolify
  2. 02dokploy
  3. 03caprover
  4. 04dokku
  5. 05sealos
  6. 06kamal
  7. 07kubero
  8. 08vito

★ 56,817PHPApache-2.0updated Jun 2026

best for the default pick — broadest one-click service library and biggest community

Coolify is the one most people should start with. The one-click catalog covers close to 300 services — Postgres, Redis, n8n, Plausible — and because every Docker config lives on your server rather than in Coolify's own database, killing the control plane doesn't kill your running apps.

The catch is that the control plane still matters day to day. Run it on the same box as your apps and you've got a single point of failure; run it on a separate box, as the docs recommend, and you've added a second server to the 'cheaper than Heroku' math. The breadth of the catalog is a strength until you pick a less common service and find you're the first person filing an issue about it. Background jobs occasionally get stuck mid-deploy with nothing but SSH to fall back on, and the real-time container status depends on a separate sidecar that drifts out of sync often enough to make you double-check with docker ps before trusting it.

★ 34,821TypeScriptNOASSERTIONupdated Jun 2026

best for teams who want a modern Docker Swarm-based Vercel/Netlify feel

Dokploy feels the most like Vercel of anything here — Traefik handles SSL and custom domains automatically, and Docker Swarm gives you real multi-node scaling without jumping straight to Kubernetes, which is more than Coolify or CapRover offer out of the box.

That multi-node support is also where it gets complicated. You inherit Swarm's rough edges — raft consensus failures, split-brain, a much smaller tooling ecosystem than Kubernetes — and the install is a curl-pipe-bash with no checksum, a worse supply-chain story than Dokku's plugin-based install. The bigger issue is the license: alongside the open-source code sits a proprietary license file, and multi-server support — the exact feature that makes Dokploy worth choosing over Coolify — appears to be one of the gated pieces. Read it before building anything you'd be upset to lose.

★ 15,189TypeScriptNOASSERTIONupdated Oct 2026

best for the simplest Docker+nginx setup on a single VPS

CapRover is the simplest thing here that still counts as a real PaaS. It's old enough to have sanded off its rough edges, it has a genuine test suite, and like Coolify it won't kill your containers if you remove it.

What it doesn't give you, despite running on Docker Swarm underneath, is real multi-node operation — treat it as a single-server tool, the same bracket as Dokku and Kamal, not the Dokploy or Sealos bracket. The open-source repo also has a 'Pro' tier (OTP auth, a pro data store, a pro manager) mixed directly into the codebase, so it's worth checking what you're actually getting before committing. And because nginx config is generated through CapRover's own templates, any routing case the UI doesn't anticipate means learning CapRover's abstraction instead of just writing nginx.

★ 31,974ShellMITupdated Jul 2026

best for developers who want the literal git-push-to-deploy Heroku workflow

Dokku is the closest thing to the actual Heroku experience: git push, and that's the deploy. It's been around since 2013, still ships weekly, and the plugin system means adding Postgres or Let's Encrypt is a one-liner — the plugin ecosystem is bigger than anything else here except Coolify's service catalog.

It's also unapologetically single-server. There's no real clustering story — k3s and Kubernetes scheduler plugins exist but are second-class citizens that most of the documentation and community knowledge ignores. Because the whole thing is shell script, a failure three plugins deep in the trigger chain produces an error message that tells you almost nothing; you'll spend more time reading source than with Dokploy or Kamal. If you want git-push simplicity with a real path to multiple servers, look at Dokploy instead.

★ 18,364TypeScriptNOASSERTIONupdated Sep 2026

best for teams already running Kubernetes who want an app store on top of it

Sealos is a different kind of tool than the rest of this list — it's not something you install on a VPS, it's a multi-tenant control plane you run on top of a Kubernetes cluster you already have, complete with quotas, RBAC, and an app store. If your team is already deep in k8s and wants Heroku-style UX over it, nothing else here gives you that.

The catch that's easy to miss: it ships under a custom license that explicitly forbids using it to host apps for third parties, which is disqualifying if the eventual plan is anything resembling a hosting business, in a way none of the single-server tools are. It's also a platform commitment rather than a dependency — you're running their full controller stack and CRDs, including billing and account-suspension logic, even if you just want an internal deploy tool with none of that baked in. Customizing anything beyond what the App Store UI exposes means crossing several module boundaries in a large, years-deep monorepo.

★ 14,664RubyMITupdated Oct 2026

best for teams who don't want to run any control-plane software at all

Kamal is the odd one out: there's no dashboard, no control plane, nothing running that you have to keep alive. It's SSH and Docker, full stop, which keeps the attack surface smaller than anything with a web UI on this list, and the secrets handling — 1Password, Doppler, cloud secret managers — is more serious than most self-hosted PaaS tools bother with.

The absence of a control plane is also the limit. Past a handful of servers there's no real clustering or service discovery, just sequential or parallel SSH commands — fine for Basecamp's own use case, less fine the moment you need more than that. Zero-downtime deploys depend on kamal-proxy, a separate and younger project, so when something breaks you're debugging two repos instead of one. There's also no rollback safety net for databases or migrations; redeploying an old image tag is the entire story, thinner than Dokku's health-check-based deploys. The README won't tell you much either — actual usage docs live in a separate repo.

★ 4,307TypeScriptGPL-3.0updated Apr 2026

best for Kubernetes users who want Heroku-style UX without adopting Coolify or Dokku's own stack

Kubero sits between Dokku and Sealos: it wants to give you Dokku's Heroku-style UX, but on Kubernetes, without asking you to adopt Sealos's whole platform. Storing all app state as Kubernetes CRDs instead of a separate database is a genuinely clean choice, and review apps from pull requests actually build, deploy, and tear themselves down rather than being a half-finished feature.

The trade-off shows up the moment something needs to be reliable. The add-ons marked 'built in' are explicitly not HA — once a database or queue actually matters, you're configuring the external operators yourself anyway, which erases a lot of the convenience the dashboard promised. Storing everything in etcd is elegant until you hit etcd's size limits, and there's no external-database escape hatch if you do. It's also the smallest community here by a wide margin, and debugging a stuck operator means going through the web service, then the operator framework, then the Kubernetes API — more layers than Dokku or Kamal ask you to reason about.

★ 3,140PHPAGPL-3.0updated Jun 2026

best for small teams deploying PHP/Node apps who want a Forge-like panel without Kubernetes

Vito is the one to reach for if your stack is PHP and you want something like Laravel Forge without paying a SaaS fee per server. The action-per-operation code structure is clean enough to actually extend, and both Nginx and Caddy are first-class rather than one being an afterthought.

The limits are narrower but real: no PostgreSQL, only MySQL and MariaDB, so anything Postgres-based means managing that database outside Vito entirely. Node, Go, and Python apps are technically supported as 'custom sites,' but you lose the deploy pipeline integration that makes this worth using for PHP in the first place — if your stack isn't PHP-first, Dokku or Dokploy will treat it as more of a first-class citizen. The plugin architecture is well built but the ecosystem behind it is thin, so a missing capability means writing it yourself, and the install script runs as root over curl-pipe-bash like Dokploy's, with the same supply-chain caveat.

// questions people ask

Before you choose

Coolify or Dokploy — what's the actual difference?

Coolify has the bigger one-click catalog (280+ services) and the bigger community, but its multi-server setup is a recommendation, not a built-in feature. Dokploy builds real multi-node scaling on Docker Swarm from the start — except the proprietary license alongside its open-source code appears to gate multi-server support, which undercuts the exact reason to pick it over Coolify. Read Dokploy's license before you rely on that feature.

Do any of these require Kubernetes?

Sealos and Kubero do — Sealos assumes you're already running a cluster you want to turn into a multi-tenant platform, Kubero can provision one for you but still runs on top of k8s either way. Coolify, Dokploy, CapRover, Dokku, Kamal, and Vito all run on plain Docker over SSH and need nothing more than a VPS.

Which of these won't strand my apps if I remove it?

Coolify, CapRover, and Kamal all keep your Docker configs independent of the control plane, so uninstalling the tool doesn't touch running containers. Sealos is the opposite extreme — you're adopting its CRDs and controller stack as a platform, not a dependency, and there's no clean way to walk that back.

What's the simplest option for one cheap VPS?

CapRover and Dokku are both built for exactly that and don't pretend otherwise. CapRover gives you a GUI and a one-click app catalog; Dokku gives you the literal git-push workflow with a plugin for everything else. Pick CapRover if you want a dashboard, Dokku if you're fine living in the terminal.

None of these are wrong, exactly — they're built for different amounts of infrastructure you're willing to own and babysit. If you'd rather have picks like this land in your inbox instead of going looking for them, that's what the weekly finds.dev email does.

// how we picked these

Every repo here was read and assessed on its own before it was considered for this page: we pull the README, the directory layout and a key source file, and write the assessment from those rather than from the project's own marketing. Candidates for this list came from a full-text and topic search over the 142 reviewed repositories that matched this category. Anything with no commit in the last 12 months was cut, as were link collections, tutorials and boilerplates; the floor for inclusion was 2.000 stars. The ordering is a judgement call about who should pick what, not a ranking by stars. finds.dev is independent of every project listed here: nobody paid for a place on this page, there are no affiliate or referral links on it, and we have no commercial relationship with any of them. That is the point of writing down what each one is bad at as well as what it is good at.

Our criteria →