Skip to main content

Coolify vs CapRover vs Dokploy

·OSSAlt Team
coolifycaproverdokploypaasself-hostingdockerheroku2026

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

FeatureCoolify v4CapRoverDokploy
LicenseApache 2.0Apache 2.0Apache 2.0
GitHub Stars~44K~14K~12K
First release202120182024
UIModern (React)BootstrapModern (React/Next.js)
Multi-server✅ (Netdata nodes)
Docker Compose
Nixpacks/Buildpacks✅ (Nixpacks)
Dockerfile
Git integration✅ (GitHub/GitLab/Bitbucket)✅ (GitHub/GitLab)
One-click templates280+100+100+
Database management
Backup (S3)
CLILimited✅ (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

  1. New Resource → Application → Public/Private Git repository
  2. Enter repo URL: https://github.com/username/my-nextjs-app
  3. Coolify auto-detects: Next.js → uses Nixpacks build pack
  4. Set environment variables
  5. 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:

  1. Application → Configuration → Previews
  2. Enable "Build PR Previews"
  3. 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

  1. Projects → Create Project (logical grouping)
  2. Add Service → Application
  3. Select source: GitHub/GitLab/Bitbucket or Docker image
  4. Set branch, build command, start command
  5. Configure domain + HTTPS
  6. 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.

Comments