DEV Community

Elder Fernandes
Elder Fernandes

Posted on Originally published at selfhoststack-8z4.pages.dev

Self-Hosted PaaS: Coolify vs Dokku vs CapRover vs Kamal for 2026

Self-Hosted PaaS: Coolify vs Dokku vs CapRover vs Kamal for 2026

Modern cloud PaaS platforms like Heroku, Render, Fly.io, and Vercel offer unmatched developer ergonomics: push code to GitHub and get an automated build with zero downtime, instant SSL, and preview environments.

However, as soon as you add Postgres databases, background workers, Redis caches, and persistent disk volumes, the monthly bill explodes.

Self-hosting your own PaaS platform on a single $5–$20/mo VPS (Hetzner, DigitalOcean, Vultr) gives you:

  • Instant Git-Push Deploys: Automatic webhooks on git push main.
  • Automated SSL Certificates: Let's Encrypt certificates managed automatically via Traefik or Caddy.
  • One-Click Databases: Provision Postgres, MySQL, Redis, MongoDB, and ClickHouse instances without per-GB fees.
  • Predictable Fixed Pricing: Run 15+ full-stack apps and background workers on 8GB RAM without per-seat or per-app charges.

Here is a 2026 production breakdown of the 4 major open-source PaaS engines: Coolify, Dokku, CapRover, and Kamal.


1. Feature Breakdown & Architecture

Engine Primary Interface Architecture Best For Multi-Server Support
Coolify Modern React Web UI Docker Engine + Traefik Teams wanting a polished UI like Vercel/Render Yes (via SSH agents)
Dokku CLI & Git Hook (git push dokku) Docker + Heroku Buildpacks / Nixpacks Solo devs & minimalists who live in terminal Single host (native)
CapRover Lightweight Web UI Docker Swarm + Nginx Budget VPS setups & microservice clusters Yes (Swarm cluster)
Kamal 2 CLI Deploy Tool Plain Docker (Zero daemon) Rails, Node & Go apps deployed directly Yes (Multi-host)

2. Option A: Coolify (Modern Self-Hosted Vercel / Heroku)

Coolify is currently the most active and user-friendly open-source PaaS. It supports GitHub/GitLab integrations, automatic PR preview environments, and 50+ one-click open-source templates.

Installation (1-Line Command on Ubuntu 22.04 / 24.04):

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Once installed, navigate to http://YOUR_SERVER_IP:8000 to register the admin account, connect your GitHub token, and configure custom domains with automatic Traefik SSL certificates.


3. Option B: Dokku (The Original CLI-Driven Heroku Alternative)

If you love the pure Heroku workflow (git push heroku master) without a web UI daemon consuming CPU/RAM:

Installation:

wget -NP . https://dokku.com/bootstrap.sh
sudo DOKKU_TAG=v0.34.8 bash bootstrap.sh
Enter fullscreen mode Exit fullscreen mode

Adding SSH Key & Deploying an App:

# On your VPS
cat ~/.ssh/id_ed25519.pub | sudo dokku ssh-keys:add admin

# Create App and Postgres Database
dokku apps:create api-service
dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
dokku postgres:create api-db
dokku postgres:link api-db api-service

# Setup Domain & Auto Let's Encrypt SSL
dokku domains:set api-service api.yourdomain.com
dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git letsencrypt
dokku letsencrypt:enable api-service
Enter fullscreen mode Exit fullscreen mode

Deploy from your local machine:

git remote add dokku dokku@your-server-ip:api-service
git push dokku main
Enter fullscreen mode Exit fullscreen mode

4. Hardware Sizing & Recommended VPS Specs

Scale Apps & Databases Recommended VPS Monthly Cost
Hobby / Side Projects 1-3 Next.js / Node apps + SQLite / Redis Hetzner CX22 (2 vCPU, 4GB RAM) ~€3.79 / mo
Early Stage Startup 5-10 Apps + Postgres + Redis + Workers Hetzner CPX31 (4 vCPU, 8GB RAM) ~€13.50 / mo
Growth Workload 20+ Microservices + CI Runners + DBs Hetzner CCX23 (4 Dedicated vCPU, 16GB RAM) ~€34.00 / mo

5. Production Hardening & Backup Strategy

  1. Firewall (UFW): Restrict SSH to key-based auth only and close all internal ports (5432, 6379, 8000) behind Traefik/Caddy.
  2. Automated Database Dumps: Schedule automated pg_dump jobs pushing encrypted archives to S3 / Garage / Backblaze B2.
  3. Log Rotation: Configure Docker daemon /etc/docker/daemon.json with max-size: "50m" and max-file: "5" to prevent disk overflow.

Find curated PaaS blueprints and cost calculators on SelfHostStack.

For production Docker Compose templates, zero-trust guides, and automated backup scripts, download the Self-Hosted Starter Stack Pack ($29).

Top comments (0)