CapRover

Scalable PaaS built on Docker Swarm and Nginx

Self-Hosting Platforms (PaaS) ★ 15.2k stars Easy setup Apache-2.0

CapRover is a self-hosted platform-as-a-service that automates app deployment using Docker Swarm, Nginx, and a one-click app marketplace. It handles SSL, scaling, and load balancing out of the box.

Key features

  • One-click app marketplace
  • Automatic SSL via Let's Encrypt
  • Docker Swarm scaling
  • CLI and web dashboard

Pros & cons

Strengths

  • One-click app marketplace
  • Automatic SSL
  • Beginner friendly

Trade-offs

  • Tied to Docker Swarm
  • Basic monitoring only

CapRover replaces

Last reviewed Aug 26, 2026 · 727 words

CapRover turns a 1 GB VPS into a Heroku-style platform in about 10 minutes, and the fee is that everything you deploy afterwards lives inside Docker Swarm. For a solo developer with a handful of side projects that is an excellent trade: git push, get a URL with a certificate, done. For anyone who expects to grow into Kubernetes, or who wants the active development pace of the newer platforms, the Swarm foundation is the thing to weigh before you install. It is Apache-2.0, written in TypeScript, and sits at about 15,100 GitHub stars.

The install is one command and one DNS record

Point a wildcard record at the server first, because CapRover routes every app by subdomain. An A record for *.apps.example.com and one for captain.apps.example.com is enough. Then, on a fresh Ubuntu or Debian host with Docker installed:

docker run -d -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

It initialises Swarm on its own. Open port 3000, log in with the default password captain42, change it immediately, set the root domain, and enable HTTPS from the dashboard; Let's Encrypt certificates are issued per app from then on with a checkbox. The CLI does the same setup from your laptop with npm install -g caprover followed by caprover serversetup. The documented firewall list is longer than three ports because Swarm needs 2377, 7946 and 4789 for cluster traffic and CapRover uses 996 for its registry, so copy the list from the docs rather than guessing.

Deploying is a captain-definition file or a template

Each app needs a captain-definition file at the repository root. The simplest points at a Dockerfile:

{
  "schemaVersion": 2,
  "dockerfilePath": "./Dockerfile"
}

Then caprover deploy from the project directory builds and ships it. Alternatives are a tarball upload, a GitHub or GitLab webhook so pushes deploy automatically, or an image name for something already built. Environment variables, persistent volumes, port mappings and instance counts are all set per app in the dashboard, and the Nginx configuration for each app is editable if you need a custom header or a larger upload limit.

The one-click marketplace is where beginners win

The catalogue contains well over 100 templates: PostgreSQL, MySQL, Redis, MinIO, WordPress, Gitea, n8n, Uptime Kuma and most of what a small stack needs. Each asks a few questions, creates the app with a persistent volume, and exposes it internally to your other apps by service name. This is the "beginner friendly" label earned honestly. Someone who has never written a Compose file can have a database-backed web app on a domain with TLS in an afternoon, and the dashboard's per-app logs and restart buttons cover day-two operations for small deployments.

Swarm is the foundation, and the ceiling

Docker Swarm works, and CapRover uses it well, but it is a niche technology in 2026 with far fewer people writing about it than Compose or Kubernetes. Two practical limits follow. Apps with persistent data are pinned to one instance, so horizontal scaling only applies to stateless services. Multi-node clusters are supported, but the moment you add a second node you are debugging Swarm networking and volume placement yourself. Monitoring is basic: a NetData one-click app and per-app logs, not metrics and alerting. Development has also slowed relative to Coolify, which builds on plain Compose with Git integration, and Dokploy, which offers a similar dashboard with a more active release cadence. Stable and quiet is a fair description of CapRover now; it is not abandoned, but the momentum in the dev platforms category moved elsewhere.

What I'd do

If I had a 2 GB VPS, five side projects and no interest in infrastructure, CapRover today: it is the most boring, least surprising way to get Heroku's workflow on your own server, and boring is a virtue for something that hosts your projects for years. For a fresh 2026 build where I expect the stack to grow or want Compose files I can move elsewhere, I would start with Coolify instead. Either way, keep /captain in your backups, because that directory is the whole platform's state.

Compare CapRover

5 head-to-head comparisons.

Similar self-hosting platforms (paas) apps