Charon

Charon

Your websites, your rules—without the headaches.

Turn multiple websites and apps into one simple dashboard. Click, save, done. No code, no config files, no PhD required.


Project Status: Active – The project is being actively developed.License: MIT Release Build Status

--- ## Why Charon? You want your apps accessible online. You don't want to become a networking expert first. **The problem:** Managing reverse proxies usually means editing config files, memorizing cryptic syntax, and hoping you didn't break everything. **Charon's answer:** A web interface where you click boxes and type domain names. That's it. - ✅ **Your blog** gets a green lock (HTTPS) automatically - ✅ **Your chat server** works without weird port numbers - ✅ **Your admin panel** blocks everyone except you - ✅ **Everything stays up** even when you make changes --- ## What Can It Do? 🔐 **Automatic HTTPS** — Free certificates that renew themselves 🛡️ **Optional Security** — Block bad guys, bad countries, or bad behavior 🐳 **Finds Docker Apps** — Sees your containers and sets them up instantly 📥 **Imports Old Configs** — Bring your Caddy setup with you ⚡ **No Downtime** — Changes happen instantly, no restarts needed 🎨 **Dark Mode UI** — Easy on the eyes, works on phones **[See everything it can do →](https://wikid82.github.io/charon/features)** --- ## Quick Start ### Docker Compose (Recommended) Save this as `docker-compose.yml`: ```yaml services: charon: image: ghcr.io/wikid82/charon:latest container_name: charon restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" - "8080:8080" volumes: - ./charon-data:/app/data - /var/run/docker.sock:/var/run/docker.sock:ro environment: - CHARON_ENV=production ``` Then run: ```bash docker-compose up -d ``` ### Docker Run (One-Liner) ```bash docker run -d \ --name charon \ -p 80:80 \ -p 443:443 \ -p 443:443/udp \ -p 8080:8080 \ -v ./charon-data:/app/data \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -e CHARON_ENV=production \ ghcr.io/wikid82/charon:latest ``` ### What Just Happened? 1. Charon downloaded and started 2. The web interface opened on port 8080 3. Your websites will use ports 80 (HTTP) and 443 (HTTPS) **Open http://localhost:8080** and start adding your websites! --- ## Optional: Turn On Security Charon includes **Cerberus**, a security guard for your apps. It's turned off by default so it doesn't get in your way. When you're ready, add these lines to enable protection: ```yaml environment: - CERBERUS_SECURITY_WAF_MODE=monitor # Watch for attacks - CERBERUS_SECURITY_CROWDSEC_MODE=local # Block bad IPs automatically ``` **Start with "monitor" mode** — it watches but doesn't block. Once you're comfortable, change `monitor` to `block`. **[Learn about security features →](https://wikid82.github.io/charon/security)** --- ## Getting Help **[📖 Full Documentation](https://wikid82.github.io/charon/)** — Everything explained simply **[🚀 5-Minute Guide](https://wikid82.github.io/charon/getting-started)** — Your first website up and running **[💬 Ask Questions](https://github.com/Wikid82/charon/discussions)** — Friendly community help **[🐛 Report Problems](https://github.com/Wikid82/charon/issues)** — Something broken? Let us know --- ## Contributing Want to help make Charon better? Check out [CONTRIBUTING.md](CONTRIBUTING.md) --- ## ✨ Top Features ---

MIT License · Documentation · Releases

Built with ❤️ by @Wikid82
Powered by Caddy Server