Self-Host PaaS Tools
Coolify, Kamal, Dokku — Heroku-on-your-server tooling.
Pairs with the Self-Host PaaS approach.
UI-driven
- ★ Coolify — gorgeous web UI; supports Docker / Compose / Buildpacks; databases; backups to S3 / R2; GitHub auto-deploy. The default in 2026.
- CapRover — older Coolify-shape; less polished today.
- Easypanel — newer, freemium; clean UI.
- Dokploy — newer Coolify alternative; rising.
- Portainer — Docker / Swarm management UI; not strictly a PaaS.
- Cosmos Cloud — homelab-focused.
CLI-first
- ★ Kamal 2 (Basecamp) —
kamal deploy; builds image, pushes, ssh-deploys to many hosts. Most-loved CLI option in 2026. - Dokku —
git push dokku maindeploys; old-school, mature, Heroku-shape. - Mash (newer) — Kamal-shape.
- Ansible playbooks — DIY but very flexible.
"Heroku for end-users"
- YunoHost — install user-facing apps (Nextcloud, etc.) for friends + family; not a dev PaaS.
- CasaOS / Umbrel — homelab-focused user-friendly UIs.
- Runtipi — same niche.
Comparing the big two (Coolify vs. Kamal)
- Coolify: GUI, multi-app, multi-environment, databases, backups built-in. Best when one or two ops folks manage many apps for many devs.
- Kamal: CLI + YAML config, lean, no GUI to maintain. Best when devs deploy their own apps from a
Kamfile.ymlin repo.
What you typically pair with PaaS tools
- A managed Postgres (Neon / Crunchy / Railway) for production data.
- Cloudflare Tunnel to avoid opening ports.
- Tailscale for admin access.
- R2 / B2 for backups.
- Better Stack / Uptime Kuma for monitoring.
- A second VPS in a different region as cold standby.
Buildpacks
- paketo / Cloud Native Buildpacks — language-aware "no Dockerfile" builds. Both Coolify and Kamal support them.
- heroku/buildpacks/* — Heroku's Buildpacks; many languages.
- railway/nixpacks — Railway's Buildpack-shape.
Limits
- Single-region by default. Multi-region needs deliberate setup (Tailscale + a second Coolify, or move to Fly).
- Stateful failover is manual. Postgres on the same box → restore from backup if box dies.
- Compliance is on you. SOC 2 evidence collection is harder than with managed cloud.
Pick this if…
- Default UI-driven: Coolify on Hetzner.
- CLI-first, Rails-shaped: Kamal 2.
- Existing Heroku habits: Dokku.
- Friends/family apps: YunoHost.
- Homelab dashboard: CasaOS / Umbrel.
See also: Self-Host PaaS approach for full setup walkthrough.