Files
lidar_rendu/webapp-entrypoint.sh
Antoine Jacquin e2533bac48 Centrer la carte sur le GPS du téléphone (HTTPS terminé par le proxy)
Le bouton ⌖ recentre la carte sur la position GPS du téléphone. L'API
Geolocation exige un contexte sécurisé : la webapp sert désormais du HTTP
et le TLS est porté par le reverse proxy (Traefik, labels dans l'override
local) ; le webapp est transparent au proxy (URLs relatives, X-Forwarded-For
pour la restriction LIDAR_REGEN_CIDR). Ajoute le modèle d'override
docker-compose.webapp.override.yml.example, un rebuild d'index à la demande
et met à jour doc/déploiement ; les tuiles sont servies à la demande.
2026-09-13 19:57:09 +02:00

24 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Point d'entrée du conteneur webapp : sert la carte via uvicorn.
#
# HTTPS optionnel (requis pour la géolocalisation GPS depuis un téléphone) :
# si LIDAR_SSL_CERTFILE + LIDAR_SSL_KEYFILE sont définis ET que les fichiers
# existent (certificat auto-signé, cf. ./make-tls-cert.sh), la carte est servie
# en https://<hôte>:PORT et le bouton ⌖ fonctionne sur téléphone. Si les
# variables sont définies mais les fichiers absents (cert non encore généré),
# repli en HTTP avec un avertissement — la carte reste consultable, seul le
# GPS est indisponible.
set -euo pipefail
PORT="${LIDAR_PORT:-8973}"
SSL_ARGS=()
if [ -n "${LIDAR_SSL_CERTFILE:-}" ] && [ -n "${LIDAR_SSL_KEYFILE:-}" ]; then
if [ -f "${LIDAR_SSL_CERTFILE}" ] && [ -f "${LIDAR_SSL_KEYFILE}" ]; then
echo "Webapp servie en HTTPS (certificat ${LIDAR_SSL_CERTFILE}) — GPS actif sur téléphone"
SSL_ARGS=(--ssl-certfile "${LIDAR_SSL_CERTFILE}" --ssl-keyfile "${LIDAR_SSL_KEYFILE}")
else
echo "Avertissement : certificats TLS absents (${LIDAR_SSL_CERTFILE} / ${LIDAR_SSL_KEYFILE}) — service en HTTP." >&2
echo "Générer le certificat puis relancer : ./make-tls-cert.sh && docker compose up -d --build" >&2
fi
fi
exec python3 -m uvicorn lidar_pipeline.webapp:app --host 0.0.0.0 --port "${PORT}" ${SSL_ARGS[@]+"${SSL_ARGS[@]}"}