L'interface webapp ne peut plus rester silencieusement périmée
La webapp légère bâchait app.js/app.css dans l'image au build : après une évolution de l'interface, le Pi servait l'ancienne carte sans aucun signal (tuiles invisibles, vieux fichiers). Désormais l'interface embarque sa version (hash CSS+JS) que le serveur de données publie via /api/tiles : en cas de divergence, bandeau « interface périmée » dans la carte + log d'alerte côté webapp. Les assets sont servis en revalidation (jamais immutable) et une page ouverte depuis plus de 15 min se recharge seule au retour au premier plan — l'ancienne interface n'est plus jamais affichée après un déploiement.
This commit is contained in:
@ -302,6 +302,22 @@ Avec `run.sh --serve-webapp`, l'image est reconstruite automatiquement à
|
||||
chaque lancement ; il suffit de relancer la commande. Le cache de tuiles
|
||||
(`output/`) n'est pas affecté par les mises à jour d'image.
|
||||
|
||||
### Interface de la carte : version embarquée
|
||||
|
||||
Les CSS/JS de l'interface sont **bâchés dans l'image** au build
|
||||
(`Dockerfile.webapp`) : une évolution de l'interface (`lidar_pipeline/index.py`)
|
||||
ne s'applique sur le Pi qu'après rebuild de l'image. Le décalage est détecté
|
||||
automatiquement plutôt que de rester silencieux (tuiles invisibles) :
|
||||
|
||||
- l'interface embarque sa version (`ui_version` = hash CSS+JS source) et
|
||||
compare à celle du serveur de données (`/api/tiles` → `ui_version`,
|
||||
publiée dans `index_tiles.json` par le worker) : en cas de divergence,
|
||||
un **bandeau rouge « Interface périmée »** s'affiche en haut de la carte ;
|
||||
- la webapp consigne un avertissement une fois par paire de versions :
|
||||
`Interface webapp périmée (webapp X, serveur Y) — reconstruire l'image`.
|
||||
|
||||
Réparation : `git pull` + rebuild de l'image (ci-dessus).
|
||||
|
||||
## Dépannage
|
||||
|
||||
- **État d'un rebuild** : `curl http://<ip-pi>:8973/api/sync` → `running`,
|
||||
@ -324,6 +340,10 @@ chaque lancement ; il suffit de relancer la commande. Le cache de tuiles
|
||||
`"running": false`, ou `./serve-webapp.sh status`) puis recharger la
|
||||
page ; le bouton ↻ de la carte enchaîne sync + vignettes
|
||||
automatiquement.
|
||||
- **Bandeau « Interface périmée » en haut de la carte** (ou tuiles invisibles
|
||||
sans explication) : l'image webapp est plus ancienne que l'interface du
|
||||
worker (assets bâchés au build). Réparer : `git pull` +
|
||||
`docker compose -f docker-compose.webapp.yml up -d --build` sur le Pi.
|
||||
- **Port 8973 déjà pris** : `WEBAPP_PORT=9000 ./serve-webapp.sh` (ou la
|
||||
variable dans `webapp.env`), `--serve-webapp 9000` avec `run.sh`, ou
|
||||
changer le mapping `ports:` en compose (le conteneur écoute toujours sur
|
||||
|
||||
Reference in New Issue
Block a user