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.
This commit is contained in:
23
webapp-entrypoint.sh
Executable file
23
webapp-entrypoint.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/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[@]}"}
|
||||
Reference in New Issue
Block a user