Before Coolify and Dokploy entered the scene, CapRover was already quietly powering thousands of self-hosted deployments. It is one of the oldest and most mature open-source PaaS solutions, built on Docker Swarm, and it remains a rock-solid choice for anyone who wants a free, self-hosted Heroku.
If you are looking for a proven, battle-tested platform to deploy your apps — CapRover deserves your attention.
Table of Contents
Open Table of Contents
What Is CapRover?
CapRover is an open-source PaaS (Platform as a Service) that automates app deployment and web server management. It uses Docker Swarm under the hood and provides a web GUI, CLI, and API for managing your applications, databases, and services.
The project was originally known as CaptainDuckDuck and was renamed to CapRover in 2019.
Official page: https://caprover.com
GitHub: https://github.com/caprover/caprover
Key Features
- One-click apps — 100+ pre-configured templates (WordPress, Ghost, MongoDB, etc.).
- Automatic SSL via Let’s Encrypt.
- Docker Swarm clustering — scale across multiple servers.
- Custom Dockerfile support — deploy any containerized app.
- Built-in Nginx — automatic reverse proxy and load balancing.
- Web hooks — automatic deployments from CI/CD pipelines.
- CLI tool —
caprovercommand for deployment automation. - Free and open-source — no licensing fees, ever.
- Simple UI — straightforward web dashboard.
Getting Started — How to Install
Prerequisites
- A Linux server (Ubuntu 20.04+ recommended) with at least 1 GB RAM.
- A domain name with a wildcard DNS record pointing to your server.
- Docker installed (CapRover can install it for you).
Step 1: Set Up DNS
Point a wildcard DNS record to your server:
*.captain.yourdomain.com → YOUR_SERVER_IP
This allows CapRover to create subdomains for each app automatically.
Step 2: Install CapRover
# Install Docker (if not already installed)
curl -fsSL https://get.docker.com | sh
# Install CapRover
docker run -p 80:80 -p 443:443 -p 3000:3000 \
-e ACCEPTED_TERMS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /captain:/captain \
caprover/caprover
Step 3: Initial Setup
# Install the CLI
npm install -g caprover
# Set up your CapRover instance
caprover serversetup
# This wizard will:
# 1. Connect to your server
# 2. Set the root domain
# 3. Enable SSL for the dashboard
# 4. Set the admin password
Step 4: Access the Dashboard
Open https://captain.yourdomain.com and log in with your password.
Deploying an Application
Option 1: One-Click Apps
CapRover has over 100 one-click app templates:
- Go to Apps → One-Click Apps/Databases.
- Browse the marketplace (WordPress, PostgreSQL, Redis, Minio, Gitea, etc.).
- Click Deploy and fill in the configuration.
Option 2: Deploy from Git (CLI)
# Navigate to your project
cd my-app
# Create a Captain Definition file
echo '{ "schemaVersion": 2, "dockerfileLines": ["FROM node:20-alpine", "WORKDIR /app", "COPY . .", "RUN npm install", "EXPOSE 3000", "CMD [\"node\", \"index.js\"]"] }' > captain-definition
# Deploy
caprover deploy -a my-app
Option 3: Deploy via Webhook
Set up a webhook URL in your CI/CD pipeline:
# The webhook URL format:
POST https://captain.yourdomain.com/api/v2/user/apps/webhooks/triggerbuild?namespace=captain&token=YOUR_TOKEN
# From GitHub Actions:
- name: Deploy to CapRover
run: |
curl -X POST \
"https://captain.yourdomain.com/api/v2/user/apps/webhooks/triggerbuild?namespace=captain&token=${{ secrets.CAPROVER_TOKEN }}"
Option 4: Dockerfile Deploy
Create a captain-definition file in your project root:
{
"schemaVersion": 2,
"dockerfilePath": "./Dockerfile"
}
Then deploy via CLI:
caprover deploy
Adoption Level (2025–2026)
CapRover is one of the most established open-source PaaS solutions:
| Metric | Value (as of early 2026) |
|---|---|
| GitHub Stars | ~13,000+ |
| First release | 2017 (as CaptainDuckDuck) |
| One-click app templates | 100+ |
| Docker Swarm | Native support |
| Community | Active GitHub discussions, Stack Overflow |
Why CapRover endures:
- 8+ years of stability — rare for an open-source PaaS.
- 100+ one-click apps — the largest template library in the self-hosted PaaS space.
- Docker Swarm native — built-in clustering without Kubernetes complexity.
- Minimal resource footprint — runs on 1 GB RAM servers.
- Extensive documentation — well-written guides and community resources.
Where CapRover falls short:
- The UI feels dated compared to Coolify and Dokploy (functional but not modern).
- Development pace has slowed compared to newer alternatives.
- No built-in Nixpacks support (requires Dockerfiles or captain-definition files).
- No built-in database backup automation (requires manual setup or third-party tools).
- Docker Swarm is considered legacy by some — Kubernetes is the industry standard.
Best Examples for Implementing
1. WordPress + MySQL (One-Click)
From the CapRover dashboard:
- Go to One-Click Apps.
- Select WordPress.
- Configure the MySQL password and domain.
- Deploy — WordPress is running in minutes.
2. Custom Node.js API
// captain-definition
{
"schemaVersion": 2,
"dockerfileLines": [
"FROM node:20-alpine",
"WORKDIR /app",
"COPY package*.json ./",
"RUN npm ci --production",
"COPY . .",
"EXPOSE 3000",
"CMD [\"node\", \"server.js\"]"
]
}
caprover deploy -a my-api
3. Multi-Server Cluster with Docker Swarm
# On the main server (manager)
docker swarm init --advertise-addr YOUR_MANAGER_IP
# On worker servers
docker swarm join --token <token> YOUR_MANAGER_IP:2377
# CapRover automatically distributes apps across the cluster
4. CI/CD Pipeline with GitHub Actions
# .github/workflows/deploy.yml
name: Deploy to CapRover
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: caprover/deploy-from-github@v1.1.2
with:
server: https://captain.yourdomain.com
app: my-api
token: ${{ secrets.CAPROVER_APP_TOKEN }}
Cost Analysis
CapRover is completely free — no premium tiers, no enterprise licenses.
Server Costs
| Provider | 1 vCPU / 1 GB | 2 vCPU / 4 GB | 4 vCPU / 8 GB |
|---|---|---|---|
| Hetzner | €3.50/month | €4.50/month | €8.50/month |
| DigitalOcean | $6/month | $12/month | $24/month |
| Vultr | $5/month | $12/month | $24/month |
| OVH | €3.50/month | €6/month | €12/month |
Real-World Estimate for a Startup
A full stack on a Hetzner CX22 (2 vCPU / 4 GB):
- Server: €4.50/month (~$5)
- Domain: ~$1/month
- Manual backup to S3: ~$0.50/month
Total: ~$6.50/month — for a complete deployment platform.
CapRover vs. Managed PaaS Cost Comparison
Running a typical SaaS (API + DB + Redis + Worker):
| Platform | Monthly Cost |
|---|---|
| CapRover (Hetzner) | ~$10 |
| Railway | ~$20–30 |
| Render | ~$28–35 |
| Heroku | ~$50–75 |
| AWS (ECS + RDS) | ~$100+ |
Verdict
CapRover is the reliable workhorse of the self-hosted PaaS world. It may not have the flashiest UI or the newest features, but it has eight years of production reliability behind it. For teams that want a proven, stable platform with the largest one-click app library, CapRover is a safe and solid choice.
TL;DR: CapRover is the “Toyota Corolla” of self-hosted PaaS — not the most exciting, but incredibly reliable, well-documented, and free. If you want a battle-tested platform that just works, CapRover is your pick.
Follow my blog for more reviews of modern deployment platforms for startups.