Aller au contenu

Réseau & HTTPS

Coordinateur ESP32 = WiFi AP (192.168.4.1)
├── Tablette (WiFi client, HTTPS)
└── Dispositifs (ESP-NOW direct)
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)

Toute la communication HTTP/WebSocket utilise HTTPS par défaut. Caddy gère automatiquement la génération et le renouvellement des certificats TLS.

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.

AspectDétail
Reverse proxyCaddy termine le TLS et proxifie vers FastAPI (HTTP interne)
CertificatsAuto-signés, générés automatiquement par Caddy
ValiditéRenouvellement automatique
SANIP locale de la machine, localhost, *.local

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).

PlateformeProcédure
WindowsDouble-cliquer → Installer → Ordinateur local → Autorités racines de confiance
macOSDouble-cliquer → Trousseau → Toujours approuver
iOSRéglages → Général → Profil → Installer, puis Réglages → Général → Informations → Réglages des certificats → Activer
AndroidParamètres → Sécurité → Installer un certificat → Certificat CA
Linuxsudo 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.

Le port 80 sert deux fonctions :

  1. Téléchargement du CA : GET /ca.crt retourne le certificat
  2. Redirection 301 : toute autre requête redirige vers HTTPS (port 443)

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é

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

Le bus MQTT est le canal de communication principal entre les services Docker et les clients :

TopicUsage
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
ÉquipementIP
SimServer (AP)192.168.4.1
CoordinateurDHCP (192.168.4.x)
TabletteDHCP (192.168.4.x)
Caméras PoERéseau local (DHCP ou IP fixe)
ServicePortProtocole
Interface web SimStudio443HTTPS (via Caddy)
Redirection + CA cert80HTTP (Caddy)
WebSocket (temps réel)443WSS (WebSocket natif, via Caddy)
MQTT (clients internes)1883MQTT
MQTT (WebSocket)9001MQTT over WebSocket
go2rtc (WebRTC/API)1984HTTP (interne)
RTMP (caméras smartphone)1935RTMP
RTSP caméras8554RTSP (via go2rtc)
ONVIF discovery3702UDP
Fenêtre de terminal
# Démarrer la stack complète
docker compose up -d
# Vérifier l'état des services
docker compose ps
# Voir les logs de Caddy (TLS, proxy)
docker compose logs caddy
# Voir les logs MQTT
docker compose logs mosquitto
# Redémarrer un service
docker compose restart studio
# Mettre à jour et redémarrer
docker compose pull && docker compose up -d