Tooling

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.
  • Dokkugit push dokku main deploys; 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.yml in 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.

On this page