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.
54 lines
1.8 KiB
JSON
54 lines
1.8 KiB
JSON
# Webapp légère (carte interactive + vignettes) — Raspberry Pi / ARM64.
|
|
#
|
|
# Sert la carte, régénère index/vignettes/sous-tuiles localement et délègue
|
|
# la génération de tuiles (PDAL/GPU) à la machine de traitement via
|
|
# LIDAR_GENERATION_URL — cf. docs/DEPLOY_WEBAPP.md.
|
|
#
|
|
# Build sur la machine cible (multi-plateforme natif) :
|
|
# docker build -f Dockerfile.webapp -t lidar-webapp .
|
|
FROM python:3.12-slim
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV TZ=Europe/Paris
|
|
|
|
# Client SSH : inspection/accès à la machine de traitement si besoin. La
|
|
# clé se monte dans /home/lidar/.ssh. Les tuiles étant servies à la demande
|
|
# (plus de rsync dans l'image), seul le client SSH est conservé.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
openssh-client \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
# Dépendances de la seule interface : FastAPI/uvicorn (serveur), Pillow
|
|
# (vignettes + sous-tuiles AVIF — natif depuis la 11.3, wheels ARM64
|
|
# incluses), pyproj (géoréférencement léger, sans GDAL).
|
|
RUN pip3 install --no-cache-dir \
|
|
fastapi \
|
|
uvicorn \
|
|
"pillow>=11.3" \
|
|
pyproj
|
|
|
|
# Code : webapp.py + index.py seulement utilisés — les modules de traitement
|
|
# (dtm, visualizations...) sont copiés mais jamais importés par la webapp.
|
|
COPY lidar_pipeline/ ./lidar_pipeline/
|
|
COPY webapp-entrypoint.sh /webapp-entrypoint.sh
|
|
|
|
RUN groupadd -g 1000 lidar && \
|
|
useradd -u 1000 -g lidar -m -s /bin/bash lidar && \
|
|
mkdir -p /data/output /data/input && \
|
|
chown -R lidar:lidar /data && \
|
|
chmod +x /webapp-entrypoint.sh
|
|
|
|
ENV LIDAR_INPUT_DIR=/data/input \
|
|
LIDAR_OUTPUT_DIR=/data/output \
|
|
LIDAR_PORT=8973
|
|
|
|
USER lidar
|
|
|
|
EXPOSE 8973
|
|
|
|
# Sert en HTTP, ou en HTTPS si LIDAR_SSL_CERTFILE + LIDAR_SSL_KEYFILE sont
|
|
# définis (requis pour la géolocalisation GPS depuis un téléphone).
|
|
CMD ["/webapp-entrypoint.sh"]
|