version: "3.9" services: postgres: image: postgres:16 environment: POSTGRES_USER: agora POSTGRES_PASSWORD: agora POSTGRES_DB: agora ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U agora"] interval: 5s retries: 5 redis: image: redis:7 ports: - "6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s retries: 5 agora-server: build: context: . dockerfile: Dockerfile ports: - "8000:8000" environment: AGORA_DATABASE_URL: postgresql+asyncpg://agora:agora@postgres:5432/agora AGORA_REDIS_URL: redis://redis:6379/0 AGORA_USE_REDIS: "true" AGORA_TICK_INTERVAL: "5" AGORA_MAX_AGENTS: "30" AGORA_LLM_ENABLED: "false" depends_on: postgres: condition: service_healthy redis: condition: service_healthy healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/v1/health')"] interval: 30s timeout: 5s retries: 3 start_period: 15s # EventStoreDB is optional. Uncomment below to enable. # eventstore: # image: eventstore/eventstore:latest # environment: # - EVENTSTORE_CLUSTER_SIZE=1 # - EVENTSTORE_RUN_PROJECTIONS=All # - EVENTSTORE_START_STANDARD_PROJECTIONS=true # - EVENTSTORE_EXT_TCP_PORT=1113 # - EVENTSTORE_HTTP_PORT=2113 # - EVENTSTORE_INSECURE=true # - EVENTSTORE_ENABLE_EXTERNAL_TCP=true # - EVENTSTORE_ENABLE_ATOM_PUB_OVER_HTTP=true # ports: # - "2113:2113" # - "1113:1113" # volumes: # - eventstore_data:/var/lib/eventstore volumes: pgdata: qdrant_storage: agora_data: # eventstore_data: