No description
- /api/events: detect discrete DDoS bursts from VictoriaMetrics (start/stop, duration, peak) over 48h; UI lists them, click one to report on that window. - Reports saved per event (deterministic id) so they're reused; regenerate overwrites. - Source enrichment: server-vs-home (managebot hosting keywords), traffic share %, reputation = Spamhaus ASN-DROP + AbuseIPDB (when ABUSEIPDB_KEY set). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| web | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| events.go | ||
| go.mod | ||
| hosting.go | ||
| main.go | ||
| README.md | ||
| reputation.go | ||
| spa.go | ||
ddos-ui
Dashboard for the ircforever DDoS incident reports — a single Go binary that
embeds a Svelte SPA, authenticates staff via Logto (OIDC), and generates
reports by calling the on-box provision-agent's /ddos/report endpoint
(bearer auth), enriching source IPs with geo/ASN intel (ip-api) and persisting
each report to disk.
Runs on the VPS behind Traefik at https://ddos.ircforever.org.
Layout
main.go— HTTP server, OIDC (Logto) sessions,/api/*handlersspa.go— embeds and servesweb/distweb/— Vite + Svelte 5 SPADockerfile— multi-stage (bun builds SPA → Go builds binary → distroless)
Config (env)
OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_REDIRECT_URL,
OIDC_POST_LOGOUT_URL, OIDC_SESSION_SECRET, PROVISION_URL,
PROVISION_TOKEN, REPORTS_DIR, HTTP_ADDR.
Build & run
docker build -t ddos-ui:latest .
docker run --env-file ddos-ui.env -v ./reports:/data/reports -p 8080:8080 ddos-ui:latest