Files
lidar_rendu/Dockerfile.webapp
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

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"]