Architecture¶
Vue d'ensemble¶
flowchart LR
subgraph Simulateurs
SIM[Simulateur IoT<br/>télémétrie baies]
end
subgraph Transport
BRK[Broker MQTT<br/>Mosquitto mTLS]
end
subgraph Intelligence
WRK[Worker Sécurité<br/>analyse + DeepSeek]
end
subgraph Présentation
DASH[Dashboard<br/>FastAPI + WS]
end
DOCS[Documentation<br/>MkDocs]
SIM -->|publie telemetry| BRK
BRK -->|souscrit| WRK
BRK -->|souscrit| DASH
WRK -->|publie alerts / commands| BRK
BRK -->|commands| SIM
DASH -->|WebSocket / REST| NGNX[Nginx + Let's Encrypt]
NGNX --> WEB[Client web]
DOCS --> NGNX
Flux de données¶
- Le simulateur publie la télémétrie sur
racks/{id}/telemetry(mTLS, QoS 1). - Le worker consomme le flux, constitue une fenêtre glissante par baie et la soumet à l'API DeepSeek (ou à des règles heuristiques locales).
- En cas d'anomalie, le worker publie une alerte sur
alerts/{id}/securityet, si critique, une commande de remédiation surracks/{id}/commands. - Le dashboard s'abonne à la télémétrie et aux alertes, et les expose en temps réel au navigateur via WebSocket.
- Le simulateur applique les commandes de remédiation (réduction de charge, accélération des ventilateurs, cycle d'alimentation).
Conteneurisation¶
La stack est orchestrée par docker-compose.yml avec un réseau dédié
iot-net. Le broker n'est jamais exposé publiquement : seul le dashboard
(127.0.0.1:8400) et la documentation (127.0.0.1:8401) sont accessibles via
le reverse proxy nginx en HTTPS.
Exposition réseau¶
| Domaine | Service | Port interne |
|---|---|---|
iot.belghali.org |
Dashboard | 127.0.0.1:8400 |
docs.iot.belghali.org |
Documentation | 127.0.0.1:8401 |
Le chiffrement TLS est assuré par Let's Encrypt (Certbot) avec renouvellement automatique.