Skip to content

Instantly share code, notes, and snippets.

@ptman
Last active November 12, 2025 14:58
Show Gist options
  • Select an option

  • Save ptman/1b9e3a992e6c8aeecc86b5f1fd1c5f61 to your computer and use it in GitHub Desktop.

Select an option

Save ptman/1b9e3a992e6c8aeecc86b5f1fd1c5f61 to your computer and use it in GitHub Desktop.
Heroku alternatives
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
@ptman
Copy link
Author

ptman commented Nov 1, 2025

@gregsadetsky Thanks. Should've done something with PRs instead of a gist.

@gregsadetsky
Copy link

gregsadetsky commented Nov 1, 2025

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