feat: add loading overlays and animations across various pages

- 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.
This commit is contained in:
GitHub Actions
2025-12-04 15:10:02 +00:00
parent 33c31a32c6
commit 3e4323155f
29 changed files with 5575 additions and 1344 deletions

View File

@@ -1,191 +1,191 @@
# ✨ Features
# What Can Charon Do?
Charon is packed with features to make managing your web services simple and secure. Here's everything you can do:
Here's everything Charon can do for you, explained simply.
---
## 🔒 Security
## \ud83d\udd10 SSL Certificates (The Green Lock)
### Cerberus Security Suite (Optional)
Cerberus bundles CrowdSec, WAF (Coraza), ACLs, and Rate Limiting into an optional security suite that can be enabled at runtime.
**What it does:** Makes browsers show a green lock next to your website address.
### CrowdSec Integration
Block malicious IPs automatically using community-driven threat intelligence. CrowdSec analyzes your logs and blocks attackers before they can cause harm.
→ [Learn more about CrowdSec](https://www.crowdsec.net/)
**Why you care:** Without it, browsers scream "NOT SECURE!" and people won't trust your site.
### Web Application Firewall (WAF)
Protect your applications from common web attacks like SQL injection and cross-site scripting using the integrated (placeholder) Coraza WAF pipeline.
**Global Modes**:
- `disabled` WAF not evaluated.
- `monitor` Evaluate & log every request (increment Prometheus counters) without blocking.
- `block` Enforce rules (suspicious payloads are rejected; counters increment).
**Observability**:
- Prometheus counters: `charon_waf_requests_total`, `charon_waf_blocked_total`, `charon_waf_monitored_total`.
- Structured logs: fields `source=waf`, `decision=block|monitor`, `mode`, `path`, `query`.
**Rulesets**:
- Manage rule sources via the Security UI / API (`/api/v1/security/rulesets`). Each ruleset stores `name`, optional `source_url`, `mode`, and raw `content`.
- Attach a global rules source using `waf_rules_source` in the security config.
→ [Coraza](https://coraza.io/) · [Cerberus Deep Dive](cerberus.md#waf)
### Access Control Lists (ACLs)
Control who can access your services with IP whitelists, blacklists, and geo-blocking. Block entire countries or allow only specific networks.
→ [ACL Documentation](security.md#access-control-lists)
### Rate Limiting
Prevent abuse by limiting how many requests a single IP can make. Protect against brute force attacks and API abuse.
→ [Rate Limiting Setup](security.md#rate-limiting)
### Automatic HTTPS
Every site gets a free SSL certificate automatically. No configuration needed—just add your domain and it's secure.
→ [SSL/TLS Configuration](security.md#ssltls-certificates)
**What you do:** Nothing. Charon gets free certificates from Let's Encrypt and renews them automatically.
---
## 📊 Monitoring
## \ud83d\udee1\ufe0f Security (Optional)
### Built-in Uptime Monitor
Know instantly when your services go down. Get notifications via Discord, Slack, email, or webhooks when something isn't responding.
→ [Uptime Monitoring Guide](uptime.md) *(coming soon)*
Charon includes **Cerberus**, a security system that blocks bad guys. It's off by default—turn it on when you're ready.
### Real-time Health Dashboard
See the status of all your services at a glance. View response times, uptime history, and current availability from one dashboard.
### Block Bad IPs Automatically
### Smart Notifications
Get notified only when it matters. Notifications are grouped by server so you don't get spammed when a whole host goes down.
**What it does:** CrowdSec watches for attackers and blocks them before they can do damage.
**Why you care:** Someone tries to guess your password 100 times? Blocked automatically.
**What you do:** Add one line to your docker-compose file. See [Security Guide](security.md).
### Block Entire Countries
**What it does:** Stop all traffic from specific countries.
**Why you care:** If you only need access from the US, block everywhere else.
**What you do:** Create an access list, pick countries, assign it to your website.
### Block Bad Behavior
**What it does:** Detects common attacks like SQL injection or XSS.
**Why you care:** Protects your apps even if they have bugs.
**What you do:** Turn on "WAF" mode in security settings.
---
## 🖥️ Proxy Management
## \ud83d\udc33 Docker Integration
### Visual Proxy Configuration
Add and manage reverse proxies without touching configuration files. Point-and-click simplicity with full power under the hood.
### Auto-Discover Containers
### Multi-Domain Support
Host unlimited domains from a single server. Each domain can point to a different backend service.
**What it does:** Sees all your Docker containers and shows them in a list.
### WebSocket Support
Real-time apps like chat, gaming, and live updates work out of the box. WebSocket connections are automatically upgraded.
**Why you care:** Instead of typing IP addresses, just click your container and Charon fills everything in.
### Load Balancing
Distribute traffic across multiple backend servers. Keep your services fast and reliable even under heavy load.
**What you do:** Make sure Charon can access `/var/run/docker.sock` (it's in the quick start).
### Custom Headers
Add, modify, or remove HTTP headers as traffic passes through. Perfect for CORS, security headers, or custom routing logic.
### Remote Docker Servers
**What it does:** Manages containers on other computers.
**Why you care:** Run Charon on one server, manage containers on five others.
**What you do:** Add remote servers in the "Docker" section.
---
## 🐳 Docker Integration
## \ud83d\udce5 Import Your Old Setup
### Container Discovery
See all Docker containers running on your servers. One click to create a proxy for any container.
**What it does:** Reads your existing Caddyfile and creates proxy hosts for you.
### Remote Docker Support
Manage containers on other servers through secure connections. Perfect for multi-server setups with Tailscale or WireGuard VPNs.
→ [Remote Docker Setup](getting-started.md#remote-docker)
**Why you care:** Don't start from scratch if you already have working configs.
### Automatic Port Detection
Charon reads container labels and exposed ports automatically. Less typing, fewer mistakes.
**What you do:** Click "Import," paste your Caddyfile, review the results, click "Import."
**[Detailed Import Guide](import-guide.md)**
---
## 📥 Import & Migration
## \u26a1 Zero Downtime Updates
### Caddyfile Import
Already using Caddy? Import your existing Caddyfile and Charon will create proxies for each site automatically.
→ [Import Guide](import-guide.md)
**What it does:** Apply changes without stopping traffic.
### NPM Migration *(coming soon)*
Migrating from Nginx Proxy Manager? We'll import your configuration so you don't start from scratch.
**Why you care:** Your websites stay up even while you're making changes.
### Conflict Resolution
When imports find existing entries, you choose what to do—keep existing, overwrite, or merge configurations.
**What you do:** Nothing special—every change is zero-downtime by default.
---
## 💾 Backup & Restore
## \ud83c\udfa8 Beautiful Loading Animations
### Automatic Backups
Your configuration is automatically backed up before destructive operations like deletes.
When you make changes, Charon shows you themed animations so you know what's happening.
### One-Click Restore
Something go wrong? Restore any previous configuration with a single click.
### The Gold Coin (Login)
### Export Configuration
Download your entire configuration for safekeeping or migration to another server.
When you log in, you see a spinning gold coin. In Greek mythology, people paid Charon the ferryman with a coin to cross the river into the afterlife. So logging in = paying for passage!
### The Blue Boat (Managing Websites)
When you create or update websites, you see Charon's boat sailing across the river. He's literally "ferrying" your changes to the server.
### The Red Guardian (Security)
When you change security settings, you see Cerberus—the three-headed guard dog. He protects the gates of the underworld, just like your security settings protect your apps.
**Why these exist:** Changes can take 1-10 seconds to apply. The animations tell you what's happening so you don't think it's broken.
---
## 🎨 User Experience
## \ud83d\udd0d Health Checks
### Dark Mode Interface
Easy on the eyes during late-night troubleshooting. The modern dark interface looks great on any device.
**What it does:** Tests if your app is actually reachable before saving.
### Mobile Responsive
Manage your proxies from your phone or tablet. The interface adapts to any screen size.
**Why you care:** Catches typos and mistakes before they break things.
### Bulk Operations
Select multiple items and perform actions on all of them at once. Delete, enable, or disable in bulk.
### Search & Filter
Find what you're looking for quickly. Filter by status, search by name, or sort by any column.
**What you do:** Click the "Test" button when adding a website.
---
## 🔌 API & Automation
## \ud83d\udccb Logs & Monitoring
### RESTful API
Automate everything through a complete REST API. Create proxies, manage certificates, and monitor uptime programmatically.
→ [API Documentation](api.md)
**What it does:** Shows you what's happening with your proxy.
### Webhook Notifications
Send events to any system that accepts webhooks. Integrate with your existing monitoring and automation tools.
**Why you care:** When something breaks, you can see exactly what went wrong.
### Webhook Payload Templates
Customize JSON payloads for webhooks using built-in Minimal and Detailed templates, or upload a Custom JSON template. The server validates templates on save and provides a preview endpoint so you can test rendering before sending.
**What you do:** Click "Logs" in the sidebar.
---
## 🛡️ Enterprise Features
## \ud83d\udcbe Backup & Restore
### Multi-User Support *(coming soon)*
Add team members with different permission levels. Admins, editors, and viewers.
**What it does:** Saves a copy of your configuration before destructive changes.
### Audit Logging *(coming soon)*
Track who changed what and when. Full history of all configuration changes.
**Why you care:** If you accidentally delete something, restore it with one click.
### SSO Integration *(coming soon)*
Sign in with your existing identity provider. Support for OAuth, SAML, and OIDC.
**What you do:** Backups happen automatically. Restore from the "Backups" page.
---
## 🚀 Performance
## \ud83c\udf10 WebSocket Support
### Caddy-Powered
Built on Caddy, one of the fastest and most memory-efficient web servers available.
**What it does:** Handles real-time connections for chat apps, live updates, etc.
### Minimal Resource Usage
Runs happily on a Raspberry Pi. Low CPU and memory footprint.
**Why you care:** Apps like Discord bots, live dashboards, and chat servers need this to work.
### Instant Configuration Reloads
Changes take effect immediately without downtime. Zero-downtime configuration updates.
**What you do:** Nothing—WebSockets work automatically.
---
## 📚 Need More Details?
## \ud83d\udcca Uptime Monitoring (Coming Soon)
Each feature has detailed documentation:
**What it does:** Checks if your websites are responding.
- [Getting Started](getting-started.md) - Your first proxy in 5 minutes
- [Security Features](security.md) - Deep dive into security options
- [API Reference](api.md) - Complete API documentation
- [Import Guide](import-guide.md) - Migrating from other tools
**Why you care:** Get notified when something goes down.
**Status:** Coming in a future update.
---
<p align="center">
<em>Missing a feature? <a href="https://github.com/Wikid82/charon/discussions">Let us know!</a></em>
</p>
## \ud83d\udcf1 Mobile-Friendly Interface
**What it does:** Works perfectly on phones and tablets.
**Why you care:** Fix problems from anywhere, even if you're not at your desk.
**What you do:** Just open the web interface on your phone.
---
## \ud83c\udf19 Dark Mode
**What it does:** Easy-on-the-eyes dark interface.
**Why you care:** Late-night troubleshooting doesn't burn your retinas.
**What you do:** It's always dark mode. (Light mode coming if people ask for it.)
---
## \ud83d\udd0c API for Automation
**What it does:** Control everything via code instead of the web interface.
**Why you care:** Automate repetitive tasks or integrate with other tools.
**What you do:** See the [API Documentation](api.md).
---
## Missing Something?
**[Request a feature](https://github.com/Wikid82/charon/discussions)** — Tell us what you need!