Wikid82 d96ff80f57 fix: add missing checkout step in test-image job
The test-image job was trying to run ./scripts/integration-test.sh
without first checking out the repository, causing CI failures.
2025-11-28 13:52:19 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00
2025-11-24 18:22:01 +00:00

Caddy Proxy Manager+

Caddy Proxy Manager+

The friendly way to manage your reverse proxy
Point, click, done. No config files needed.

License: MIT Release Build Status


Top Features

Feature Description
🎨 Beautiful Dark UI Modern interface that's easy on the eyes, works on any device
🔐 Automatic HTTPS Free SSL certificates from Let's Encrypt, auto-renewed
🛡️ Built-in Security CrowdSec integration, geo-blocking, IP access lists
📊 Uptime Monitoring Know when your services go down with smart notifications
🐳 Docker Discovery Auto-detect containers on local and remote Docker hosts
📥 Easy Import Bring your existing Caddy or NPM configs with one click
💾 Backup & Restore Never lose your settings, export anytime
🔍 Health Checks Test connections before saving
🌐 WebSocket Support Perfect for real-time apps and chat services
Zero Downtime Hot-reload configuration without restarts

See all features →


🚀 Quick Start

services:
  cpmp:
    image: ghcr.io/wikid82/cpmp:latest
    container_name: cpmp
    restart: unless-stopped
    ports:
      - "80:80"        # HTTP (Caddy proxy)
      - "443:443"      # HTTPS (Caddy proxy)
      - "443:443/udp"  # HTTP/3 (Caddy proxy)
      - "8080:8080"    # Management UI (CPM+)
    environment:
      - CPM_ENV=production
      - TZ=UTC # Set timezone (e.g., America/New_York)
      - CPM_HTTP_PORT=8080
      - CPM_DB_PATH=/app/data/cpm.db
      - CPM_FRONTEND_DIR=/app/frontend/dist
      - CPM_CADDY_ADMIN_API=http://localhost:2019
      - CPM_CADDY_CONFIG_DIR=/app/data/caddy
      - CPM_CADDY_BINARY=caddy
      - CPM_IMPORT_CADDYFILE=/import/Caddyfile
      - CPM_IMPORT_DIR=/app/data/imports
      # Security Services (Optional)
      #- CPM_SECURITY_CROWDSEC_MODE=disabled # disabled, local, external
      #- CPM_SECURITY_CROWDSEC_API_URL= # Required if mode is external
      #- CPM_SECURITY_CROWDSEC_API_KEY= # Required if mode is external
      #- CPM_SECURITY_WAF_MODE=disabled # disabled, enabled
      #- CPM_SECURITY_RATELIMIT_ENABLED=false
      #- CPM_SECURITY_ACL_ENABLED=false
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - <path_to_cpm_data>:/app/data
      - <path_to_caddy_data>:/data
      - <path_to_caddy_config>:/config
      - /var/run/docker.sock:/var/run/docker.sock:ro # For local container discovery
      # Mount your existing Caddyfile for automatic import (optional)
      # - ./my-existing-Caddyfile:/import/Caddyfile:ro
      # - ./sites:/import/sites:ro # If your Caddyfile imports other files
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/api/v1/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

Open http://localhost:8080 — that's it! 🎉

Full documentation →


💬 Community

🤝 Contributing

We welcome contributions! See our Contributing Guide to get started.


MIT License · Documentation · Releases

Built with ❤️ by @Wikid82
Powered by Caddy Server · Inspired by Nginx Proxy Manager

Description
A lightweight, user-friendly web interface for managing Caddy as a reverse proxy. It simplifies SSL management and host routing for self-hosters who want the power of Caddy without the manual configuration.
Readme MIT 77 MiB
Languages
Go 52.2%
TypeScript 43.6%
Shell 3.5%
Dockerfile 0.3%
JavaScript 0.2%