services: app: build: . restart: unless-stopped environment: DATABASE_URL: postgresql://fpt:${POSTGRES_PASSWORD}@db:5432/fpt?schema=public SESSION_SECRET: ${SESSION_SECRET} NODE_ENV: production depends_on: - db networks: - agent-net - internal labels: - "traefik.enable=true" # Der Container haengt an zwei Netzwerken (agent-net + internal). Ohne diese # explizite Angabe waehlt Traefik zufaellig eines -- landet es im internen # DB-Netzwerk, ist das Backend unerreichbar (Timeout). - "traefik.docker.network=agent-net" - "traefik.http.routers.fpt.rule=Host(`fpt.aicds.ch`)" - "traefik.http.routers.fpt.entrypoints=websecure" - "traefik.http.routers.fpt.tls.certresolver=myresolver" - "traefik.http.services.fpt.loadbalancer.server.port=3000" db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: fpt POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: fpt volumes: - fpt_db_data:/var/lib/postgresql/data networks: - internal networks: agent-net: external: true internal: driver: bridge volumes: fpt_db_data: