n8n 是一款开源的可视化工作流自动化工具,能像搭积木一样把 API、数据库、定时任务和 AI 模型串成自动化流水线。相比 Zapier 这类 SaaS,n8n 可以私有化部署、节点无限、数据不出内网,特别适合想把重复劳动自动化的开发者与团队。本文从部署到实战,带你跑通第一条工作流。
一、什么是 n8n,解决了什么问题
n8n(读作 “n-eight-n”)用「节点(Node)」表示每一步操作,节点之间用连线传递数据。你不需要为每个平台写一整套集成代码,只要在画布上拖出 HTTP Request、Schedule、Code、IF 等节点,配置参数即可。它内置 400+ 官方节点(GitHub、Slack、MySQL、OpenAI 等),也支持用 JavaScript / Python 写自定义逻辑。
对开发者来说,n8n 的核心价值在于:把”每天手动做的杂事”变成”服务器按时跑的流水线”,而且全程数据可控、可审计、可迁移。
二、Docker 一键部署(推荐)
最省心的方式是用 Docker Compose 起一个 n8n 实例。注意把数据目录挂载出来,并设好基础 URL 与加密密钥,否则重启后工作流配置会丢。需要先准备好 Docker 环境(参见站内 Docker Compose 实战)。
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=改成强密码
- N8N_PROTOCOL=http
- N8N_HOST=127.0.0.1
- N8N_PORT=5678
- N8N_ENCRYPTION_KEY=生成一个32位以上随机串
- GENERIC_TIMEZONE=Asia/Shanghai
volumes:
- ./n8n-data:/home/node/.n8n
networks:
- n8n-net
networks:
n8n-net:
driver: bridge
启动命令:docker compose up -d,浏览器访问 http://<服务器IP>:5678 即可进入编辑器。生产环境建议用 Nginx 反代并配 HTTPS(参见站内 Nginx 反向代理实战),不要让 5678 端口裸奔公网。
三、核心概念:节点、触发器与凭证
- 触发器(Trigger):工作流的起点,如 Schedule(定时)、Webhook(收到 HTTP 请求)、Manual(手动)。
- 节点(Node):每个处理单元,如 HTTP Request 调接口、Set 改字段、Code 写脚本、IF 做分支。
- 凭证(Credential):统一管理各平台的 Token / 密钥,n8n 会加密存储,避免在节点里明文写密码。
- 表达式(Expression):用
{{ $json.xxx }}引用上一步的输出,是串联数据的关键。
四、实战:RSS 定时抓取 → AI 总结 → 推送到企业微信
一个很实用的场景:每天早上自动抓取几个技术博客的 RSS,用大模型生成摘要,再推到群里。工作流编排如下:
- Schedule 节点设
0 9 * * *(每天 9 点触发)。 - RSS Read 节点填订阅源地址,拉取最新文章。
- Code 节点把标题 + 链接拼成提示词。
- HTTP Request 节点调用大模型(或直接接 Dify / Ollama 服务,见站内 Dify+Ollama 部署实战)生成一句话总结。
- HTTP Request 节点把结果 POST 到企业微信机器人 Webhook。
下面这段 Code 节点(JavaScript)把多篇 RSS 条目合并成待总结文本:
// 输入: items 为 RSS 条目数组,每个含 title / link
const items = $input.all();
const lines = items.map(it => `- ${it.json.title} ${it.json.link}`);
return [{
json: {
prompt: "用一句话总结以下技术文章,并给出是否值得精读的判断:\n" + lines.join("\n")
}
}];
五、实战:Webhook 接收表单 → 落库 + 通知
用 n8n 做轻量后端也很顺手。Webhook 节点暴露一个 URL,前端表单提交后:
- Webhook 收到 JSON(如姓名、邮箱、留言)。
- IF 节点校验必填字段,缺失则走”返回 400″分支。
- PostgreSQL / MySQL 节点执行 INSERT 入库。
- 邮件节点发通知给管理员。
本地测试用一条 curl 即可:
curl -X POST http://127.0.0.1:5678/webhook/contact \
-H "Content-Type: application/json" \
-d '{"name":"小明","email":"a@b.com","msg":"想合作"}'
六、n8n 与 Zapier / Make 怎么选
| 维度 | n8n | Zapier | Make |
|---|---|---|---|
| 部署方式 | 可自托管 | 云 SaaS | 云 SaaS |
| 价格 | 开源免费 | 按任务计费,偏贵 | 中等 |
| 数据主权 | 数据留在内网 | 出境 | 出境 |
| 自定义代码 | 原生 JS / Python | 有限 | 有限 |
| 适用规模 | 中大型 / 技术团队 | 小团队 | 小团队 |
七、与大模型联动:把 AI 嵌进流水线
n8n 很适合充当”AI Agent 的触发器与执行器”。你可以把 Dify 部署的私有大模型通过 HTTP Request 节点调用,让 n8n 负责调度、取数、落库,Dify 负责推理。配合 GitHub Actions 还能把”文档变更 → 自动重新生成知识库”做成 CI 流水线(参见站内 GitHub Actions 实战)。
八、生产环境建议
- 凭证集中管理,启用 n8n 的加密密钥,切勿把 Token 写进节点表达式明文。
- 给关键节点开”错误触发(Error Trigger)”,失败自动告警。
- 定时备份
./n8n-data卷,所有工作流配置都在里面。 - 用 Nginx 反代 + HTTPS,关闭公网裸端口。
- 资源有限时把大模型推理放到单独机器,n8n 本身很轻量。
九、小结
n8n 把”自动化”从昂贵的 SaaS 变成可自托管的开源能力。从 RSS 汇总到表单落库,再到 AI 流水线编排,它都能胜任。把重复劳动交给它,你只管做真正需要创造力的事。




