x-defaults: &defaults restart: unless-stopped logging: driver: json-file options: max-size: ${DEER_FLOW_LOG_MAX_SIZE:-100m} max-file: '${DEER_FLOW_LOG_MAX_FILE:-3}' services: deerflow-gateway: <<: *defaults build: context: https://github.com/bytedance/deer-flow.git#${DEER_FLOW_VERSION:-main} dockerfile: backend/Dockerfile image: ${GLOBAL_REGISTRY:-}alexsuntop/deer-flow-backend:${DEER_FLOW_VERSION:-main} environment: - TZ=${TZ:-UTC} - OPENAI_API_KEY=${OPENAI_API_KEY:-} env_file: - .env entrypoint: - /bin/sh - -ec command: | cat >/tmp/config.yaml </tmp/extensions_config.json </tmp/config.yaml </tmp/extensions_config.json <process.exit(r.ok?0:1)).catch(()=>process.exit(1))" interval: 30s timeout: 10s retries: 5 start_period: 60s deploy: resources: limits: cpus: ${DEER_FLOW_FRONTEND_CPU_LIMIT:-1.00} memory: ${DEER_FLOW_FRONTEND_MEMORY_LIMIT:-1G} reservations: cpus: ${DEER_FLOW_FRONTEND_CPU_RESERVATION:-0.25} memory: ${DEER_FLOW_FRONTEND_MEMORY_RESERVATION:-256M} deerflow-nginx: <<: *defaults image: ${GLOBAL_REGISTRY:-}nginx:${NGINX_VERSION:-1.28-alpine} depends_on: deerflow-gateway: condition: service_healthy deerflow-langgraph: condition: service_healthy deerflow-frontend: condition: service_healthy ports: - '${DEER_FLOW_PORT_OVERRIDE:-2026}:2026' volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro healthcheck: test: - CMD-SHELL - wget --no-verbose --tries=1 --spider http://127.0.0.1:2026 >/dev/null || exit 1 interval: 30s timeout: 10s retries: 5 start_period: 10s deploy: resources: limits: cpus: ${DEER_FLOW_NGINX_CPU_LIMIT:-0.50} memory: ${DEER_FLOW_NGINX_MEMORY_LIMIT:-256M} reservations: cpus: ${DEER_FLOW_NGINX_CPU_RESERVATION:-0.10} memory: ${DEER_FLOW_NGINX_MEMORY_RESERVATION:-64M}