mirror of
https://github.com/CyberMind-FR/secubox-deb.git
synced 2026-07-29 18:36:55 +00:00
Some checks are pending
License Headers / check (push) Waiting to run
* feat(toolbox): arcade-HUD transparency banner redesign + responsive close-X fix Redesign both MITM transparency-banner renderers into a C3BOX arcade-HUD "scoreboard" skin and fix the phone bug where the close X dropped off-screen. Structural responsive fix (both renderers): three flex clusters — LEFT rank pinned (flex:0 0 auto), MIDDLE evidence flex:1 1 auto;min-width:0;overflow-x:auto (scrolls instead of pushing), RIGHT report+close pinned (flex:0 0 auto) so the close X is always visible; box-sizing:border-box added. bundle.py _BANNER_CORE (primary R3 renderer): still built entirely via the mk() DOM API (no innerHTML — Trusted-Types/strict-CSP invariant kept). Tier-accent palette (r0 gold..r4 pink) drives border/glow/rank chip/level switch; evidence + Tor/Ad-Guard toggles + live sbx-trk/sbx-ck counts become neon pills; one scoped prefers-reduced-motion <style> for sheen/hover. All ids, toggles, csp proof, un-hideable styles, SPA re-assert preserved. inject_banner.py _banner_html_dynamic (secondary addon renderer): same look + three-cluster fix; keeps grade shield + geo pills, _LEVEL_THEME, _GUARD, NCR ascii-encodability, gondwana-mitm-banner id, JS-path close moved to right cluster. Tests updated to the new structure; invariants still asserted (no innerHTML, ids, toggles, ascii-encodability, dismiss control in right cluster). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(nginx): revalidate luci-static assets (Cache-Control no-cache) so webui updates aren't cached stale * docs: spec — activate Sentinel + surface on WebUI tab, kbin report, PDF (ref #823) * docs: implementation plan — Sentinel activation + 3 ToolBoX surfaces (ref #823) * feat(sentinel): add mac filter to /verdicts status endpoint (ref #823) * feat(toolbox): sentinel_link — fail-safe daemon fetch + compromise assess (ref #823) * fix(toolbox): harden sentinel_link int coercions to never raise (ref #823) * feat(toolbox): /admin/sentinel/{stats,verdicts} fleet proxy routes (ref #823) * fix(toolbox): guard /admin/sentinel/stats against non-numeric daemon values (ref #823) * feat(toolbox): WebUI Sentinelle fleet tab (evaluation + detections) (ref #823) * feat(toolbox): fold per-device Sentinel detections into build_report_data (ref #823) * feat(toolbox): kbin report per-device Compromission tab (ref #823) * feat(toolbox): wire per-device Sentinel data into live HTML report render (ref #823) * fix(toolbox): report-live tab must render when report var is absent (ref #823) * feat(toolbox): PDF + text-fallback Sentinel compromise section (ref #823) * docs: GPT demo prompt for kbin Sentinel augmentation (ref #823) * fix(toolbox): sentinel never-raise on non-dict daemon rows + guard ts render (ref #823) --------- Co-authored-by: CyberMind-FR <gandalf@Gk2.net> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
76 lines
2.4 KiB
Plaintext
76 lines
2.4 KiB
Plaintext
server {
|
|
listen 0.0.0.0:9080;
|
|
root /usr/share/secubox/www;
|
|
index index.html;
|
|
|
|
# Revalidate versioned webui assets so a package deploy is picked up
|
|
# immediately (ETag makes revalidation a cheap 304). Without this, browsers
|
|
# heuristically cache luci-static JS/CSS and serve a stale UI after updates.
|
|
location ^~ /luci-static/ {
|
|
add_header Cache-Control "no-cache" always;
|
|
try_files $uri =404;
|
|
}
|
|
|
|
location / {
|
|
try_files $uri $uri/ /index.html;
|
|
}
|
|
|
|
location /api/ {
|
|
proxy_pass http://127.0.0.1:8001;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
}
|
|
|
|
location /shared/ {
|
|
alias /usr/share/secubox/www/shared/;
|
|
}
|
|
|
|
# CrowdSec Dashboard static files
|
|
location /crowdsec/ {
|
|
alias /usr/share/secubox/www/crowdsec/;
|
|
index index.html;
|
|
try_files $uri $uri/ /crowdsec/index.html;
|
|
}
|
|
|
|
# CrowdSec API proxy
|
|
location /api/v1/crowdsec/ {
|
|
proxy_pass http://unix:/run/secubox/crowdsec.sock:/;
|
|
include /etc/nginx/snippets/secubox-proxy.conf;
|
|
}
|
|
|
|
# WAF Dashboard static files
|
|
location /waf/ {
|
|
alias /usr/share/secubox/www/waf/;
|
|
index index.html;
|
|
try_files $uri $uri/ /waf/index.html;
|
|
}
|
|
|
|
# WAF API proxy
|
|
location /api/v1/waf/ {
|
|
proxy_pass http://unix:/run/secubox/waf.sock:/;
|
|
include /etc/nginx/snippets/secubox-proxy.conf;
|
|
}
|
|
|
|
# System Hub Dashboard static files
|
|
location /system/ {
|
|
alias /usr/share/secubox/www/system/;
|
|
index index.html;
|
|
try_files $uri $uri/ /system/index.html;
|
|
}
|
|
|
|
# System Hub API proxy
|
|
location /api/v1/system/ {
|
|
proxy_pass http://unix:/run/secubox/system.sock:/;
|
|
include /etc/nginx/snippets/secubox-proxy.conf;
|
|
}
|
|
|
|
# #65: per-module routes self-register here. Every module package drops a
|
|
# /etc/nginx/secubox-routes.d/<module>.conf (location-only snippet) at
|
|
# install time, so a newly added module's /<module>/ + /api/v1/<module>/
|
|
# routes are picked up automatically — no more hand-editing this file per
|
|
# module. This is the ACTIVE include (matches the deployed webui.conf).
|
|
# The crowdsec/waf/system blocks above stay hardcoded: those core packages
|
|
# only ship the legacy secubox.d/ snippet, so they would NOT duplicate here.
|
|
include /etc/nginx/secubox-routes.d/*.conf;
|
|
}
|