CapRover — Automated Docker Deployment PaaS with Web UI
CapRover is an open-source PaaS (Heroku on Steroids) with a beautiful web UI, one-click apps, automatic HTTPS, and Docker Swarm support. Deploy any app in seconds.
What it is
CapRover is an open-source Platform-as-a-Service that simplifies Docker deployment. It provides a web dashboard for managing applications, automatic HTTPS via Let's Encrypt, one-click app installs (WordPress, MongoDB, PostgreSQL, and dozens more), and Docker Swarm clustering for horizontal scaling.
CapRover targets solo developers, small teams, and anyone who wants a Heroku-like deployment experience on their own server. You get the convenience of a managed platform without the per-dyno pricing.
How it saves time or tokens
Setting up Docker, Nginx reverse proxy, SSL certificates, and CI/CD for each application takes hours of configuration. CapRover handles all of this through a web UI and CLI. A new app goes from git push to running HTTPS endpoint in under a minute. The one-click app store eliminates Dockerfile writing for common services.
How to use
- Install CapRover on a VPS with Docker pre-installed.
- Point a wildcard DNS record to your server.
- Deploy apps via the web UI or the caprover CLI.
# Install CapRover on your server
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-data:/captain \
caprover/caprover
# Install the CLI locally
npm install -g caprover
# Deploy an app
caprover deploy
# Follow the prompts to select your app and push code
Example
# captain-definition file (CapRover's deployment config)
{
"schemaVersion": 2,
"dockerfilePath": "./Dockerfile"
}
# Dockerfile for a Node.js app
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Related on TokRepo
- DevOps tools — More deployment and infrastructure tools
- Self-hosted solutions — Run your own cloud infrastructure
Common pitfalls
- CapRover requires ports 80, 443, and 3000 to be available. If another service (like Nginx or Apache) occupies these ports, the installation fails silently.
- Wildcard DNS is mandatory for automatic subdomain routing. Without it, each app needs manual DNS configuration.
- Docker Swarm mode is enabled automatically; if you previously configured standalone Docker, some containers may conflict with Swarm's networking.
Frequently Asked Questions
CapRover provides a web UI out of the box with one-click app installations. Dokku is CLI-only and closer to a mini-Heroku. Coolify is a newer alternative with a modern UI and similar features. CapRover has the largest one-click app catalog and longest track record among self-hosted PaaS options.
Yes. CapRover uses Docker Swarm for clustering. You can add worker nodes to distribute containers across multiple servers. The web UI manages the cluster from a single dashboard. For most small-to-medium workloads, a single server is sufficient.
Yes. CapRover integrates with Let's Encrypt to provision and renew SSL certificates automatically. Once you enable HTTPS for an app, CapRover handles certificate issuance and renewal without manual intervention.
Any application that runs in Docker can be deployed on CapRover. This includes Node.js, Python, Go, Ruby, PHP, Java, and static sites. The one-click app store also provides pre-configured databases, caches, and services like PostgreSQL, Redis, and MongoDB.
CapRover is used in production by many small teams and solo developers. For high-traffic applications, you should configure proper monitoring, backups, and Docker Swarm clustering. CapRover itself adds minimal overhead on top of Docker.
Citations (3)
- CapRover GitHub— CapRover is an open-source PaaS with Docker Swarm and one-click apps
- CapRover Documentation— CapRover installation and deployment documentation
- Docker Swarm Docs— Docker Swarm mode for container orchestration
Related on TokRepo
Discussion
Related Assets
Flax — Neural Network Library for JAX
A high-performance neural network library built on JAX, providing a flexible module system used extensively across Google DeepMind and the JAX research community.
PyCaret — Low-Code Machine Learning in Python
An open-source AutoML library that wraps scikit-learn, XGBoost, LightGBM, CatBoost, and other ML libraries into a unified low-code interface for rapid experimentation.
DGL — Deep Graph Library for Scalable Graph Neural Networks
A high-performance framework for building graph neural networks on top of PyTorch, TensorFlow, or MXNet, designed for both research prototyping and production-scale graph learning.