services: dashboard: build: # Les sources actives sont versionnées sous src/. Le contexte racine # pouvait réutiliser d’anciens dossiers backend/frontend restés sur l’hôte. context: ./src dockerfile: Dockerfile container_name: manus-dashboard # Le dashboard doit repartir seul après un arrêt anormal du processus. restart: always mem_limit: 512m environment: - NODE_ENV=production - DASHBOARD_ENV=recette - PORT=3001 - JWT_SECRET=manus-dashboard-jwt-secret-2026-recette - ADMIN_USERNAME=adminItinova - ADMIN_PASSWORD=Itinova69! - GITEA_URL=https://git.recette.santinova-soft.org - GITEA_USERNAME=manus-admin - GITEA_TOKEN=${GITEA_TOKEN:?GITEA_TOKEN requis dans le fichier .env serveur} - GITEA_RECETTE_URL=http://gitea:3000 - GITEA_TOKEN_PROD=${GITEA_TOKEN_PROD:-} - WEBHOOK_SECRET=${WEBHOOK_SECRET:?WEBHOOK_SECRET requis dans le fichier .env serveur} - IA_REFERENTIEL_URL=${IA_REFERENTIEL_URL:-https://referentiel-ia.recette.santinova-soft.org} - IA_REFERENTIEL_TOKEN=${IA_REFERENTIEL_TOKEN:-} - APPS_BASE_PATH=/opt/manus-deploy/apps - INFRA_BASE_PATH=/opt/manus-deploy/infrastructure # Contrôles bornés et dédoublonnés par healthcheck.js. - HEALTH_CHECK_INTERVAL=60000 volumes: - /var/run/docker.sock:/var/run/docker.sock - /opt/manus-deploy:/opt/manus-deploy extra_hosts: - "git.santinova-soft.org:180.149.196.138" networks: - web labels: - "traefik.enable=true" # Route HTTPS via dashboard.recette.santinova-soft.org - "traefik.http.routers.manus-dashboard.rule=Host(`dashboard.recette.santinova-soft.org`)" - "traefik.http.routers.manus-dashboard.entrypoints=websecure" - "traefik.http.routers.manus-dashboard.tls=true" - "traefik.http.routers.manus-dashboard.tls.certresolver=letsencrypt" - "traefik.http.routers.manus-dashboard.service=manus-dashboard-svc" - "traefik.http.routers.manus-dashboard.priority=100" # Service - "traefik.http.services.manus-dashboard-svc.loadbalancer.server.port=3001" - "traefik.docker.network=web" networks: web: external: true