services: api: image: honcho:latest build: context: . dockerfile: Dockerfile depends_on: database: condition: service_healthy ports: - 8000:8000 volumes: - .:/app - venv:/app/.venv env_file: - .env deriver: build: context: . dockerfile: Dockerfile entrypoint: ["uv", "run", "python", "-m", "src.deriver"] depends_on: database: condition: service_healthy volumes: - .:/app - venv:/app/.venv env_file: - .env database: image: pgvector/pgvector:pg15 restart: always ports: - 5432:5432 command: ["postgres", "-c", "max_connections=800"] environment: - POSTGRES_DB=honcho - POSTGRES_USER=testuser - POSTGRES_PASSWORD=testpwd - POSTGRES_HOST_AUTH_METHOD=trust - PGDATA=/var/lib/postgresql/data/pgdata volumes: - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql - pgdata:/var/lib/postgresql/data/ healthcheck: test: ["CMD-SHELL", "pg_isready -U testuser -d honcho"] interval: 5s timeout: 5s retries: 5 redis: image: redis:8.2 restart: always ports: - 6379:6379 volumes: - ./redis-data:/data healthcheck: test: ["CMD-SHELL", "redis-cli ping"] interval: 5s timeout: 5s retries: 5 grafana: image: grafana/grafana:11.4.0 ports: - 3000:3000 environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer volumes: - ./grafana-data:/var/lib/grafana volumes: pgdata: venv: