| Tool / Project | Type / Architecture | UI / Dashboard | CLI / API | Multi‑node / Clustering | Auto TLS / SSL / ACME | Zero‑downtime / Rolling Deploy | Preview / PR Environments | Team / Permissions | Volume / Backup Support | Open Source / License | Heroku‑style Compatibility | Pros / Strengths | Cons / Caveats / Weaknesses |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dokku | Single‑server (extensions for multi) | Minimal (no central UI, though plugins exist) | CLI, plugin APIs | Via community / plugin / custom setups | Yes (Let’s Encrypt plugin) | Via Docker techniques / plugin | Limited, requires extra setup | Basic (single admin; community plugins) | Plugin / manual (e.g. volume backups) | MIT (fully open source) | Good: git push, buildpack style, plugins add DB, etc. | Very stable, mature, lots of community extensions | Scaling / multi‑node is manual; UI is weak; managing many apps / teams is harder |
| Dokploy | Multi‑node / cluster (Docker Swarm) | Yes (built‑in UI) | CLI + API | Yes, built in (Swarm mode) | Yes (ACME / Let’s Encrypt) | Yes (proxy switching) | Yes (Git integration / preview support) | Yes (orgs, roles) | Yes (DB / backup features) | “Open source / source‑available” with extra licensing terms. :contentReference[oaicite:0]{index=0} | High: supports buildpacks, Docker Compose, git triggers | Very feature‑rich; strong in multi‑team, multi‑server setups | Licensing ambiguity / “open wash” debates :contentReference[oaicite:1]{index=1}; younger project; some stability / docs pain points :contentReference[oaicite:2]{index=2} |
| CapRover | Multi‑server (Docker Swarm) | Yes | CLI (and limited API) | Yes | Yes | Yes (via container updates / routing) | Limited / with setup | Basic (team access is limited) | Some backup support via plugins / scripts | Apache‑2.0, open source :contentReference[oaicite:3]{index=3} | Moderate: docker‑centric vs pure buildpack, but many use it like Heroku | Large user base, stable, many “one‑click apps” templates | UI / feature set is more basic than newer rivals; scaling / clustering sometimes awkward :contentReference[oaicite:4]{index=4} |
| Coolify | Multi‑server / cluster (Docker engines or swarm) | Yes | API + (partial) CLI | Yes (experimental) | Yes | Yes (via container / network switching) | Yes (preview support) | Yes (team / role support) | Some backup support (config / DB) | Apache‑2.0, open source :contentReference[oaicite:5]{index=5} | Good: supports docker, git, UI for app setup | Very feature rich; updates actively; good UI / templates | Some users report fragility, documentation gaps, memory usage, UI quirks :contentReference[oaicite:6]{index=6} |
| Kamal | Deployment tool / PaaS helper (push model) | Minimal / optional UI | CLI | Supports multiple hosts (you manage) | Yes (proxy / TLS support) | Yes (via proxy swap) | ? | Minimal | You manage backups externally | Open source (MIT / permissive) (project on GitHub) | Moderate: better for deploy orchestration than full PaaS | Lightweight, flexible, fits with existing infra | Doesn’t provide full PaaS (you still manage infrastructure, monitoring, etc.) |
| Canine (canine.sh) | Kubernetes‑based PaaS / tool | Yes (dashboard) | CLI / API | Native (k8s) | Via cert / ingress management | Yes (k8s strategy) | Possible via workflows | Via k8s RBAC | Depends on k8s storage / snapshot support | Open source / code available (Kubernetes backing) | Good, for users comfortable with k8s abstraction | Strong if you already use Kubernetes | Complexity of k8s infrastructure; steep learning curve |
| OpenRun | (Less documented / niche) | ? | ? | ? | ? | ? | ? | ? | ? | Unknown / partially open | Unknown / approximates Heroku in some claims | Could be promising for niche use | Lack of maturity, docs, community |
| Exoframe | Single / multi host (Docker) | Minimal / small UI | CLI / API | With federation / multiple hosts | LetsEncrypt support | Yes (docker rolling) | Limited / custom | Basic | Minimal (volumes manual) | MIT (open source) | Good: git / CLI + Docker model | Lightweight, simple, easy to embed in pipeline | Lacks big PaaS features (teams, large scale, DB management) |
| Piku | Single server (Docker) | Minimal (CLI) | CLI / some webhooks | Limited (requires manual) | Via plugins / integrations | Yes (docker) | Very minimal | Minimal | Manual / custom | MIT (open source) | Good: git push, buildpack style | Very simple, low surface area | Lacks clustering, UI, advanced features |
| Tsuru | Distributed / multi‑host (Docker / k8s support) | Yes | CLI / API | Yes | Yes | Yes | More advanced | Yes (team, roles) | Yes | BSD-3-Clause, open source :contentReference[oaicite:7]{index=7} | Good: supports many languages, buildpacks, Git hooks, etc. | Mature, solid architecture, proven in production | More complex to setup and operate; learning curve higher |
| Porter | Kubernetes orchestration / PaaS tool | Yes | CLI / API | Yes (k8s) | Yes | Yes | Likely (via k8s) | Yes | Via k8s volume snapshot / storage | Open source (MIT + optional EE) :contentReference[oaicite:8]{index=8} | Good: because it's k8s-native, you can approximate a Heroku workflow | Powerful with k8s backing | Requires k8s knowledge; not pure “Heroku clone” (you still manage cluster) |
| Disco | Multi‑node / cluster (Docker Swarm) | Yes (web-based, GitHub login) | CLI + API | Yes, built in (Swarm mode) | Yes (via Caddy / automatic HTTPS) | Yes (zero-downtime via Swarm service updates) | Manual (can create branch-specific projects, not automatic) | Basic (team invite with API keys, no granular roles) | Manual (volumes supported, no built-in backup) | MIT (fully open source) | High: git push, Docker-based, disco.json config, supports buildpacks | Simple setup (one command init), lightweight (runs on Raspberry Pi), automatic HTTPS via Caddy, clean architecture | UI is external (not self-hosted); limited node placement control; no automatic PR environments; basic team features; younger project |
Last active
November 12, 2025 14:58
-
-
Save ptman/1b9e3a992e6c8aeecc86b5f1fd1c5f61 to your computer and use it in GitHub Desktop.
Heroku alternatives
Author
@gregsadetsky Thanks. Should've done something with PRs instead of a gist.
Thank you!
It's not too late to start your own awesome-paas repo and copy this table over :-) Could be great since most "awesome" lists don't have as many (if any) comparison criteria. That'd make your table quite useful! Cheers
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
heya, thanks for making this -- would you be open to adding Disco, another open source self hosting PaaS? I saw your comment on the Hacker News thread and meant to reach out
let me know what you think! cheers & thanks