CapRover (Self-Host PaaS)
Open-source PaaS on Docker Swarm with a CLI, one-click apps marketplace, Netlify-like deploys, and managed databases.
Why
CapRover runs on Docker Swarm (single or multi-node), giving you a PaaS with cluster scaling, a one-click app marketplace (WordPress, Metabase, etc.), and 'caprover deploy' from CLI. It auto-provisions TLS via Let's Encrypt and supports Netlify-style tarball deploys.
When
Use CapRover when you want Docker Swarm-based scaling and the one-click marketplace. Compare with Coolify/Dokploy (newer, Compose-native); CapRover is older and stable.
Choose based on whether you prefer Swarm (CapRover) or Compose (Coolify/Dokploy).
How
Example
Common Problems
- ⚠Root domain wildcard DNS required — CapRover needs *.rootdomain to point to the server; add a wildcard A record or use the CLI's per-app domain feature.
- ⚠Swarm mode not initialized — the installer should set it up; if not, run 'docker swarm init' before 'caprover serversetup'.
- ⚠Configuration drift between environments — use infrastructure-as-code (Terraform/Pulumi) to keep dev/staging/prod identical
Best Practices
- ✓Use the CLI (caprover deploy) for deploys so they are scriptable in CI, rather than uploading via the dashboard.
- ✓Pin app image tags and database versions in the one-click template to avoid surprise upgrades on redeploy.
- ✓For multi-node, add workers via 'docker swarm join' and label them so CapRover places apps on the right nodes (e.g., DB on labeled nodes with volumes).
FAQ
What is CapRover (Self-Host PaaS) and what problem does it solve?
Open-source PaaS on Docker Swarm with a CLI, one-click apps marketplace, Netlify-like deploys, and managed databases. It lets developers deploy, store, and scale without self-managing infrastructure — a core reference for cloud service selection.
How do I get started with CapRover (Self-Host PaaS) in 5 minutes?
Two steps to run it: (1) Run the CapRover installer on a fresh Ubuntu VPS.; (2) caprover serversetup to initialize.. Validate on the free tier first, then wire into production.
What is the #1 pitfall with CapRover (Self-Host PaaS)?
The most frequent issue is: Root domain wildcard DNS required — CapRover needs *.rootdomain to point to the server; add a wildcard A record or use the CLI's per-app domain feature.. Run a pre-launch checklist item by item, and add policy/config scanning in CI.
What are the best practices for CapRover (Self-Host PaaS)?
Best practices for CapRover (Self-Host PaaS) include: Use the CLI (caprover deploy) for deploys so they are scriptable in CI, rather than uploading via the dashboard.; Pin app image tags and database versions in the one-click template to avoid surprise upgrades on redeploy.; For multi-node, add workers via 'docker swarm join' and label them so CapRover places apps on the right nodes (e.g., DB on labeled nodes with volumes).. The first one — "Use the CLI (caprover deploy) for deploys so they are scriptable in CI, rather than uploading via the dashboard." — should be a team default baked into your IaC templates.
How do I control cost and avoid bill surprises with CapRover (Self-Host PaaS)?
Three ways to prevent overspend: (1) tag every resource with env/team and enable billing alarms; (2) set budget thresholds to trigger Slack/email alerts; (3) review idle resources in Cost Explorer regularly and clean them up. Most CapRover (Self-Host PaaS) options offer a free tier — validate within free quota before scaling.