docker.recipes

CapRover Application Platform

intermediate

Easy-to-use PaaS to deploy applications with one-click apps.

Overview

CapRover is an open-source Platform-as-a-Service (PaaS) built on Docker that transforms any Linux server into a powerful application hosting platform. Created to simplify the deployment process for developers and small teams, CapRover provides a web-based dashboard for managing applications, databases, and services without requiring deep DevOps expertise. It automatically handles container orchestration, load balancing, and SSL certificate management through integrated NGINX reverse proxy and Certbot automation. This stack combines CapRover's application management capabilities with NGINX's proven performance for HTTP routing and SSL termination, while Certbot ensures automatic certificate provisioning and renewal from Let's Encrypt. The platform excels at bridging the gap between simple shared hosting and complex orchestration platforms like Kubernetes, offering one-click deployments for popular applications while maintaining the flexibility to deploy custom Docker images. Development teams, startups, and individual developers benefit from this combination when they need reliable application hosting with minimal infrastructure management overhead, making it particularly valuable for rapid prototyping, staging environments, and production workloads that don't require enterprise-scale orchestration complexity.

Key Features

  • Web-based dashboard for application lifecycle management with real-time deployment logs
  • One-click marketplace apps including WordPress, Ghost, MongoDB, Redis, and PostgreSQL
  • Automatic NGINX reverse proxy configuration with custom domain mapping
  • Built-in Let's Encrypt integration via Certbot for automatic SSL certificate management
  • Docker registry support for private image deployments with authentication
  • Application clustering and zero-downtime deployments with health checks
  • Built-in monitoring dashboard with container resource usage and application metrics
  • CLI tool for CI/CD pipeline integration and automated deployments

Common Use Cases

  • 1Rapid prototyping environment for development teams testing multiple microservices
  • 2Small to medium business hosting platform for WordPress sites and web applications
  • 3Staging and testing infrastructure for software development workflows
  • 4Personal cloud platform for self-hosted alternatives to SaaS applications
  • 5Startup MVP deployment platform requiring quick iteration and scaling
  • 6Educational environment for teaching containerization and deployment concepts
  • 7Remote team collaboration platform hosting development tools and databases

Prerequisites

  • Linux server with Docker and Docker Compose installed (Ubuntu 18+ recommended)
  • Minimum 1GB RAM and 10GB storage (2GB+ RAM recommended for multiple applications)
  • Domain name with DNS access for subdomain configuration and SSL certificates
  • Ports 80, 443, and 3000 available and accessible from the internet
  • SERVER_IP environment variable configured with your server's public IP address
  • Basic understanding of Docker concepts and command line interface

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 caprover:
3 image: caprover/caprover:latest
4 container_name: caprover
5 environment:
6 - CAPTAIN_IS_DEBUG=0
7 - MAIN_NODE_IP_ADDRESS=${SERVER_IP}
8 volumes:
9 - /var/run/docker.sock:/var/run/docker.sock
10 - caprover-data:/captain
11 ports:
12 - "80:80"
13 - "443:443"
14 - "3000:3000"
15 networks:
16 - caprover-network
17 restart: unless-stopped
18
19volumes:
20 caprover-data:
21
22networks:
23 caprover-network:
24 driver: bridge

.env Template

.env
1# CapRover
2SERVER_IP=your_server_ip
3
4# Initial captain password: captain42
5# Change immediately after first login

Usage Notes

  1. 1Dashboard at http://captain.your-domain:3000
  2. 2Default password: captain42
  3. 3One-click app deployment
  4. 4Automatic SSL certificates
  5. 5Use CLI: npm i -g caprover

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 caprover:
5 image: caprover/caprover:latest
6 container_name: caprover
7 environment:
8 - CAPTAIN_IS_DEBUG=0
9 - MAIN_NODE_IP_ADDRESS=${SERVER_IP}
10 volumes:
11 - /var/run/docker.sock:/var/run/docker.sock
12 - caprover-data:/captain
13 ports:
14 - "80:80"
15 - "443:443"
16 - "3000:3000"
17 networks:
18 - caprover-network
19 restart: unless-stopped
20
21volumes:
22 caprover-data:
23
24networks:
25 caprover-network:
26 driver: bridge
27EOF
28
29# 2. Create the .env file
30cat > .env << 'EOF'
31# CapRover
32SERVER_IP=your_server_ip
33
34# Initial captain password: captain42
35# Change immediately after first login
36EOF
37
38# 3. Start the services
39docker compose up -d
40
41# 4. View logs
42docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/caprover-paas/run | bash

Troubleshooting

  • CapRover dashboard shows 'Cannot connect to Docker daemon': Ensure Docker service is running and user has Docker group permissions
  • SSL certificate generation fails: Verify domain DNS points to server IP and ports 80/443 are not blocked by firewall
  • Application deployment stuck at 'Building': Check Docker daemon has sufficient disk space and memory for image builds
  • Captain.domain:3000 not accessible: Confirm SERVER_IP environment variable matches actual server IP and port 3000 is open
  • One-click apps fail to install: Verify Docker Hub connectivity and check CapRover logs for registry authentication issues
  • NGINX proxy errors after domain changes: Restart CapRover container to reload NGINX configuration with updated domain mappings

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space