Split webapp for Raspberry Pi deployment, remote generation API and sync

La webapp (carte + vignettes) et la génération de tuiles se déploient sur
deux machines : image légère Dockerfile.webapp (FastAPI + Pillow AVIF
natif + pyproj) sur Raspberry Pi, pipeline complet sur la machine de
traitement. LIDAR_GENERATION_URL délègue /api/generate, /api/preview et
/api/status ; /api/sync ramène les tuiles par rsync puis régénère
vignettes et index localement. Token partagé optionnel
(LIDAR_API_TOKEN/LIDAR_REMOTE_TOKEN). Retire du dépôt les journaux
internes (.swival, audit-findings) et les données (data/, notebooks/).
Doc : docs/DEPLOY_WEBAPP.md.
This commit is contained in:
Antoine Jacquin
2026-09-02 19:44:39 +02:00
parent ed3e90ea89
commit 422f58d772
24 changed files with 2390 additions and 329 deletions

25
run.sh
View File

@ -211,13 +211,22 @@ if [ -n "$FETCH_TILES_ARGS" ]; then
INPUT_RO=""
fi
# Build systématique de l'image avant tout docker run. Le cache Docker rend
# l'opération quasi instantanée si le code n'a pas changé ; en cas d'échec,
# le journal complet est affiché. Ça évite de lancer tests/serveur/pipeline
# sur une image périmée (code baké à la dernière édition).
build_image() {
echo "Mise à jour de l'image Docker (cache)..."
if ! docker build -t "$IMAGE_NAME" "$SCRIPT_DIR" >/tmp/lidar_build.log 2>&1; then
cat /tmp/lidar_build.log >&2
echo "Échec du build de l'image (journal : /tmp/lidar_build.log)" >&2
exit 1
fi
}
# Check for --test flag first
if [ "$TEST_FLAG" -eq 1 ]; then
# Build l'image si elle n'existe pas
if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then
echo "Build de l'image Docker..."
docker build -t "$IMAGE_NAME" "$SCRIPT_DIR"
fi
build_image
echo "============================================"
echo " Tests unitaires LiDAR Pipeline"
echo "============================================"
@ -227,11 +236,7 @@ if [ "$TEST_FLAG" -eq 1 ]; then
exit $?
fi
# Build l'image si elle n'existe pas
if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then
echo "Build de l'image Docker..."
docker build -t "$IMAGE_NAME" "$SCRIPT_DIR"
fi
build_image
# Créer les répertoires s'ils n'existent pas
mkdir -p "$INPUT_DIR" "$OUTPUT_DIR"