{"owner":"bytedance","repo":"deer-flow","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker/docker-compose.yaml","servicesCount":5,"services":[{"name":"redis","image":"redis:7-alpine","restart":"unless-stopped","command":"redis-server --appendonly yes","volumes":["redis-data:/data"]},{"name":"nginx","image":"nginx:alpine","restart":"unless-stopped","command":"sh -c set -e\ncp /etc/nginx/nginx.conf.template /etc/nginx/nginx.conf\ntest -e /proc/net/if_inet6 || sed -i '/^[[:space:]]*listen[[:space:]]\\+\\[::\\]:2026[[:space:]]/d' /etc/nginx/nginx.conf\nexec nginx -g 'daemon off;'\n","ports":["${BIND_HOST:-127.0.0.1}:${PORT:-2026}:2026"],"volumes":["./nginx/nginx.conf:/etc/nginx/nginx.conf.template:ro"],"depends_on":["frontend","gateway"]},{"name":"frontend","build":{"context":"../","dockerfile":"frontend/Dockerfile"},"restart":"unless-stopped","environment":["BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}","DEER_FLOW_INTERNAL_GATEWAY_BASE_URL=http://gateway:8001"]},{"name":"gateway","build":{"context":"../","dockerfile":"backend/Dockerfile"},"restart":"unless-stopped","command":"sh -c \"cd backend && PYTHONPATH=. exec uv run --no-sync uvicorn app.gateway.app:app --host 0.0.0.0 --port 8001 --workers ${GATEWAY_WORKERS:-1} --timeout-graceful-shutdown 10\"","environment":["CI=true","DEER_FLOW_PROJECT_ROOT=/app","DEER_FLOW_HOME=/app/backend/.deer-flow","DEER_FLOW_CONFIG_PATH=/app/backend/config.yaml","DEER_FLOW_EXTENSIONS_CONFIG_PATH=/app/backend/extensions_config.json","DEER_FLOW_STREAM_BRIDGE_REDIS_URL=${DEER_FLOW_STREAM_BRIDGE_REDIS_URL:-redis://redis:6379/0}","DEER_FLOW_CHANNELS_LANGGRAPH_URL=${DEER_FLOW_CHANNELS_LANGGRAPH_URL:-http://gateway:8001/api}","DEER_FLOW_CHANNELS_GATEWAY_URL=${DEER_FLOW_CHANNELS_GATEWAY_URL:-http://gateway:8001}","DEER_FLOW_INTERNAL_AUTH_TOKEN=${DEER_FLOW_INTERNAL_AUTH_TOKEN}","DEER_FLOW_CREDENTIALS_KEY=${DEER_FLOW_CREDENTIALS_KEY:-}","DEER_FLOW_HOST_BASE_DIR=${DEER_FLOW_HOME}","DEER_FLOW_SANDBOX_HOST=host.docker.internal","AUTH_TRUSTED_PROXIES=${AUTH_TRUSTED_PROXIES:-nginx}","NO_PROXY=${NO_PROXY:-}${NO_PROXY:+,}localhost,127.0.0.1,::1,gateway,frontend,nginx,provisioner,openviking,host.docker.internal","no_proxy=${no_proxy:-}${no_proxy:+,}localhost,127.0.0.1,::1,gateway,frontend,nginx,provisioner,openviking,host.docker.internal"],"volumes":["${DEER_FLOW_CONFIG_PATH}:/app/backend/config.yaml:ro","${DEER_FLOW_EXTENSIONS_CONFIG_PATH}:/app/backend/extensions_config.json","../skills:/app/skills:ro","${DEER_FLOW_HOME}:/app/backend/.deer-flow"],"depends_on":["redis"]},{"name":"provisioner","build":{"context":"./provisioner","dockerfile":"Dockerfile"},"restart":"unless-stopped","environment":["K8S_NAMESPACE=deer-flow","SANDBOX_IMAGE=enterprise-public-cn-beijing.cr.volces.com/vefaas-public/all-in-one-sandbox:latest","LARK_CLI_INIT_IMAGE=${LARK_CLI_INIT_IMAGE:-}","LARK_CLI_BROKER_IMAGE=${LARK_CLI_BROKER_IMAGE:-}","THREADS_HOST_PATH=${DEER_FLOW_HOME}/threads","DEER_FLOW_HOST_BASE_DIR=${DEER_FLOW_HOME}","KUBECONFIG_PATH=/root/.kube/config","NODE_HOST=host.docker.internal","K8S_API_SERVER=https://host.docker.internal:26443"],"volumes":["~/.kube/config:/root/.kube/config:ro"]}],"exposedPorts":["2026"],"dockerRunCommand":"docker run -d --name deer-flow -p 2026:2026 --restart always redis:7-alpine","podmanRunCommand":"podman run -d --name deer-flow -p 2026:2026 --restart always redis:7-alpine","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/redis:7-alpine","orasPullCommand":"oras pull redis:7-alpine","registryMeta":{"provider":"dockerhub","image":"library/redis","canonicalImage":"docker.io/library/redis:7-alpine","latestTag":"7-alpine","cliCommands":{"dockerRun":"docker run -d --name deer-flow -p 2026:2026 --restart always redis:7-alpine","dockerPull":"docker pull redis:7-alpine","podmanRun":"podman run -d --name deer-flow -p 2026:2026 --restart always redis:7-alpine","skopeoInspect":"skopeo inspect docker://docker.io/library/redis:7-alpine","orasPull":"oras pull redis:7-alpine","composeYaml":"services:\n  deer-flow:\n    image: redis:7-alpine\n    restart: unless-stopped\n    ports:\n      - \"2026:2026\""}}}