Vai al contenuto

Pannello MDM (mdm_web_panel)

Interfaccia web interna (Flutter web) per installare, configurare, monitorare e comandare i box. Parla solo con il midserver.

Dove gira

Ambiente Indirizzo Versione Come arriva
Prod panel.bsqdev.uk (via Cloudflare → NPM su ServerIT → container panel porta 3000) mdm_panel:1.8.0 da ECR pull manuale sul server
Dev mdm.dev.midpanel.bsqdev.uk (Coolify dev) branch dev build da git su Coolify

Build

CodeBuild mdm-installation-mdm-panel-build-main, attivato da EventBridge a ogni push su main: compila Flutter, crea l'immagine e la carica su ECR (mdm8670650/installation/mdm_panel:<VERSION>). Non c'è deploy automatico: in prod si fa docker pull e si riavvia il container.

La configurazione (URL delle API, OME, BSQ, Grafana) è dentro l'immagine al momento della build (FLUTTER_TARGET=lib/main_prod.dart, config/production.json): serve un'immagine diversa per ogni ambiente (M13). L'ambiente si sceglie con la variabile di build FLUTTER_TARGET (argomento del Dockerfile, predefinito lib/main_prod.dart): ogni lib/main_<ambiente>.dart carica il proprio config/<ambiente>.json. Su Coolify dev la risorsa MDM-Midpanel / dev ha FLUTTER_TARGET=lib/main_dev.dart (variabile di build, verificato il 28/10), quindi usa config/development.json. In prod la voce Grafana punta a un IP privato in HTTP che non funziona (M12).

Funzioni principali

Elenco installazioni con stato, nuove installazioni e completamento registrazione, configurazione box e detector, telecamere e privacy mode, live stream (OME), suoni e configurazione audio, inserimento/disinserimento, riavvio di box/Frigate/wrapper, backup e restore configurazione, aggiornamento software, log e errori delle richieste, informazioni cliente da BSQ.

Il login (POST /auth/login/) va all'API BSQ, non al midserver.

Compatibilità con la v3 del midserver

44 delle 56 chiamate del pannello esistono nella v3. Le mancanti e gli interventi previsti sono in parita-midserver-v3.md. Sul Coolify dev il pannello punta già alla v3, quindi quelle funzioni oggi non funzionano in dev.

Codice morto

  • La pagina /stream e le chiamate /signaling/* (vecchio WebRTC): nessuna pagina ci arriva. Da rimuovere.
  • POST /request/call e POST /installation/connect/scp: zero chiamate negli ultimi 30 giorni in prod. Candidati alla rimozione.