eptm_dashboard/docker-compose.dev.yml
Julien Balet 7d3b6e9136 v1.1.0 — fixes sync + UX dev/prod
Sync push_then_sync : préserve les absences 'publiee_escada' contre
écrasement/orphelines après push (PDF Escada stale). UI reconnaît le
statut (calendrier, éditeur, KPIs) au lieu d'afficher 'présent'.

Sync_esacada : timeout grille 20s → 45s + retry après reload (AUTOMAT 1
échouait à la 1re classe après changement de langue).

Telegram : ajoute liste d'erreurs + tail du log dans les notifs d'échec
même en mode normal — avant on avait juste 'a échoué (code 1)'.

UX :
- Calendrier toujours visible (même sans absences) et démarre sur le
  mois courant (pas sur le 1er mois d'absence) ; tous les jours
  cliquables pour pouvoir ajouter une absence.
- Date du jour pré-sélectionnée aussi via navigate_to (clic depuis
  /classe).
- KPIs cards taggées kpi-card/kpi-value pour CSS responsive mobile.
- Badge 'DEV' dans la sidebar (APP_ENV=dev) — invisible en prod.
- Badge 'Built with Reflex' masqué.
- KPIs retirés du dashboard /accueil.

Prod :
- Dockerfile.prod multi-stage (Reflex export bundle + runtime slim).
- docker-compose.prod.yml séparé (port 3002, projet eptm-dashboard-prod).
- .gitignore + .dockerignore nettoyés.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 09:11:39 +02:00

44 lines
1.4 KiB
YAML

# Nom de projet distinct de la prod pour que les deux stacks cohabitent
# sans que `compose up` côté prod ne recrée le container dev (ou inverse).
name: eptm-dashboard-dev
services:
app:
build:
context: .
dockerfile: Dockerfile.dev
container_name: eptm-dashboard-app-1
init: true
restart: "no"
# Pas de ports exposés sur le host : accès uniquement via NPM (proxy_net)
# → http://eptm-automation.ch:3001 ne fonctionne plus, utiliser https://dev.dashboard.eptm-automation.ch
volumes:
- ./eptm_dashboard:/app/eptm_dashboard
- ./rxconfig.py:/app/rxconfig.py
- ./data:/app/data
- ./logs:/logs
- ./assets:/app/assets
- ./scripts:/app/scripts
- ./src:/app/src
- ./docs:/app/docs:ro
- ./templates:/app/templates:ro
env_file:
- .env.prod
environment:
- FRONTEND_PORT=3001
- BACKEND_PORT=8001
- API_URL=https://dev.dashboard.eptm-automation.ch
# Active le badge "DEV" dans la sidebar (sidebar.py:_IS_DEV).
# En prod, cette variable n'est pas définie → pas de badge.
- APP_ENV=dev
# Évite la boucle infinie de hot-reload causée par SQLite WAL/SHM dans data/
- REFLEX_HOT_RELOAD_EXCLUDE_PATHS=/app/data
# Timezone du container : aligne avec le host (cohérence cron + logs)
- TZ=Europe/Zurich
networks:
- default
- proxy_net
networks:
proxy_net:
external: true