services: db: image: postgres:16-alpine environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: openccb ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data cms-service: build: context: . dockerfile: services/cms-service/Dockerfile environment: DATABASE_URL: postgresql://user:password@db:5432/openccb_cms JWT_SECRET: openccb_secret_key_2025_production ports: - "3001:3001" volumes: - uploads_data:/app/uploads env_file: .env depends_on: - db lms-service: build: context: . dockerfile: services/lms-service/Dockerfile environment: DATABASE_URL: postgresql://user:password@db:5432/openccb_lms JWT_SECRET: openccb_secret_key_2025_production ports: - "3002:3002" env_file: .env depends_on: - db studio: build: context: ./web/studio dockerfile: Dockerfile ports: - "3000:3000" environment: NEXT_PUBLIC_CMS_API_URL: http://localhost:3001 experience: build: context: ./web/experience dockerfile: Dockerfile ports: - "3003:3003" environment: NEXT_PUBLIC_LMS_API_URL: http://localhost:3002 whisper: image: fedirz/faster-whisper-server:latest-cpu ports: - "8000:8000" volumes: - whisper_cache:/root/.cache/huggingface environment: # - WHISPER_MODEL=medium # - DEVICE=cpu # GPU support commented out for stability if drivers missing - DEVICE=cpu # GPU support for RTX 2070 Super # deploy: # resources: # reservations: # devices: # - driver: nvidia # count: 1 # capabilities: [ gpu ] e2e: build: context: ./e2e environment: - STUDIO_URL=http://studio:3000 - EXPERIENCE_URL=http://experience:3003 depends_on: - studio - experience volumes: - ./e2e/tests:/e2e/tests - ./e2e/playwright-report:/e2e/playwright-report profiles: [ "test" ] volumes: postgres_data: uploads_data: whisper_cache: