services: backend: build: context: . dockerfile: Dockerfile environment: APP_ENV: production APP_DATA_DIR: /app/data DATABASE_PATH: /app/data/app.db MISTRAL_API_KEY: ${MISTRAL_API_KEY:-} MISTRAL_OCR_MODEL: ${MISTRAL_OCR_MODEL:-mistral-ocr-latest} DEEPGRAM_API_KEY: ${DEEPGRAM_API_KEY:-} volumes: - station-data:/app/data expose: - "8000" ports: - "8000" restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5)"] interval: 30s timeout: 10s retries: 3 start_period: 20s frontend: build: context: ./frontend dockerfile: Dockerfile args: NEXT_PUBLIC_API_URL: "" BACKEND_INTERNAL_URL: http://backend:8000 environment: NODE_ENV: production PORT: 3000 HOSTNAME: 0.0.0.0 expose: - "3000" ports: - "3000" depends_on: - backend restart: unless-stopped healthcheck: test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3000').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 10s retries: 3 start_period: 30s volumes: station-data: