docs: Update tracking for Metrics Dashboard v2 + caching

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-03-17 12:43:48 +01:00
parent a53d2b1d63
commit cb59c58617
2 changed files with 26 additions and 21 deletions

View File

@ -1,20 +1,23 @@
# SecuBox UI & Theme History
_Last updated: 2026-03-17 (LuCI Metrics Dashboard + WAF hot-reload)_
_Last updated: 2026-03-17 (Metrics Dashboard KISS UI + double-buffer caching)_
0. **LuCI Metrics Dashboard + WAF Hot-Reload (2026-03-17)**
- NEW: `luci-app-metrics-dashboard` package - Real-time system metrics dashboard
- RPCD backend: `luci.metrics` with 9 methods (overview, certs, vhosts, metablogs, streamlits, waf_stats, connections, firewall_stats, all)
- Shows: uptime, memory, load, vHosts, certificates, MetaBlogs, Streamlits, LXC containers
- WAF stats: active bans, alerts today, threats detected, blocked requests
- Connections: HTTP, HTTPS, SSH, total TCP (live counts)
- Service status: HAProxy, mitmproxy, CrowdSec running indicators
- Auto-refresh every 5 seconds via poll.add()
- Menu: Status → Metrics Dashboard
- WAF Filters page: Stats layout changed from 3 boxes to single compact line
- Discovered mitmproxy haproxy_router.py already has hot-reload (checks file mtime every request)
- Updated metablogizerctl to use hot-reload instead of restart for faster publishing
- Fixed HAProxy 503 errors: Disabled health check on mitmproxy backend (mitmproxy returns 404 without valid Host)
0. **LuCI Metrics Dashboard v2 (2026-03-17)**
- NEW: `luci-app-metrics-dashboard` package - Real-time system metrics
- **KISS-styled UI**:
- Card grid with colored stat values (green, cyan, purple, orange)
- Services status bar with glowing dots (HAProxy, WAF, CrowdSec)
- Two-panel layout for WAF/Security and Connections
- Live clock with pulsing indicator, auto-refresh every 5s
- **Double-buffer caching** (per CLAUDE.md pattern):
- Cache: `/tmp/secubox/metrics-cache.json` with 30s TTL
- Cron job refreshes every 30 seconds
- RPCD reads from cache instantly (eliminates XHR timeouts)
- Stats: Uptime, Memory%, vHosts (274), Certs (92), MetaBlogs (127), Streamlits (27), LXC (21)
- WAF Blocked: Counts CrowdSec mitmproxy decisions (1031 blocks)
- WAF Filters page: Stats layout changed to single compact line
- Discovered mitmproxy hot-reload (checks routes file every request)
- Fixed HAProxy 503: Disabled health check on mitmproxy backend
- Cleaned up test sites (testsite, lblstest)
0. **HAProxy/mitmproxy WAF Routing Fix (2026-03-17)**

View File

@ -1,6 +1,6 @@
# Work In Progress (Claude)
_Last updated: 2026-03-17 (LuCI Metrics Dashboard + WAF hot-reload)_
_Last updated: 2026-03-17 (Metrics Dashboard KISS UI + double-buffer caching)_
> **Architecture Reference**: SecuBox Fanzine v3 — Les 4 Couches
@ -10,13 +10,15 @@ _Last updated: 2026-03-17 (LuCI Metrics Dashboard + WAF hot-reload)_
### 2026-03-17
- **LuCI Metrics Dashboard (Complete)**
- **LuCI Metrics Dashboard v2 (Complete)**
- New `luci-app-metrics-dashboard` package with real-time system metrics
- RPCD backend: `luci.metrics` with 9 methods (overview, certs, vhosts, metablogs, streamlits, waf_stats, connections, firewall_stats, all)
- Dashboard shows: uptime, memory, load, vHosts, certificates, MetaBlogs, Streamlits, LXC containers
- WAF stats: active bans, alerts today, threats detected, blocked requests
- Connections: HTTP, HTTPS, SSH, total TCP (live counts)
- Service status: HAProxy, mitmproxy, CrowdSec running indicators
- **KISS-styled UI**: Card grid, colored stat values, services status bar with glowing dots
- **Double-buffer caching**: Cache at `/tmp/secubox/metrics-cache.json` with 30s TTL
- Cron job refreshes cache every 30 seconds (no computation on request)
- Stats: Uptime, Memory%, vHosts (274), SSL Certs (92), MetaBlogs (127), Streamlits (27), LXC (21), TCP Conns
- WAF panel: Active Bans (43), Alerts 24h (44), WAF Blocked (1031 from CrowdSec mitmproxy decisions)
- Connections panel: HTTPS, HTTP, SSH, Total TCP
- Service status: HAProxy, mitmproxy WAF, CrowdSec with live indicators
- Auto-refresh every 5 seconds via poll.add()
- Menu: Status → Metrics Dashboard