Contents8 sections
The best self-hosted Heroku alternatives are Coolify and Dokploy if you want a web dashboard, and Dokku if you want Heroku's git push workflow on a small server with almost no overhead. CapRover is the fourth option, and the quickest to install on a machine that already runs Docker. All four are open source and free. You pay only for the server.
That last part is the whole appeal. Heroku's current pricing page (2026-09-29) lists the Eco dyno at $5/month with 0.5 GB of RAM, limited to personal accounts, and it sleeps after 30 minutes of inactivity. The always-on Basic dyno is $7/month, also with 0.5 GB. By comparison, Hetzner's CX23 cloud server was listed at €5.99/month for 2 vCPUs and 4 GB of RAM (Germany and Finland, price including an IPv4 address, shown with 0% VAT for our location). Once you're paying for that server, you can run several apps on it.
The trade is real, though. On Heroku, someone else patches the OS, rotates certificates and pages an engineer at 3 a.m. Self-hosted, that's you.
What happened to the free tier?
If you searched for "heroku free tier alternatives", here's the current state. Heroku's pricing page (2026-09-29) starts at the Eco dyno for $5 a month and lists no free dyno. The tools below are free software, but "free" still means paying for a server. The honest floor is a small VPS plus a domain name. Dokku's docs put its minimum at 1 GB of RAM (or swap), so it's the one that fits the cheapest servers. Coolify and Dokploy want 2 GB. If you already have a spare machine at home, such as a 64-bit Raspberry Pi (which Coolify supports), the software cost really is zero. You'd then need a tunnel or port forwarding for public HTTPS.
What you give up by leaving Heroku
Worth being honest about before the list:
- Managed OS and security patching. Heroku's pricing page lists automatic OS patching even on the Eco tier. On a VPS you run
apt upgrade, or you automate it. - Managed databases and add-ons. All four tools below can run PostgreSQL or Redis as containers, and Coolify and Dokploy set up scheduled backups. But testing restores and handling upgrades is on you.
- Horizontal scaling out of the box. You can get there (Swarm with Dokploy or CapRover, multi-server with Coolify, K3s with Dokku), but it's work, not a slider.
If none of that scares you, read on.
1. Coolify
Best for: the closest thing to a Heroku-style dashboard, managing Git apps, Compose stacks and databases across one or more servers.
Coolify's docs describe it as a PaaS workflow on servers you control. Deploy from a Git repo (Nixpacks, Railpack in beta, Static, Dockerfile or Docker Compose) or from a prebuilt image. Add a domain and Traefik or Caddy handles HTTPS. Databases and one-click services come from maintained templates. Because apps run as plain Docker containers, the docs say they keep running even if Coolify itself goes down.
- Needs: 2 cores, 2 GB RAM, 10 GB disk, amd64 or arm64 Linux
- Licence: Apache-2.0 · Latest: v4.3.23 (2026-09-18)
- Managed option: Coolify Cloud, $5/month for 2 servers plus $3 per extra server
- Heroku migration note: Nixpacks auto-detects most common languages. If your app builds from a Dockerfile, that's the most predictable path.
Hetzner offers Coolify as a one-click app image. More in /software/coolify.
2. Dokploy
Best for: moving apps that already build with Heroku buildpacks, on a Docker Swarm foundation.
Dokploy lists Heroku Buildpacks as a build type, alongside Paketo Buildpacks, Nixpacks and Dockerfile. For an app with years of Heroku history, that's the lowest-friction way in. It also covers Compose (plain or as a Swarm stack), MySQL, PostgreSQL, MongoDB, Redis and MariaDB with scheduled backups, and per-app resource graphs.
- Needs: 2 GB RAM, 30 GB disk, ports 80, 443 and 3000 free
- Licence: Apache-2.0, with Enterprise features (SSO, SCIM, audit logs) under a separate source-available licence · Latest: v0.30.7 (2026-09-18)
- Managed option: Dokploy Cloud from $4.50/month per server
- Heroku migration note: choose the Heroku Buildpacks build type and set your config vars as environment variables in the panel.
More in /software/dokploy.
3. Dokku
Best for: keeping the exact Heroku muscle memory, git push to deploy, on a 1 GB VPS.
Dokku is the oldest idea on this list, and the most Heroku-like in spirit. Its docs describe building apps "on the fly from a git push via either Dockerfile or by auto-detecting the language with Buildpacks". Web processes are routed through nginx, and background processes and cron tasks are managed too. There's no dashboard to learn. You run commands on the server over SSH.
- Needs: Ubuntu 22.04/24.04/26.04 or Debian 11+ (x64), amd64 or arm64, 1 GB RAM or swap (Docker scheduler); 2 GB per node with K3s
- Licence: MIT · Latest: v0.38.31 (2026-09-27)
- Managed option: none
- Heroku migration note: buildpack auto-detection means many Heroku apps deploy with no Dockerfile at all. Check your specific buildpack in Dokku's docs first.
4. CapRover
Best for: a quick start on a server that already has Docker, with room to grow into a Swarm cluster.
CapRover installs with a single docker run command and gives you a web dashboard on port 3000. It needs Docker 25 or newer (not the snap package), is tested on Ubuntu 24.04, and publishes images for amd64 and arm64. It expects a wildcard DNS record for app subdomains. Without a domain it runs, but with no HTTPS.
- Needs: Docker 25+; the docs warn that 512 MB of RAM "might not be enough" for builds and suggest adding swap
- Licence: Apache-2.0 with an appendix restricting changes to its paid features · Latest: v1.15.4 (2026-08-30)
- Managed option: none listed in the getting-started docs
- Heroku migration note: CapRover uses its own
captain-definitionfile. Expect to write one, or a Dockerfile, per app.
Quick comparison
| Dashboard | Min RAM (official) | Buildpacks | Licence | |
|---|---|---|---|---|
| Coolify | Yes | 2 GB | Nixpacks / Railpack | Apache-2.0 |
| Dokploy | Yes | 2 GB | Heroku, Paketo, Nixpacks | Apache-2.0 + source-available enterprise code |
| Dokku | CLI | 1 GB (or swap) | Buildpack auto-detection | MIT |
| CapRover | Yes | Not stated (512 MB "might not be enough") | Not listed in the getting-started docs | Apache-2.0 + appendix |
For a deeper feature table, see /best/self-hosted-paas. The two dashboard options go head to head at /compare/coolify-vs-dokploy.
A migration checklist
- Inventory your add-ons. Heroku Postgres, Redis, scheduler, logging. Each one becomes a container, a cron job or a separate service you choose.
- Export config vars.
heroku configoutput maps directly to environment variables in all four tools. - Dump the database and restore it into the new PostgreSQL container. Test the restore before you switch DNS.
- Pick a server with headroom. Builds use more RAM than the running app. Start at 2–4 GB for a dashboard tool.
- Put DNS behind a low TTL a day before the switch, so you can roll back quickly.
- Set up outside monitoring, for example Uptime Kuma on a different box, since Heroku's platform alerts don't come with you.
To choose a server, the VPS shortlist with published RAM, prices and regions is at /best/vps-for-self-hosting.
Built from Heroku's pricing page and each project's documentation and GitHub data. No hands-on testing is claimed.
Sources (12)ShowHide
- Heroku pricing · accessed 2026-09-29
- Coolify docs: What is Coolify · accessed 2026-09-29
- Coolify docs: Start with Self-hosted · accessed 2026-09-29
- Coolify pricing · accessed 2026-09-29
- Hetzner Docs: Coolify app image · accessed 2026-09-29
- Dokploy docs: Installation · accessed 2026-09-29
- Dokploy docs: Features · accessed 2026-09-29
- Dokku docs: Getting Started / Installation · accessed 2026-09-29
- CapRover docs: Getting Started · accessed 2026-09-29
- Hetzner website price API: CX23 (CLOUD_132+CLOUD_21) · accessed 2026-09-29
- Hetzner Cloud: Cost-Optimized plans · accessed 2026-09-29
- GitHub API: latest releases and licences (coolify, dokploy, dokku, caprover) · accessed 2026-09-29