services: server: build: context: server network_mode: host volumes: - ./server/:/app/ - /app/.venv env_file: - ./server/.env environment: ENTRYPOINT: server DATABASE_URL: postgresql+asyncpg://reflector:reflector@localhost:5432/reflector REDIS_HOST: localhost CELERY_BROKER_URL: redis://localhost:6379/1 CELERY_RESULT_BACKEND: redis://localhost:6379/1 HATCHET_CLIENT_SERVER_URL: http://localhost:8889 HATCHET_CLIENT_HOST_PORT: localhost:7078 worker: build: context: server volumes: - ./server/:/app/ - /app/.venv env_file: - ./server/.env environment: ENTRYPOINT: worker HATCHET_CLIENT_SERVER_URL: http://hatchet:8888 HATCHET_CLIENT_HOST_PORT: hatchet:7077 depends_on: redis: condition: service_started beat: build: context: server volumes: - ./server/:/app/ - /app/.venv env_file: - ./server/.env environment: ENTRYPOINT: beat depends_on: redis: condition: service_started hatchet-worker-cpu: build: context: server volumes: - ./server/:/app/ - /app/.venv env_file: - ./server/.env environment: ENTRYPOINT: hatchet-worker-cpu HATCHET_CLIENT_SERVER_URL: http://hatchet:8888 HATCHET_CLIENT_HOST_PORT: hatchet:7077 depends_on: hatchet: condition: service_healthy hatchet-worker-llm: build: context: server volumes: - ./server/:/app/ - /app/.venv env_file: - ./server/.env environment: ENTRYPOINT: hatchet-worker-llm HATCHET_CLIENT_SERVER_URL: http://hatchet:8888 HATCHET_CLIENT_HOST_PORT: hatchet:7077 depends_on: hatchet: condition: service_healthy redis: image: redis:7.2 ports: - 6379:6379 web: build: context: ./www dockerfile: Dockerfile ports: - "3000:3000" env_file: - ./www/.env.local environment: NODE_ENV: development SERVER_API_URL: http://host.docker.internal:1250 extra_hosts: - "host.docker.internal:host-gateway" depends_on: redis: condition: service_started postgres: image: postgres:17 command: postgres -c 'max_connections=200' ports: - 5432:5432 environment: POSTGRES_USER: reflector POSTGRES_PASSWORD: reflector POSTGRES_DB: reflector volumes: - ./data/postgres:/var/lib/postgresql/data - ./server/docker/init-hatchet-db.sql:/docker-entrypoint-initdb.d/init-hatchet-db.sql:ro healthcheck: test: ["CMD-SHELL", "pg_isready -d reflector -U reflector"] interval: 5s timeout: 5s retries: 10 start_period: 15s hatchet: image: ghcr.io/hatchet-dev/hatchet/hatchet-lite:latest restart: on-failure ports: - "8889:8888" - "7078:7077" depends_on: postgres: condition: service_healthy environment: DATABASE_URL: "postgresql://reflector:reflector@postgres:5432/hatchet?sslmode=disable&connect_timeout=30" SERVER_AUTH_COOKIE_DOMAIN: localhost SERVER_AUTH_COOKIE_INSECURE: "t" SERVER_GRPC_BIND_ADDRESS: "0.0.0.0" SERVER_GRPC_INSECURE: "t" SERVER_GRPC_BROADCAST_ADDRESS: hatchet:7077 SERVER_GRPC_PORT: "7077" SERVER_URL: http://localhost:8889 SERVER_AUTH_SET_EMAIL_VERIFIED: "t" # SERVER_DEFAULT_ENGINE_VERSION: "V1" # default SERVER_INTERNAL_CLIENT_INTERNAL_GRPC_BROADCAST_ADDRESS: hatchet:7077 volumes: - ./data/hatchet-config:/config healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8888/api/live"] interval: 30s timeout: 10s retries: 5 start_period: 30s volumes: next_cache: