Five purpose-built tools for Network Operations Centers. Unified incident management, infrastructure monitoring, event correlation, network speed testing & diagnostics, and AI-powered automation — all in one containerized platform deployable in minutes on any OS.
Five purpose-built applications that work independently or together as a unified NOC platform. Each ships as a Docker-ready service with shared auth, cross-app integrations, and a unified cyberpunk UI.
Every capability built for production NOC environments from day one — no bolt-ons required, no workarounds.
{{service}} {{brief}} {{details}} {{history}}{{bridge_info}} {{update_frequency}}no_ack — not acknowledged within thresholdstill_open — not resolved within thresholdnotify_group — send to recipient groupnotify_channel — post to Slack or Teams./scripts/backup.sh (DB dump + storage)./scripts/restore.sh [backup-name]./scripts/healthcheck.sh/healthz and /readyz endpointsFive Docker containers on a shared bridge network. Every service is health-checked, volume-persisted, and cross-platform deployable in a single command.
db, ws-server, worker. Only three ports are host-exposed: 4004 (web), 8081 (WebSocket), 6006 (Adminer). MariaDB port 3306 is strictly internal — never reachable from outside the Docker network../data/db → MariaDB data directory, survives docker compose down. ./data/storage → web file uploads and CSV exports. ./scripts/init.sql and seed.sql are entrypoint-mounted for first-run schema creation and Star Wars demo data seeding.Authorization: Bearer <JWT> RS256, 24h expiry · X-API-Token bcrypt-verified · Scoped API keys with expiry and per-key permissions.Complete REST API with three authentication methods, full CRUD operations, inbound webhook parsers for six monitoring platforms, Flux Speed network diagnostics endpoints, Flux AI intelligence endpoints, and Prometheus-format metrics.
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| Authentication | |||
| POST | /api/auth/login | Authenticate user credentials, returns JWT token | — |
| Incidents | |||
| GET | /api/incidents | List incidents — filterable by severity, status, service keyword | Bearer / Token |
| POST | /api/incidents | Create new incident thread with service, severity, title, and details | Bearer / Token |
| POST | /api/incidents/{id}/acknowledge | Acknowledge an open incident with optional acknowledgment note | Bearer / Token |
| Messages & Recipients | |||
| POST | /api/messages | Send notification on existing thread — queued for async delivery | Bearer / Token |
| GET | /api/recipients | List all recipients with group membership details | Bearer / Token |
| GET | /api/groups | List recipient groups with member counts | Bearer / Token |
| GET | /api/templates | List message templates filtered by type and channel | Bearer / Token |
| GET | /api/reports | Delivery stats, MTTR by severity, SLA compliance data | Admin |
| System | |||
| POST | /api/system-test | Probe all 8 components: DB, WebSocket, SMTP, Slack, Teams, AWS SNS, Twilio, Worker | Admin |
| GET | /healthz | Liveness check — returns HTTP 200 if web container is running | — |
| GET | /readyz | Readiness check — returns 200 only if DB connection and worker heartbeat are healthy | — |
| GET | /metrics | Prometheus-format metrics — queue depth, delivery counts, error rates, worker status | Token |
| GET | /status.json | Public-facing service health summary in JSON | — |
| Inbound Webhook Parsers — Monitoring Platform Integrations | |||
| POST | /api/inbound/datadog | Datadog alert webhook → auto-create or auto-resolve incident thread via alert_type + service tags | X-API-Key |
| POST | /api/inbound/grafana | Grafana alert → evalMatches parsed, alert state mapped to P1–P4 severity | X-API-Key |
| POST | /api/inbound/cloudwatch | AWS CloudWatch alarm via SNS envelope — alarm name, state, affected dimensions extracted | X-API-Key |
| POST | /api/inbound/splunk | Splunk saved search alert — result name, count, and severity field parsed | X-API-Key |
| POST | /api/inbound/prometheus | Prometheus AlertManager — labels and annotations mapped to thread fields, auto-resolves on firing=false | X-API-Key |
| POST | /api/inbound | Generic webhook — accepts title, brief, service, severity, details fields from any source | X-API-Key |
| Flux Speed — Network Tests & Diagnostics | |||
| POST | /api/speed/test | Trigger an on-demand speedtest — specify target, protocol (TCP/UDP), and test duration | Bearer / Token |
| GET | /api/speed/results | List test results — filterable by node, target, date range, and test type | Bearer / Token |
| GET | /api/speed/results/{id} | Get full detail for a single test run including per-second throughput samples | Bearer / Token |
| POST | /api/speed/trace | Run a traceroute/MTR path analysis to a target — returns hop list with latency and loss per hop | Bearer / Token |
| POST | /api/speed/probe | TCP/UDP port reachability probe — returns open/closed status and connection time in ms | Bearer / Token |
| POST | /api/speed/dns | DNS resolution timing test — measures lookup time across configured resolvers | Bearer / Token |
| GET | /api/speed/nodes | List registered test agents with status, location, last-seen, and capability flags | Bearer / Token |
| GET | /api/speed/schedules | List scheduled test jobs with interval, target, node assignment, and last result | Bearer / Token |
| POST | /api/speed/schedules | Create a new scheduled test job — define target, interval, thresholds, and alert routing | Admin |
| GET | /api/speed/report | Generate summary report — avg/P95 throughput and latency over a date range, per node or target | Bearer / Token |
| Flux AI — Intelligence & Automation | |||
| POST | /api/ai/triage | Triage an alert payload — returns AI-assigned severity, natural language summary, runbook matches, and confidence score | Bearer / Token |
| GET | /api/ai/triage/feed | List recent auto-triage results with AI summaries, severity assignments, and matched runbooks | Bearer / Token |
| POST | /api/ai/chat | Send a natural language message to the NOC chatbot — returns AI response with live incident context | Bearer / Token |
| GET | /api/ai/anomalies | List active anomaly signals with deviation score, baseline delta, detection method, and linked incidents | Bearer / Token |
| POST | /api/ai/rca | Initiate root cause analysis for an incident ID — async job, returns job ID for polling | Bearer / Token |
| GET | /api/ai/rca/{job_id} | Poll RCA job status and retrieve causal chain findings with evidence scores when complete | Bearer / Token |
| POST | /api/ai/postmortem | Generate post-mortem draft for an incident ID — routed to Claude API, returns structured sections | Bearer / Token |
| GET | /api/ai/runbooks/suggest | Get top runbook suggestions for an incident ID — returns up to 3 matches with confidence percentages | Bearer / Token |
| GET | /api/ai/capacity | Get capacity forecast — projected breach dates per resource (CPU, disk, mem, bandwidth) with confidence ranges | Bearer / Token |
| GET | /api/ai/providers | List AI provider status, uptime, request counts, avg latency, and cost metrics for Ollama and Claude API | Admin |
POST /api/auth/login. Best for interactive sessions and user-context API calls.Flux Suite connects to the platforms your team already uses — for alert ingestion, notification delivery, metrics collection, and operational visibility.
Zero to operational in under 10 minutes on any platform. Cross-platform startup scripts included. All persistent data lives in bind-mounted volumes — never inside containers.
start.bat
chmod +x start.sh && ./start.sh
./start.sh
docker compose up -d
helm install flux-suite ./charts/flux-suite
docker compose up -d — start all 5 servicesdocker compose down — stop, data preserveddocker compose down -v — stop + delete all volumesdocker compose restart — restart all servicesdocker compose restart web — restart single servicedocker compose pull — pull latest image versions./scripts/backup.sh — full DB dump + storage tar./backups/ with datetime stamp./scripts/restore.sh [backup-name] — restore./scripts/healthcheck.sh — probe all servicesdown -v → rm -rf data/db/* → up -d./data/db and ./data/storagedocker compose logs -f — stream all container logsdocker compose logs -f worker — worker-only logsGET /healthz — container liveness (HTTP 200)GET /readyz — readiness: DB connection + worker aliveGET /metrics — Prometheus scrape endpointGET /status.json — public JSON service status