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:
Antoine Jacquin
2026-09-13 19:57:09 +02:00
parent dd1aca3cfe
commit e2533bac48
16 changed files with 407 additions and 279 deletions

View File

@ -0,0 +1,37 @@
# docker-compose.webapp.override.yml — EXEMPLE (copier sans le suffixe .example)
#
# NON VERSIONNÉ (ignoré par git) : il vit sur le Pi. Ce fichier démontre la
# config Traefik qui termine le TLS (certificat porté par le proxy) et expose
# la carte en https://<domaine> — contexte sécurisé requis par le bouton ⌖
# (« centrer sur la position GPS » du téléphone).
#
# cp docker-compose.webapp.override.yml.example docker-compose.webapp.override.yml
# # adapter LIDAR_WEBAPP_HOST (et si besoin l'entrypoint / le certresolver)
#
# docker compose ne merge PAS automatiquement un override au nom custom
# (il n'auto-charge que docker-compose.override.yml) : passer -f explicitement.
# docker compose -f docker-compose.webapp.yml \
# -f docker-compose.webapp.override.yml up -d --build
#
# docker compose applique ce fichier par-dessus docker-compose.webapp.yml ;
# il suffit de la clé `labels`, le reste hérite du compose principal. Le
# webapp sert du HTTP ; Traefik y accède via le port 8973 du conteneur.
#
# Le domaine se définit par LIDAR_WEBAPP_HOST (dans un .env à côté du compose
# ou l'environnement) ; défaut lidar.local. Remplacer par le domaine réel, ou
# simplement écrire le domaine en dur dans la règle Host() ci-dessous.
services:
webapp:
labels:
# Activer le provider Docker pour ce conteneur.
- traefik.enable=true
# Router sur le domaine (adapter) vers le service webapp:8973.
- "traefik.http.routers.lidar-webapp.rule=Host(`${LIDAR_WEBAPP_HOST:-lidar.local}`)"
# Entrée HTTPS (443) + TLS avec le certificat porté par Traefik.
- traefik.http.routers.lidar-webapp.entrypoints=websecure
- traefik.http.routers.lidar-webapp.tls=true
# Si un certresolver spécifique (ACME / Let's Encrypt…) plutôt que le
# certificat par défaut du proxy :
# - "traefik.http.routers.lidar-webapp.tls.certresolver=letsencrypt"
# Service explicite vers le conteneur (nom_docker:port) :
# - "traefik.http.services.lidar-webapp.loadbalancer.server.port=8973"