Réseau & HTTPS
Architecture
Section intitulée « Architecture »Sans SimServer
Section intitulée « Sans SimServer »Coordinateur ESP32 = WiFi AP (192.168.4.1)├── Tablette (WiFi client, HTTPS)└── Dispositifs (ESP-NOW direct)Avec SimServer
Section intitulée « Avec SimServer »Machine hôte SimServer = WiFi AP (hostapd)├── Coordinateur ESP32 (WiFi client)├── Tablette SimPilot (WiFi client, HTTPS)├── SimPilot servie par SimServer (/pilot/)├── Dispositifs → ESP-NOW → ESP32-S3 USB bridge → USB série → machine hôte├── Caméras PoE (Ethernet via switch PoE externe, optionnel)└── MQTT (Mosquitto, bus de messages interne et nodes)HTTPS & Certificats TLS
Section intitulée « HTTPS & Certificats TLS »Toute la communication HTTP/WebSocket utilise HTTPS par défaut. Caddy gère automatiquement la génération et le renouvellement des certificats TLS.
TLS automatique via Caddy
Section intitulée « TLS automatique via Caddy »Caddy génère automatiquement des certificats auto-signés pour les adresses IP locales et les noms de domaine .local. Aucune commande manuelle n’est nécessaire : le conteneur Docker Caddy s’en charge au démarrage.
| Aspect | Détail |
|---|---|
| Reverse proxy | Caddy termine le TLS et proxifie vers FastAPI (HTTP interne) |
| Certificats | Auto-signés, générés automatiquement par Caddy |
| Validité | Renouvellement automatique |
| SAN | IP locale de la machine, localhost, *.local |
Installation du CA sur les appareils
Section intitulée « Installation du CA sur les appareils »Le certificat CA de Caddy est téléchargeable à http://<ip-simstudio>/ca.crt (servi en HTTP sur le port 80 pour permettre le téléchargement sans avertissement).
| Plateforme | Procédure |
|---|---|
| Windows | Double-cliquer → Installer → Ordinateur local → Autorités racines de confiance |
| macOS | Double-cliquer → Trousseau → Toujours approuver |
| iOS | Réglages → Général → Profil → Installer, puis Réglages → Général → Informations → Réglages des certificats → Activer |
| Android | Paramètres → Sécurité → Installer un certificat → Certificat CA |
| Linux | sudo cp ca.crt /usr/local/share/ca-certificates/ && sudo update-ca-certificates |
Une seule installation par appareil : une fois le CA installé, tous les services KerSim (SimServer, coordinateur) sont automatiquement reconnus.
Redirection HTTP → HTTPS
Section intitulée « Redirection HTTP → HTTPS »Le port 80 sert deux fonctions :
- Téléchargement du CA :
GET /ca.crtretourne le certificat - Redirection 301 : toute autre requête redirige vers HTTPS (port 443)
WiFi AP (hostapd)
Section intitulée « WiFi AP (hostapd) »SimServer peut utiliser un adaptateur WiFi de la machine hôte pour créer un point d’accès :
- SSID configurable (défaut :
KerSim-KIT1) - WPA3 ou WPA2
- Canal automatique
- DHCP intégré
ESP-NOW USB bridge
Section intitulée « ESP-NOW USB bridge »Un ESP32-S3 USB bridge (PCB 2 couches, ~5 EUR, USB-C) se branche sur un port USB de la machine hôte :
- Reçoit les messages ESP-NOW des dispositifs
- Les transmet à la machine hôte via USB série
- Permet la communication directe sans passer par le coordinateur
MQTT (Eclipse Mosquitto)
Section intitulée « MQTT (Eclipse Mosquitto) »Le bus MQTT est le canal de communication principal entre les services Docker et les clients :
| Topic | Usage |
|---|---|
sim/vitals/# | Paramètres vitaux temps réel |
sim/scenario/# | État et transitions du scénario |
sim/nodes/# | État des nodes ESP32 |
sim/cameras/# | État des caméras |
sim/events/# | Événements de simulation |
Adressage IP
Section intitulée « Adressage IP »| Équipement | IP |
|---|---|
| SimServer (AP) | 192.168.4.1 |
| Coordinateur | DHCP (192.168.4.x) |
| Tablette | DHCP (192.168.4.x) |
| Caméras PoE | Réseau local (DHCP ou IP fixe) |
Ports utilisés
Section intitulée « Ports utilisés »| Service | Port | Protocole |
|---|---|---|
| Interface web SimStudio | 443 | HTTPS (via Caddy) |
| Redirection + CA cert | 80 | HTTP (Caddy) |
| WebSocket (temps réel) | 443 | WSS (WebSocket natif, via Caddy) |
| MQTT (clients internes) | 1883 | MQTT |
| MQTT (WebSocket) | 9001 | MQTT over WebSocket |
| go2rtc (WebRTC/API) | 1984 | HTTP (interne) |
| RTMP (caméras smartphone) | 1935 | RTMP |
| RTSP caméras | 8554 | RTSP (via go2rtc) |
| ONVIF discovery | 3702 | UDP |
Commandes utiles
Section intitulée « Commandes utiles »# Démarrer la stack complètedocker compose up -d
# Vérifier l'état des servicesdocker compose ps
# Voir les logs de Caddy (TLS, proxy)docker compose logs caddy
# Voir les logs MQTTdocker compose logs mosquitto
# Redémarrer un servicedocker compose restart studio
# Mettre à jour et redémarrerdocker compose pull && docker compose up -d