Coolify vs CapRover vs Dokploy
TL;DR
The self-hosted PaaS space has matured significantly in 2026. Coolify v4 leads with ~44K stars, the most polished UI, 280+ one-click templates, multi-server support, and active development. CapRover (~14K stars) is battle-tested with a large community. Dokploy is the new entrant (~12K stars, 2024) with a clean modern UI and growing fast. All three replace Heroku/Railway/Render for deploying web apps without managing individual Docker containers.
Key Takeaways
- Coolify: Apache 2.0, ~44K stars — most features, best UI, multi-server, 280+ templates, Kubernetes support
- CapRover: Apache 2.0, ~14K stars — mature, CLI-driven, largest template library (one-click-apps)
- Dokploy: Apache 2.0, ~12K stars — newest, fastest-growing, clean UI, Traefik-based routing
- All three: Free self-hosted, Docker Compose support, HTTPS auto, custom domains, metrics
- Server requirements: 1GB RAM minimum for any (2GB recommended)
- Migration from Heroku: Coolify has best compatibility with Heroku-style workflows
Feature Comparison
| Feature | Coolify v4 | CapRover | Dokploy |
|---|---|---|---|
| License | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| GitHub Stars | ~44K | ~14K | ~12K |
| First release | 2021 | 2018 | 2024 |
| UI | Modern (React) | Bootstrap | Modern (React/Next.js) |
| Multi-server | ✅ | ✅ (Netdata nodes) | ✅ |
| Docker Compose | ✅ | ✅ | ✅ |
| Nixpacks/Buildpacks | ✅ (Nixpacks) | ❌ | ❌ |
| Dockerfile | ✅ | ✅ | ✅ |
| Git integration | ✅ (GitHub/GitLab/Bitbucket) | ✅ | ✅ (GitHub/GitLab) |
| One-click templates | 280+ | 100+ | 100+ |
| Database management | ✅ | ✅ | ✅ |
| Backup (S3) | ✅ | ✅ | ✅ |
| CLI | Limited | ✅ (caprover CLI) | ✅ (dokploy CLI) |
| Kubernetes | ✅ (basic) | ❌ | ❌ |
| Real-time logs | ✅ | ✅ | ✅ |
| Preview environments | ✅ | ❌ | ✅ |
| RAM (idle) | ~400MB | ~200MB | ~300MB |
Coolify v4: The Current Leader
Coolify v4 is a complete rewrite launched in 2024 with PHP + Livewire replacing the earlier Node.js codebase. It's become the de facto self-hosted Heroku for developers who want maximum features.
Install Coolify
# Official one-line install (Ubuntu/Debian):
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Or via Docker Compose:
# docker-compose.yml — minimal self-hosted Coolify
version: '3.8'
services:
coolify:
image: ghcr.io/coollabsio/coolify:latest
volumes:
- /data/coolify/source/.env:/var/www/html/.env
- /var/run/docker.sock:/var/run/docker.sock
- /data/coolify:/data/coolify
ports:
- "8000:8000"
- "6001:6001" # Soketi (WebSocket)
environment:
LARAVEL_SANCTUM_STATEFUL_DOMAINS: localhost
restart: unless-stopped
Visit http://your-server:8000 → complete setup wizard.
Deploying an App
- New Resource → Application → Public/Private Git repository
- Enter repo URL:
https://github.com/username/my-nextjs-app - Coolify auto-detects: Next.js → uses Nixpacks build pack
- Set environment variables
- Click Deploy
Coolify handles:
- Building (Nixpacks, Dockerfile, or Docker Compose)
- Running via Docker
- SSL via Traefik (Let's Encrypt)
- Custom domain routing
- Rolling deploys (zero downtime)
One-Click Services
Install databases and services with one click:
Resources → Add New Resource → Service
→ PostgreSQL 16, Redis, MongoDB, MinIO, Nextcloud, n8n, Plausible, Gitea, ...
280+ templates including every major OSS app.
Preview Environments
For pull requests, Coolify can auto-deploy a preview environment:
- Application → Configuration → Previews
- Enable "Build PR Previews"
- Each PR gets a unique URL:
pr-42.yourdomain.com
This requires GitHub App integration.
CapRover: Battle-Tested and CLI-First
CapRover was one of the first self-hosted PaaS platforms and has the most mature CLI and captain-definition file format.
Install CapRover
# Single node install:
docker run -p 80:80 -p 443:443 -p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /captain:/captain \
caprover/caprover
# Visit: https://captain.yourdomain.com:3000
# Default password: captain42
Deploy with CLI
npm install -g caprover
# Login:
caprover login
# Server URL: https://captain.yourdomain.com
# Password: your-password
# Deploy from current directory:
caprover deploy
CapRover uses captain-definition files:
{
"schemaVersion": 2,
"dockerfileLines": [
"FROM node:20-alpine",
"WORKDIR /app",
"COPY package*.json .",
"RUN npm ci --production",
"COPY . .",
"CMD [\"node\", \"server.js\"]"
]
}
Or reference a Dockerfile:
{
"schemaVersion": 2,
"dockerfilePath": "./Dockerfile"
}
CapRover One-Click Apps
Captain → Apps → One-Click Apps → Browse 100+ apps
Categories: databases, CMS, DevOps, productivity, etc.
Dokploy: The Modern Newcomer
Dokploy launched in 2024 and has grown quickly with a clean, modern UI. Built with Next.js, it feels more like a modern SaaS product than a self-hosted tool.
Install Dokploy
# One-line install:
curl -sSL https://dokploy.com/install.sh | sh
Visit http://your-server:3000 → create admin account.
Dokploy Architecture
Dokploy uses Traefik for routing (same as Coolify) and supports:
- Applications: Git-based deploys with Dockerfile or Compose
- Compose: Direct Docker Compose file deployment
- Services: Managed databases (Postgres, MySQL, MongoDB, Redis, MariaDB)
- Monitoring: Built-in metrics (CPU, RAM, disk, network per service)
Deploying Apps in Dokploy
- Projects → Create Project (logical grouping)
- Add Service → Application
- Select source: GitHub/GitLab/Bitbucket or Docker image
- Set branch, build command, start command
- Configure domain + HTTPS
- Deploy
Dokploy vs Coolify Decision
Choose Dokploy if:
- You want the newest, most actively developing PaaS
- You prefer a modern React/Next.js admin UI
- Your team finds Coolify's PHP/Livewire UI less intuitive
- You want Traefik-based routing
Choose Coolify if:
- You need Nixpacks (auto-detect buildpacks)
- You want 280+ one-click templates
- Preview environments are important
- You're migrating from Heroku-style workflows
Deployment Examples
Deploy a Next.js App (Coolify)
# Coolify detects this automatically via Nixpacks
# No configuration needed for standard Next.js apps
# Custom environment variables in Coolify UI:
DATABASE_URL=postgresql://user:pass@localhost/myapp
NEXTAUTH_SECRET=your-secret
NEXTAUTH_URL=https://app.yourdomain.com
Deploy a Docker Compose App (Any Platform)
All three platforms support deploying Docker Compose files directly:
# docker-compose.app.yml — deploy this to CapRover/Coolify/Dokploy
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
api:
build: ./api
environment:
DATABASE_URL: "${DATABASE_URL}"
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
volumes:
- pg_data:/var/lib/postgresql/data
volumes:
pg_data:
Decision Guide
Choose Coolify if:
→ You want the most features and polish
→ Preview environments are important
→ You need Nixpacks (auto-detect Node.js, Python, Go, etc.)
→ You're migrating from Heroku or Railway
→ Multi-server management in one dashboard
Choose CapRover if:
→ Your team is already familiar with it
→ CLI-first workflow is preferred
→ You want the most battle-tested platform
→ Simple, lower-resource-usage admin
Choose Dokploy if:
→ You want the most modern UI
→ Just getting started (newest features, active development)
→ You prefer Traefik routing over Nginx
→ You like the clean project-based organization
Skip all three if:
→ You're managing 1-2 simple apps (raw Docker Compose is fine)
→ You need Kubernetes at scale (use K3s + ArgoCD instead)
→ Your team has existing Docker/Kubernetes expertise
Compare all self-hosted PaaS options at OSSAlt.com/alternatives/heroku.