DeerFlow
部署 DeerFlow:先用本机回环、明确状态,再考虑多进程
读懂生产 Compose 的服务拓扑、凭据挂载和工作进程本地状态,避免把能打开页面误认为部署完成。
你将学会
- make up 实际准备启动什么
- 区分只读配置与可变运行数据
- 先识别运行归谁管理,再谈扩容
开始前需要
- 基础 Python、HTTP 和容器知识
- 拥有明确验收条件的自有任务
解释本章实现边界,并应用检查清单或隔离辅助函数练习。
先看结论
- 宿主机回环与容器监听地址不同。
- 备份运行状态,不能只备份源码。
- 一个 Gateway 工作进程是文档基线。
make up 实际准备启动什么
仓库把 make up 作为生产镜像与服务的入口。所查 Compose 定义 nginx、Next.js 前端、FastAPI Gateway 和 Redis,并提供可选沙箱供应服务。Gateway 在容器网络中运行 uvicorn,默认一个工作进程。这是多服务应用,不是单靠静态前端就能执行智能体任务的网站。
nginx 的宿主机端口默认绑定 127.0.0.1:2026。容器内部监听 0.0.0.0 与宿主机公开暴露是两件事。首次初始化保留默认回环地址,只在自己的 TLS 和认证边界后暴露经过审查的服务;修改 BIND_HOST 是安全决策,而不是其他电脑打不开页面时的随手修复。
区分只读配置与可变运行数据
Compose 把 config.yaml 挂为只读,却允许写入 extensions_config.json,因为 Gateway API 可以修改 MCP 和技能相关配置。它还挂载持久化 DeerFlow 数据目录与只读技能。备份必须覆盖这种差异:仅保留源码,无法恢复实例运行数据及通过应用界面做出的配置更改。
前端使用 BETTER_AUTH_SECRET,Gateway 另外使用内部认证令牌。基础编排不挂载宿主机 Docker socket,也不挂载个人 CLI 认证目录,这些能力需要显式启用叠加配置。启用前审查沙箱镜像、凭据、挂载和网络可达范围;标有“容器”并不等于完成隔离评估。
先识别运行归谁管理,再谈扩容
Redis 承担事件流桥接,但 Gateway 启动命令旁明确说明,活跃任务管理仍在工作进程内存中。README 为多进程描述了额外的 Postgres、租约心跳和持久事件要求,也保留其他协调限制。仅提高 GATEWAY_WORKERS,并不能建立可靠的取消、去重和恢复能力。
分别验证就绪状态、认证访问、有界测试任务、产物获取和重启行为。升级前固定部署源码与镜像摘要,并准备恢复流程。下面的清单不是可直接替换的 Compose,也没有在真实实例执行;它用于记录安全起点和仍未验证的部署状态。
实施步骤
- 1
审查 make setup 输出及必要密钥,不记录密钥值。
- 2
检查目标路径对应的 Compose,保留回环绑定。
- 3
只在准备好的评估环境运行 make up。
- 4
公开访问前检查认证、产物获取和恢复。
可复制示例
{"BIND_HOST":"127.0.0.1","PORT":2026,"GATEWAY_WORKERS":1,"dockerSocketMounted":false,"personalCliDirectoriesMounted":false,"runtimeVerified":false}常见问题
加上 Redis 后,所有运行操作就支持多进程了吗?
不是。事件传递和执行所有权不同,所查配置明确列出进程本地限制及额外协调要求。
扩展配置也是只读的吗?
所查生产编排允许 Gateway 更新扩展配置,需要把它纳入状态管理和备份。
资料来源
- README.md来源核查 2026-09-08
- LICENSE来源核查 2026-09-08
- backend/README.md来源核查 2026-09-08
- backend/pyproject.toml来源核查 2026-09-08
- backend/docs/middleware-execution-flow.md来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/lead_agent/agent.py来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/loop_detection_middleware.py来源核查 2026-09-08
- backend/packages/harness/deerflow/agents/middlewares/_bounded_dict.py来源核查 2026-09-08
- backend/packages/harness/deerflow/config/loop_detection_config.py来源核查 2026-09-08
- backend/packages/harness/deerflow/sandbox/local/local_sandbox_provider.py来源核查 2026-09-08
- backend/app/gateway/auth_middleware.py来源核查 2026-09-08
- backend/app/gateway/csrf_middleware.py来源核查 2026-09-08
- docker/docker-compose.yaml来源核查 2026-09-08