A modern, lightweight reverse proxy manager powered by Caddy
The simplest way to manage your reverse proxies with automatic HTTPS
| Feature | Description |
|---|---|
| 🔒 Automatic HTTPS | SSL certificates from Let's Encrypt, ZeroSSL, or custom |
| ⚡ HTTP/3 Ready | Modern protocols with QUIC support out of the box |
| 🎨 Modern Dashboard | Beautiful UI built with Vue 3 + Tailwind CSS |
| 🔄 Real-time Updates | WebSocket-based live configuration changes |
| 🌐 Layer 4 Proxy | TCP/UDP streaming for databases, game servers, etc. |
| 🛡️ Access Control | IP whitelisting and Basic Auth protection |
| ⚖️ Load Balancing | Multiple upstreams with health checks |
| 👥 Multi-user | Role-based access control with permissions |
services:
cpm:
container_name: caddy-proxy-manager
image: pentasolve/caddy-proxy-manager:latest
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- cpm_data:/data
- cpm_config:/config
restart: unless-stopped
volumes:
cpm_data:
cpm_config:docker compose up -ddocker run -d \
--name caddy-proxy-manager \
-p 80:80 -p 443:443 -p 81:81 \
-v cpm_data:/data \
-v cpm_config:/config \
--restart unless-stopped \
pentasolve/caddy-proxy-manager:latest| Port | Description |
|---|---|
80 |
HTTP (auto-redirects to HTTPS) |
443 |
HTTPS with automatic certificates |
81 |
Admin Dashboard |
📍 Dashboard: http://your-server-ip:81
On first access, you'll be prompted to create an admin account.
- Login to the dashboard at port
81 - Navigate to Proxy Hosts → Add Host
- Configure your proxy:
- Domain:
app.example.com - Target:
192.168.1.100:3000 - SSL: Enable for automatic HTTPS
- Domain:
- Click Save - changes apply instantly!
- Go to Proxy Hosts → Streams (L4) tab
- Click Add Stream
- Configure:
- Listen Port:
3306 - Protocol:
TCP - Target:
db-server:3306
- Listen Port:
| Provider | Description |
|---|---|
| 🔄 Auto | Automatic selection |
| 🔐 Let's Encrypt | Free, trusted certificates |
| 🔐 ZeroSSL | Alternative free CA |
| 🔧 Self-Signed | For internal/development |
| 📁 Custom | Upload your own certificate |
MIT License - see LICENSE for details.
Made with ❤️ by Pentasolve