Jeremy 1a2152aa75 Merge pull request #312 from Wikid82/feature/beta-release
feat: Phase 5 Frontend, Security Hardening & CVE Remediation
2025-12-05 01:05:45 -05:00
2025-12-03 15:19:34 +00:00
2025-11-29 17:53:54 -05: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

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 →


Quick Start

Save this as docker-compose.yml:

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:

docker-compose up -d

Docker Run (One-Liner)

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:

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 →


Getting Help

📖 Full Documentation — Everything explained simply 🚀 5-Minute Guide — Your first website up and running 💬 Ask Questions — Friendly community help 🐛 Report Problems — Something broken? Let us know


Contributing

Want to help make Charon better? Check out CONTRIBUTING.md


Top Features


MIT License · Documentation · Releases

Built with ❤️ by @Wikid82
Powered by Caddy Server

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%