services: db: image: postgres:17-alpine container_name: furumi-db environment: POSTGRES_DB: ${POSTGRES_DB:-furumi} POSTGRES_USER: ${POSTGRES_USER:-furumi} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-furumi} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U furumi -d furumi"] interval: 5s timeout: 5s retries: 5 agent: build: context: . dockerfile: Dockerfile.agent container_name: furumi-agent depends_on: db: condition: service_healthy ports: - "8090:8090" environment: FURUMI_AGENT_DATABASE_URL: "postgres://${POSTGRES_USER:-furumi}:${POSTGRES_PASSWORD:-furumi}@db:5432/${POSTGRES_DB:-furumi}" FURUMI_AGENT_INBOX_DIR: "/inbox" FURUMI_AGENT_STORAGE_DIR: "/storage" FURUMI_AGENT_OLLAMA_URL: "${OLLAMA_URL:-http://host.docker.internal:11434}" FURUMI_AGENT_OLLAMA_AUTH: "${OLLAMA_AUTH:-CHANGE-ME}" FURUMI_PLAYER_BIND: "0.0.0.0:8090" FURUMI_AGENT_POLL_INTERVAL_SECS: 5 volumes: - ./inbox:/inbox - ./storage:/storage extra_hosts: - "host.docker.internal:host-gateway" restart: always web-player: build: context: . dockerfile: Dockerfile.web-player container_name: furumi-web-player depends_on: db: condition: service_healthy ports: - "8085:8085" environment: FURUMI_PLAYER_DATABASE_URL: "postgres://${POSTGRES_USER:-furumi}:${POSTGRES_PASSWORD:-furumi}@db:5432/${POSTGRES_DB:-furumi}" FURUMI_PLAYER_STORAGE_DIR: "/storage" FURUMI_PLAYER_BIND: "0.0.0.0:8085" volumes: - ./storage:/storage restart: always volumes: pgdata: