OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

CapRover

Self-hosted PaaS on Docker Swarm and nginx, with a web dashboard, CLI and one-click apps

Open source alternative to

Visit CapRoverGitHubDocumentation

Main features

  • Web dashboard and CLI for setup and deployments
  • Deploys from the CLI, Git webhooks, a tarball or a Docker image
  • Built-in templates for Node, PHP, Python and Ruby, or any Dockerfile
  • One-click apps for databases, WordPress and many other services
  • Let's Encrypt HTTPS for every domain with forced HTTPS option
  • Docker Swarm clustering with load balancing across nodes
  • One-click rollback to an earlier image
  • Persistent directories, port mappings and environment variables
  • Experimental import of Docker Compose files
  • Server monitoring through NetData

What CapRover does

CapRover turns a server with Docker into a small platform-as-a-service. It runs as a set of Docker Swarm services, uses nginx as its reverse proxy and load balancer, and requests Let’s Encrypt certificates for each domain. You manage it from a web dashboard or from the caprover command-line tool, and the project’s own pitch is that you should not need to know Docker or nginx to use it.

Each app is described by a small captain-definition file. It can point to one of the built-in templates for Node.js, PHP, Python/Django or Ruby/Rack, to a Dockerfile in the repository, or simply to an image name in a registry. Code can be sent with caprover deploy, uploaded as a tarball in the dashboard, or pulled automatically when a GitHub, Bitbucket or GitLab webhook reports a push to the tracked branch. A deployment history lets you roll back to an earlier image with one click, although environment variables and other settings are not rolled back with it.

The one-click app catalogue covers databases such as MySQL, PostgreSQL, MongoDB and Redis, content tools such as WordPress and Ghost, and many other services, with a community-maintained directory on top.

Scaling and clustering

Because CapRover sits on Docker Swarm, you can raise an app’s instance count and nginx spreads requests between the copies. Additional servers join from the dashboard’s Cluster page (or with plain docker swarm join), and Swarm then places instances across the nodes. Apps marked as persistent, such as databases, are tied to one node and kept at a single instance by default, and they do not get the start-first, zero-downtime updates that stateless apps receive when they define a Docker health check.

Self-hosting CapRover

Installation is a single docker run command on a server with a public IP address and Docker 25 or later. The project tests on Ubuntu 24.04 and publishes images for AMD64 and ARM64. The documentation warns that 512 MB of RAM can be too little for builds and points to 1 GB instances. You also need a wildcard DNS record for the app subdomains and open ports 80, 443 and 3000. The dashboard starts with the default password captain42, which you change once HTTPS is enabled; the recommended route is to finish setup with caprover serversetup.

Builds run on the CapRover server itself, and the documentation suggests building images in CI for heavy projects so the server does not run out of memory. The configuration backup feature is marked experimental and does not include images or volumes, so app data needs its own backup plan. If you remove CapRover, the deployed containers keep running.

Two points to know before installing: the installer requires you to accept the project’s terms and conditions, and those terms describe anonymous usage analytics that are switched on by default and can be disabled with CAPROVER_DISABLE_ANALYTICS=true.

Hosted version

There is no hosted CapRover. CapRover Pro is an optional paid subscription for self-hosted instances that adds build status notifications, login alerts, two-factor authentication and email support.

Limitations

CapRover has no pull-request preview environments and no dedicated static-site build pack (static sites are served through a Dockerfile). Docker Compose import is experimental and supports only a subset of fields. Putting a proxy such as Cloudflare in front of the root domain is not officially supported. Two-factor authentication for the dashboard is a paid feature.

Who it suits

CapRover suits developers and small teams who want Heroku-style deployments and a catalogue of ready-made apps on one or a few servers, and who like having both a dashboard and a CLI. If you need preview deployments, look at Coolify, Dokploy or ZaneOps; for a command-line Heroku clone, see Dokku.

License details

Apache-2.0. Installation requires accepting the project's terms, which also cover anonymous usage analytics (on by default, can be disabled). Two-factor login, login alerts and build notifications belong to the paid CapRover Pro service.

Technical details

Self-hosting needs

  • Docker

Built with

  • TypeScript
  • Node.js
  • React

GitHub topics

  • aws
  • azure
  • caprover
  • captainduckduck
  • containers
  • deployment
  • digitalocean
  • docker
  • docker-swarm
  • heroku
  • nginx
  • nginx-docker
  • node
  • node-js

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.