← all SaaS
Self-host Heroku
App platform / git-push deploy ·
Category: PaaS & app hosting
Heroku invented the 'git push, app appears' developer experience. Self-host replacements have caught up — Coolify and Dokku in particular feel like Heroku on a VPS.
Heroku pricing anchor: $5-25/dyno/mo for app dynos; add-ons billed separately.
- GitHub
- ★ 31.9k · last commit today · 20 open issues
- License
-
MIT - Setup time
- 15min (single-line install on a fresh Ubuntu 22.04 VPS)
- Monthly cost
- $5 VPS for small apps; scale the box as you grow.
Migration sketch. On the new Dokku box: `dokku apps:create <app>`. Locally: `git remote add dokku dokku@<host>:<app>`, then `git push dokku main`. Heroku Postgres → `pg_dump | psql` into a Dokku Postgres plugin instance. Heroku config vars → `dokku config:set` mirrors them.
Good fit forDevs who specifically want the Heroku CLI muscle memory.
Weak atSingle-host (no built-in clustering); buildpacks support is solid but not always 1:1 with Heroku's.
- GitHub
- ★ 54.8k · last commit 10d ago · 756 open issues
- License
-
Apache-2.0 - Setup time
- 10min (single-line bash installer)
- Monthly cost
- $10 VPS for the controller + apps.
Migration sketch. Coolify imports a GitHub repo and builds via Nixpacks (Heroku's buildpack spiritual successor). Add Postgres / Redis as Coolify resources, then `pg_dump | psql` from Heroku.
Good fit forTeams that want a UI + multi-server + databases in one tool.
Weak atHeavier than Dokku; less of a 'pure' Heroku feel.
- GitHub
- ★ 15.0k · last commit 4w ago · 181 open issues
- License
-
Apache-2.0 - Setup time
- 20min (Docker Swarm setup)
- Monthly cost
- $10 VPS for the controller.
Migration sketch. CapRover → Apps → New App; deploy from git or via the CLI's `caprover deploy`. Use the One-Click App Postgres template, then `pg_dump | psql` from Heroku.
Good fit forTeams that want a Heroku-like UI with a built-in app store of one-click services.
Weak atSwarm is showing its age vs Compose-based alternatives.
In a terminal? npx os-alt heroku prints this table —
how the CLI works →