Add serve-webapp.sh to manage the webapp stack on the lightweight machine

Single command to start the interactive map container in the background
(auto-restart after reboot), with stop/restart/status/sync/logs/update
subcommands. Configuration lives in webapp.env (template provided,
git-ignored): remote generation URL, shared token, rsync cache command,
periodic sync and allowed network. The SSH key is mounted automatically
for rsync, port conflicts are detected before launch, and update pulls the
repo, rebuilds the image and restarts.

Deploy doc updated: the script is now the recommended install path on the
Raspberry Pi, alongside run.sh (foreground) and docker compose.
This commit is contained in:
Antoine Jacquin
2026-09-04 21:48:35 +02:00
parent 23969c9e14
commit 8e1087b12b
5 changed files with 251 additions and 15 deletions

25
webapp.env.example Normal file
View File

@ -0,0 +1,25 @@
# Configuration de la stack webapp — copier en webapp.env et adapter.
# webapp.env est ignoré par git (jetons, chemins locaux).
# Syntaxe shell simple : KEY=valeur (les valeurs avec espaces entre guillemets).
# Port hôte de la carte (défaut 8973)
#WEBAPP_PORT=8973
# Machine de traitement (service worker de docker-compose.worker.yml).
# Commenté : consultation autonome du cache local, aucune génération.
#LIDAR_GENERATION_URL=http://192.168.1.50:8973
# Jeton partagé si la machine de traitement définit LIDAR_API_TOKEN
#LIDAR_REMOTE_TOKEN=un-secret-à-partager
# rsync qui ramène les tuiles traitées vers le cache local.
# Les vignettes (index_thumbs/, index_subtiles/) sont régénérées localement,
# ne pas les synchroniser.
#LIDAR_SYNC_CMD="rsync -a --delete --exclude=*.tif --exclude=.generation* --exclude=index_thumbs --exclude=index_subtiles lidar@192.168.1.50:/srv/lidar/output/ /data/output/"
# Cache auto-entretenu : resync + vignettes toutes les N secondes (0 = off)
#LIDAR_AUTO_SYNC_SECONDS=600
# Réseau autorisé à lancer les générations depuis la carte
# (défaut 192.168.1.0/24 ; vide pour lever la restriction)
#LIDAR_REGEN_CIDR=192.168.1.0/24