What CapRover Does
- Web Dashboard: Beautiful web UI for managing all deployments and settings
- One-Click Apps: 100+ pre-configured apps (WordPress, PostgreSQL, MongoDB, Redis, Ghost, etc.)
- Git Push Deploy: Deploy via git push, CI/CD webhook, or Docker image
- Automatic HTTPS: Let's Encrypt certificates for all apps, auto-renewed
- Docker Swarm: Built-in cluster support for high availability and scaling
- Dockerfile/Docker Compose: Deploy any Dockerfile or docker-compose.yml
- CLI Tool: Command-line tool for deployment from CI/CD pipelines
- Persistent Storage: Managed volumes for databases and stateful apps
- Custom Nginx: Full nginx configuration per app for advanced routing
Architecture
┌──────────────────────────────────────┐
│ CapRover Server │
│ ┌──────────┐ ┌──────────────────┐ │
│ │ Captain │ │ Docker Swarm │ │
│ │ (Web UI) │ │ ┌────┐ ┌────┐ │ │
│ │ (Node.js)│ │ │App1│ │App2│ │ │
│ └──────────┘ │ └────┘ └────┘ │ │
│ ┌──────────┐ │ ┌────┐ ┌────┐ │ │
│ │ Nginx │ │ │ DB │ │Cache│ │ │
│ │ (Proxy) │ │ └────┘ └────┘ │ │
│ └──────────┘ └──────────────────┘ │
└──────────────────────────────────────┘Getting Started
1. Install CapRover
# On a VPS with Docker installed
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/caprover2. Configure Domain
Point *.apps.yourdomain.com to your server IP (A record)
Open http://your-ip:3000
Set root domain: apps.yourdomain.com
Enable HTTPS for dashboard3. Deploy an App
Via Web UI:
- Click "Apps" → "Create New App"
- Enter app name → "Create"
- Upload source code or Docker image
- App is live at
https://app-name.apps.yourdomain.com
Via CLI:
npm install -g caprover
caprover login
# In your project directory:
caprover deployVia captain-definition file:
{
"schemaVersion": 2,
"dockerfilePath": "./Dockerfile"
}4. One-Click Apps
From the web UI, deploy pre-configured apps with one click:
- Databases: PostgreSQL, MySQL, MongoDB, Redis, ClickHouse
- CMS: WordPress, Ghost, Strapi, Directus
- Dev Tools: Gitea, Drone CI, Portainer, Adminer
- Monitoring: Grafana, Prometheus, Netdata
- Communication: Rocket.Chat, Mattermost
- And 100+ more
Key Features
App Configuration (Web UI)
App: my-api
├── HTTP Settings
│ ├── Enable HTTPS ✅ (auto Let's Encrypt)
│ ├── Force HTTPS ✅
│ ├── Container Port: 8080
│ └── Custom domain: api.mysite.com
├── App Configs (Environment Variables)
│ ├── DATABASE_URL: postgres://...
│ ├── REDIS_URL: redis://...
│ └── SECRET_KEY: ***
├── Deployment
│ ├── Instance Count: 3 (horizontal scaling)
│ ├── Deploy via: Git, Tarball, Docker Image
│ └── Captain Definition file
└── Persistent Directories
└── /app/data → managed volumeDocker Compose Deployment
# captain-definition
{
"schemaVersion": 2,
"dockerComposeFileContent": "version: '3'
services:
web:
image: nginx
ports:
- 80:80"
}CI/CD Integration
# GitHub Actions
- name: Deploy to CapRover
uses: caprover/deploy-from-github@v1
with:
server: https://captain.apps.yourdomain.com
app: my-app
token: ${{ secrets.CAPROVER_TOKEN }}CapRover vs Alternatives
| Feature | CapRover | Dokku | Coolify | Heroku |
|---|---|---|---|---|
| Web UI | Beautiful | No (CLI) | Modern | Yes |
| One-click apps | 100+ | Plugins | 100+ | Marketplace |
| Cluster support | Docker Swarm | Single server | Yes | Dynos |
| Deploy method | Git/UI/CLI/Image | Git push | Git/UI | Git push |
| Configuration | Web UI | CLI | Web UI | Web/CLI |
| Learning curve | Low | Medium | Low | Low |
| Best for | Visual management | CLI users | Modern UI | SaaS |
FAQ
Q: Should I pick CapRover or Dokku? A: CapRover has a nice web UI and a one-click app marketplace — great for users who prefer a GUI. Dokku is CLI-only and closer to the Heroku experience, better for DevOps engineers. Features are comparable.
Q: Is one server enough? A: More than enough for small projects. CapRover supports Docker Swarm, so you can add worker nodes when you need to scale. A single 2 GB RAM VPS can run 3–5 small apps.
Q: How do I back up CapRover?
A: Back up the /captain volume (which holds configs and nginx settings). Databases need separate backups (pg_dump, etc.). App code is already backed up via your Git repos.
Sources & Credits
- GitHub: caprover/caprover — 15K+ ⭐ | Apache-2.0
- Website: caprover.com