- Implemented new CSS animations for UI elements including bobbing, pulsing, rotating, and spinning effects. - Integrated loading overlays in CrowdSecConfig, Login, ProxyHosts, Security, and WafConfig pages to enhance user experience during asynchronous operations. - Added contextual messages for loading states to inform users about ongoing processes. - Created tests for Login and Security pages to ensure overlays function correctly during login attempts and security operations.
155 lines
4.4 KiB
Markdown
155 lines
4.4 KiB
Markdown
<p align="center">
|
|
<img src="frontend/public/banner.png" alt="Charon" width="600">
|
|
</p>
|
|
|
|
<h1 align="center">Charon</h1>
|
|
|
|
<p align="center"><strong>Your websites, your rules—without the headaches.</strong></p>
|
|
|
|
<p align="center">
|
|
Turn multiple websites and apps into one simple dashboard. Click, save, done. No code, no config files, no PhD required.
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<p align="center">
|
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
|
|
<a href="https://github.com/Wikid82/charon/releases"><img src="https://img.shields.io/github/v/release/Wikid82/charon?include_prereleases" alt="Release"></a>
|
|
<a href="https://github.com/Wikid82/charon/actions"><img src="https://img.shields.io/github/actions/workflow/status/Wikid82/charon/docker-publish.yml" alt="Build Status"></a>
|
|
</p>
|
|
|
|
---
|
|
|
|
## 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
|
|
|
|
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
<a href="LICENSE"><strong>MIT License</strong></a> ·
|
|
<a href="https://wikid82.github.io/charon/"><strong>Documentation</strong></a> ·
|
|
<a href="https://github.com/Wikid82/charon/releases"><strong>Releases</strong></a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<em>Built with ❤️ by <a href="https://github.com/Wikid82">@Wikid82</a></em><br>
|
|
<sub>Powered by <a href="https://caddyserver.com/">Caddy Server</a></sub>
|
|
</p>
|