services: postgres: image: postgres:17 container_name: postgres environment: POSTGRES_DB: validation_suite POSTGRES_USER: validation POSTGRES_PASSWORD: validation123 volumes: - validation_suite_postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U validation -d validation_suite"] interval: 5s timeout: 5s retries: 20 mercury-api: build: context: ./backend/mercury container_name: mercury-api depends_on: postgres: condition: service_healthy environment: DATABASE_URL: postgresql+psycopg://validation:validation123@postgres:5432/validation_suite JWT_SECRET: validation-suite-local-jwt-secret PUBLIC_BASE_URL: http://localhost:8000 ADMIN_EMAIL: admin@schubamed.de ADMIN_PASSWORD: ValidationSuite!2026 ports: - "8000:8000" volumes: - mercury_uploads:/app/uploads - mercury_reports:/app/reports atlas-web: build: context: ./frontend/atlas container_name: atlas-web depends_on: - mercury-api environment: AUTH_COOKIE_NAME: ${AUTH_COOKIE_NAME:-atlas_access_token} AUTH_COOKIE_SECURE: ${AUTH_COOKIE_SECURE:-false} AUTH_COOKIE_SAMESITE: ${AUTH_COOKIE_SAMESITE:-lax} MERCURY_INTERNAL_URL: ${MERCURY_INTERNAL_URL:-http://mercury-api:8000} ports: - "3000:3000" volumes: validation_suite_postgres: mercury_uploads: mercury_reports: