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.
24 lines
1.3 KiB
Bash
Executable File
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[@]}"}
|