The ultimate visual control plane for modern Caddy Server orchestration.
Caddy Manager is a full-stack dashboard designed to simplify the management of Caddy Server. It provides a sleek, high-performance interface for managing domains, SSL certificates, TCP/UDP streams (port forwarding), and real-time terminal interaction..
- Domain Matrix: Effortlessly manage site configurations with automatic SSL and one-click domain previews.
- Wildcard SSL & DNS-01: Native support for Wildcard Certificates via ACME DNS-01 challenge.
- Enterprise Load Balancing: Distribute traffic across multiple upstreams with configurable Selection Policies (Random, Round Robin, Least Conn, First).
- Active Health Monitoring: Automatic failover with integrated Upstream Health Checks.
- Edge Header Engine: In-flight Header Transformations (SET, ADD, DELETE) for granular request/response manipulation.
- Advanced Security Suite: Deep control over HSTS (Strict-Transport-Security), Force SSL, and HTTP/2 protocols.
- Blueprint Versatility: Optimized templates for Reverse Proxy, SPA, Static Files, and PHP with built-in Directory Browsing support.
- DNS Provider Ecosystem: Integrated presets for 14+ providers plus a Generic Custom Provider for any Caddy DNS plugin.
- Multi-Theme Engine: Premium design paradigms including Prism (Neon), Horizon (Space), Terminal (Retro), and Flat (Light).
- Branding Office: Customizable title, logo, and footer attribution.
- Stream Orchestrator: Advanced Layer4 TCP/UDP port forwarding with real-time status tracking.
- Integrated Terminal: Browser-based server interaction via Xterm.js and node-pty.
The project is divided into three primary layers:
- Frontend (React + Vite): A premium, theme-aware UI built with Tailwind CSS and Framer Motion. It supports multiple design templates from high-contrast neon to professional white-label modes.
- Backend (Node.js + Express): A robust middleware handling SQLite3 data persistence, Caddy API orchestration, and WebSocket terminal streams. View Documentation
- Engine (Caddy + Layer4): A high-performance web server built with custom modules for advanced networking capabilities.
Caddy Manager is built on a custom design system that prioritizes visual depth and user immersion.
- Glassmorphism: UI elements utilize adaptive blurred backgrounds that react to the current theme.
- Theme-Aware Tokens: Every component is powered by CSS variables, ensuring consistent contrast across light and dark modes.
- Micro-Animations: Buttery-smooth transitions powered by Framer Motion for a premium, high-integrity feel.
- Responsive Layouts: Fully optimized for both high-density desktop monitoring and mobile quick-actions.
The Caddy Manager's Admin Panel provides enterprise-grade orchestration features directly through the Domain Matrix.
When a domain is configured with multiple comma-separated upstreams (e.g., localhost:8080, localhost:8081), the manager unlocks advanced LB settings:
- Selection Policies: Choose how traffic is distributed (e.g., Round Robin for even distribution, Least Conn for optimized load).
- Active Health Checks: Toggle real-time monitoring. Caddy will automatically bypass unhealthy upstreams based on active probing.
Manipulate incoming and outgoing headers without editing configuration files. The Rule Engine supports:
- SET: Enforce specific header values (e.g.,
SET X-Content-Type-Options: nosniff). - ADD: Append values to existing headers.
- DELETE: Strip sensitive headers before they reach the client or upstream.
- Static & PHP: Toggle Directory Browsing to present a modern, functional file explorer for public directories.
- SPA Blueprint: Automatic URI rewriting (
{path} /index.html) to support client-side routers like React Router. - Protocol Selection: Toggle between
HTTPandHTTPSfor upstream communication, with automaticinsecure_skip_verifyfor backend self-signed certificates.
The engine includes a "Zero-Touch" installer that handles Node.js, Caddy, and all custom Go modules.
chmod +x install.sh
./install.shTo install Caddy Manager as a systemd service (auto-start on boot):
chmod +x install-service.sh
./install-service.shOnce the service is running, access the dashboard and use the following default credentials:
- Username:
admin - Password:
caddy123
Important
Change the default password immediately after your first login for security.
Run the orchestration script to start or check the service status (does not block terminal):
./start.sh- Check logs:
sudo journalctl -u caddymanager -f - Stop service:
sudo systemctl stop caddymanager - Restart service:
sudo systemctl restart caddymanager
Create a .env file in the CaddyServer-backend directory:
JWT_SECRET: Secure token for session management.PORT: Backend listener port (default: 4000).
We welcome contributions from the community! To maintain the highest standards of visual and technical excellence, please follow these guidelines:
- Fork the Repository: Create your own branch from
main. - Aesthetic Alignment: All UI changes must adhere to the "WebUI" design system (Dark Mode, HSL-based colors, and subtle micro-animations).
- Code Standards: Ensure all new backend logic is documented and frontend components are modular.
- Workflow:
- Build locally and verify using
npm run dev. - Test edge cases for Caddyfile generation.
- Submit a Pull Request with a detailed summary of changes.
- Build locally and verify using
If you find a bug, please open an issue with:
- A clear description of the problem.
- Steps to reproduce.
- Environment details (Caddy version, OS).
This project is licensed under the ISC License.
Designed and Engineered by Lyarinet.













