services: favs-db: image: postgres:16-alpine environment: POSTGRES_USER: favs POSTGRES_PASSWORD: favs POSTGRES_DB: favs ports: - "5433:5432" volumes: - favs_pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U favs"] interval: 5s timeout: 3s retries: 5 favs-api: build: ./backend ports: - "8000:8000" environment: DATABASE_URL: postgresql+asyncpg://favs:favs@favs-db:5432/favs ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY} FIREBASE_PROJECT_ID: ${VITE_FIREBASE_PROJECT_ID} depends_on: favs-db: condition: service_healthy volumes: - ./backend:/app command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload favs-ui: build: context: ./frontend args: - VITE_FIREBASE_API_KEY=${VITE_FIREBASE_API_KEY} - VITE_FIREBASE_AUTH_DOMAIN=${VITE_FIREBASE_AUTH_DOMAIN} - VITE_FIREBASE_PROJECT_ID=${VITE_FIREBASE_PROJECT_ID} - VITE_FIREBASE_STORAGE_BUCKET=${VITE_FIREBASE_STORAGE_BUCKET} - VITE_FIREBASE_MESSAGING_SENDER_ID=${VITE_FIREBASE_MESSAGING_SENDER_ID} - VITE_FIREBASE_APP_ID=${VITE_FIREBASE_APP_ID} - VITE_FIREBASE_MEASUREMENT_ID=${VITE_FIREBASE_MEASUREMENT_ID} - VITE_DEPLOYED_VERSION=${VITE_DEPLOYED_VERSION:-dev} ports: - "3000:80" depends_on: - favs-api volumes: favs_pgdata: