How azamalicodes/container-optimization-cybersecurity-platform works
This repository optimizes and operates a cybersecurity learning platform that provisions isolated attacker–target container pairs, exposes session and benchmark APIs, and includes multi-host placement and monitoring. The principal workflow is learner → API → provisioning → Docker pair, with status and teardown through the API. Benchmark runs are also API-triggered. The README documents the main provisioning and benchmark relationships; the sampled agent and scheduler source establishes their interactions. Monitoring and some image details are represented from the tree and README, so their links are omitted where wiring was not shown.
Main entry points: api.js Session API · provision.sh Pair Provisioning · measure-live.sh Live Measurement · host-agent.js Host Agent
Components 18
Session Platform
- Session API
orchestrator/api.js - HTTP Shim
orchestrator/lib/http_shim.js - Pair Provisioning
orchestrator/provision.sh - Lab Configs
lab-configs - Idle Reaper
orchestrator/reaper.sh
Container Images
- Shared Base Image
images/base/Dockerfile - Target Image
images/target/Dockerfile - Tool Bundles
images/bundles
Measurement
- Benchmark API
orchestrator/api.js - Live Measurement
benchmark/measure-live.sh - Capacity Model
benchmark/model.py
Multi-host Scaling
- Host Agent
orchestrator/host-agent.js - Placement Scheduler
orchestrator/scheduler.js
Observability
- Prometheus Config
monitoring/prometheus.yml - Session Alerts
monitoring/rules/session-alerts.yml - Grafana Dashboard
monitoring/grafana/dashboards/sessions.json
Other components
- Learner / Client
- Docker Engine
Connections 18
- Learner / Client → Session API: requests sessions
README.md - Session API → HTTP Shim: uses router
orchestrator/api.js - Session API → Pair Provisioning: starts provisioning
README.md - Session API → Docker Engine: inspects and removes
orchestrator/api.js - Pair Provisioning → Docker Engine: creates pair
README.md - Pair Provisioning → Lab Configs: reads lab settings
README.md - Idle Reaper → Docker Engine: reaps idle sessions
- Docker Engine → Shared Base Image: runs images
README.md - Docker Engine → Target Image: runs images
README.md - Docker Engine → Tool Bundles: runs images
README.md - Learner / Client → Benchmark API: requests metrics
README.md - Benchmark API → Live Measurement: spawns measurement
README.md - Live Measurement → Docker Engine: measures containers
README.md - Live Measurement → Capacity Model: models capacity
- Host Agent → Placement Scheduler: registers and reports
orchestrator/host-agent.js - Host Agent → Pair Provisioning: provisions locally
orchestrator/host-agent.js - Prometheus Config → Session Alerts: evaluates rules
- Grafana Dashboard → Prometheus Config: queries metrics