services: veille-reglementaire-recette: image: veille-reglementaire-app:latest build: context: . dockerfile: Dockerfile container_name: veille-reglementaire-recette restart: unless-stopped environment: - NODE_ENV=production - PORT=3000 - DATABASE_URL=mysql://veille_user:VeilleDB2026Secure!@veille-db-recette:3306/veille_reglementaire - JWT_SECRET=veille-jwt-secret-2026-recette - VITE_APP_ID=veille-reglementaire-recette - OAUTH_SERVER_URL=https://api.manus.im - VITE_OAUTH_PORTAL_URL=https://manus.im - OWNER_OPEN_ID=admin - OWNER_NAME=Administrateur Itinova - BUILT_IN_FORGE_API_URL= - BUILT_IN_FORGE_API_KEY= - VITE_FRONTEND_FORGE_API_KEY= - VITE_FRONTEND_FORGE_API_URL= - VITE_ANALYTICS_ENDPOINT= - VITE_ANALYTICS_WEBSITE_ID= - AZURE_AD_CLIENT_ID=f496da82-e18f-4567-bf05-8551ae6669b2 - AZURE_AD_CLIENT_SECRET=d.T8Q~RR9iobI9bin2hqecoBWDjvyD7I11U5QcPR - AZURE_AD_TENANT_ID=487d0a81-de35-44ce-8847-03bb74ec553e - AZURE_AD_REDIRECT_URI=https://veille.recette.santinova-soft.org/api/auth/azure/callback depends_on: veille-db-recette: condition: service_healthy networks: - web labels: - "traefik.enable=true" - "traefik.docker.network=web" - "traefik.http.routers.veille-recette-secure.entrypoints=websecure" - "traefik.http.routers.veille-recette-secure.rule=Host(`veille.recette.santinova-soft.org`)" - "traefik.http.routers.veille-recette-secure.service=veille-recette-svc" - "traefik.http.routers.veille-recette-secure.tls=true" - "traefik.http.routers.veille-recette-secure.tls.certresolver=letsencrypt" - "traefik.http.services.veille-recette-svc.loadbalancer.server.port=3000" veille-db-recette: image: mysql:8.0 container_name: veille-db-recette restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: VeilleRootDB2026! MYSQL_DATABASE: veille_reglementaire MYSQL_USER: veille_user MYSQL_PASSWORD: VeilleDB2026Secure! volumes: - veille-db-recette-data:/var/lib/mysql networks: - web healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 volumes: veille-db-recette-data: networks: web: external: true