services: backend: build: context: ./backend dockerfile: Dockerfile container_name: locus-backend ports: - "8000:8000" environment: - HF_TOKEN=${HF_TOKEN} - GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY} volumes: - backend-vector-store:/app/vector_store - backend-cropped-buildings:/app/cropped_buildings networks: - locus-network restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s start_period: 60s retries: 3 frontend: build: context: ./frontend dockerfile: Dockerfile args: NEXT_PUBLIC_GOOGLE_MAPS_API_KEY: ${GOOGLE_MAPS_API_KEY} NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL:-http://backend:8000} container_name: locus-frontend ports: - "3000:3000" depends_on: backend: condition: service_healthy networks: - locus-network restart: unless-stopped networks: locus-network: driver: bridge volumes: backend-vector-store: driver: local backend-cropped-buildings: driver: local