services: excalidraw: build: context: . args: # Vide : version figée dans frontend/package-lock.json. Renseignée (dans .env # ou en ligne de commande), l'image est reconstruite avec cette version. EXCALIDRAW_VERSION: ${EXCALIDRAW_VERSION:-} image: excalidraw-go:local container_name: excalidraw-go restart: unless-stopped ports: - "${EXCALIDRAW_PORT:-8080}:8080" environment: # Authentification Basic optionnelle (laisser vide pour la désactiver, # par exemple derrière un reverse proxy qui gère déjà l'authentification). AUTH_USER: ${AUTH_USER:-} AUTH_PASSWORD: ${AUTH_PASSWORD:-} # Taille max d'un schéma (images embarquées en base64 comprises). MAX_BODY_MB: ${MAX_BODY_MB:-50} # Icône « mise à jour d'Excalidraw disponible » (interroge registry.npmjs.org). UPDATE_CHECK: ${UPDATE_CHECK:-true} UPDATE_CHECK_INTERVAL: ${UPDATE_CHECK_INTERVAL:-12h} # Historique des versions (DATA_DIR/.history) : versions gardées par schéma # (0 : désactivé), écart minimal entre deux versions, âge max (0 : illimité). HISTORY_KEEP: ${HISTORY_KEEP:-50} HISTORY_INTERVAL: ${HISTORY_INTERVAL:-10m} HISTORY_MAX_AGE: ${HISTORY_MAX_AGE:-0} volumes: # Volume nommé : les droits (uid 65532) sont hérités de l'image. # Pour un bind mount (ex. ./data:/data), faire `chown -R 65532:65532 ./data`. - excalidraw-data:/data read_only: true cap_drop: [ALL] security_opt: - no-new-privileges:true volumes: excalidraw-data: