
N8N v2 工作流自动化平台,配备工作进程和外部任务运行器以实现安全代码执行

N8N v2 是一个强大的工作流程自动化平台,可以帮助你连接不同的服务并自动化任务。此模板包含:
此模板使用外部任务运行器 - N8N 推荐的生产环境设置,用于在 Code 节点中执行代码:
使用 N8N v2,你可以:
工作进程 + 任务运行器设置确保您的自动化任务得到可靠且安全的处理。
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=true + queue 模式后,主 N8N 实例永不启动 5679 端口的任务代理——所有执行(手动和生产)都卸载至 Worker。N8N-Runners 一直卡在「Waiting for task broker to be ready」,毫无作用。同时从 N8N 服务移除了 taskbroker 端口(5679)和 N8N_RUNNERS_BROKER_LISTEN_ADDRESS。仅保留 Worker-Runners(Worker 确实运行代理)。N8N_RUNNERS_TASK_BROKER_URI 从 http://Worker:5679 改为 http://${WORKER_BROKER_HOST}:5679。Zeabur 的集群内 DNS 解析的是 service-<id> 主机名,而非 Worker 这样的裸服务名——运行器一直卡在「Waiting for task broker to be ready」,Code 节点超时 60 秒。Worker 服务现在通过 ${CONTAINER_HOSTNAME} 公开内部主机名(WORKER_BROKER_HOST)供运行器使用。(N8N_RUNNERS_ENABLED 在 n8n v2 已弃用,故不设置——见官方文档。)N8N_PROTOCOL=https。n8n 从 ${N8N_PROTOCOL}://${N8N_HOST}/... 构建 $execution.resumeUrl;缺少协议时 URL 格式错误,每个节点(Set、Switch、Code 等)都会抛出 TypeError: Invalid URL。${ZEABUR_WEB_DOMAIN} / ${ZEABUR_WEB_URL} 在其容器中未设置。现在改用 ${N8N_WEBHOOK_HOST} / ${N8N_WEBHOOK_URL}(由 N8N 服务新公开)作为 N8N_HOST 和 WEBHOOK_URL。postgres:18 — 因应新版 data-dir 结构,volume 改挂载于 /var/lib/postgresql)TASK_RUNNERS_AUTH_TOKEN 变量(此令牌会自动生成,并在服务之间自动共享)spec 内部移至服务层级),确保正确的启动顺序N8N_RUNNERS_ENABLED 环境变量(N8N v2 默认已启用任务运行器)Runners 拆分为 N8N-Runners(连接 http://N8N:5679)和 Worker-Runners(连接 http://Worker:5679),符合官方 n8n docker-compose 架构,每个 n8n 实例配备独立的 Runnertask-runners 服务作为 n8n-worker 的 sidecar 容器N8N_RUNNERS_MODE=external 以提供更好的安全性和性能TASK_RUNNERS_AUTH_TOKEN 变量用于安全的代理-运行器认证此更新确保您的 N8N v2 工作流程使用外部任务运行器安全运行,遵循 N8N 生产部署的最佳实践。
N8N_ENCRYPTION_KEY 的能力,以確保主實例和工作程序的加密密鑰同步⚠️ 重要:如果您正在使用此模板的旧版本,请更新到此版本以避免可能的加密密钥同步问题。
注意:此模板启用了关键的环境变量以防止未来的兼容性问题:
N8N_RUNNERS_MODE=external:使用外部任务运行器容器(生产环境推荐)而非内部子进程。
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=true:在扩展模式下于主实例执行手动工作流程的方式已被弃用。未来版本中,手动执行将转由工作进程处理。此设置为此变更做好准备。
了解更多关于任务执行器的信息:https://docs.n8n.io/hosting/configuration/task-runners/
如在 Deploy 时遇到任何问题,可以到 Github issue 告诉我,我会尽力解决: https://github.com/glasschan/seafoodholdhand-zeabur-templates