如何使用 n8n 工作流自动化:Docker 安装、打开编辑器、首个 Webhook 流程与凭据基础
Docker 跑 n8n,在 5678 编辑器里完成第一条 Webhook 工作流并弄懂凭据存储。
想把 Slack、表单、内部 API 串起来,却不想先搭一整套自建后端。n8n 是可视化工作流自动化工具,用节点把 Webhook、HTTP、数据库和 SaaS 连成可维护的流程;官方文档在 docs.n8n.io。
搜索 n8n Docker 安装 打开编辑器 第一个 Webhook 工作流 凭据 的人,通常要完成:用 Docker 跑起 n8n、在浏览器打开编辑器、建一条 Webhook 触发的工作流、理解凭据(Credentials)如何保存 API 密钥。以下以 n8n 官方 Docker 与入门文档为准。
n8n 适合谁
运维 / 全栈想快速接 API 的人
用节点代替大量 cron + 脚本;Webhook 入口让外部系统主动推送事件。
小团队自动化负责人
自托管 n8n 时数据留在自己的 Docker volume;凭据集中保存在实例内而非散在 .env 文件。
已从 Zapier/Make 迁出的开发者
需要可版本化的工作流导出、自定义 HTTP 节点和本地调试 Webhook URL。
用 Docker 安装并启动 n8n
- 1
准备 Docker
macOS/Windows 安装并启动 Docker Desktop;Linux 安装 Docker Engine(见 docs.docker.com)。确认
docker --version可用。 - 2
创建 compose 目录
例如
mkdir ~/n8n-local && cd ~/n8n-local,新建docker-compose.yml(文件名也可为compose.yaml)。 - 3
写入官方推荐的服务定义
使用 n8n 文档中的 Docker 镜像
docker.n8n.io/n8nio/n8n,映射端口5678:5678,挂载 named volume 到/home/node/.n8n以持久化工作流与凭据(见 docs.n8n.io/hosting)。 - 4
启动容器
在该目录执行
docker compose up -d,用docker compose logs -f n8n查看启动日志,直到编辑器可访问。
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- GENERIC_TIMEZONE=Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:生产或公网暴露前,务必阅读官方文档中的 N8N_ENCRYPTION_KEY、HTTPS 反向代理与用户认证(Basic Auth / SSO 等),不要把未设密码的 5678 端口直接暴露到公网。
打开 n8n 编辑器
- 1
浏览器访问
打开
http://localhost:5678。首次访问会引导创建实例所有者账号(邮箱 + 密码),按屏幕提示完成(以当前 n8n 版本 UI 为准)。 - 2
熟悉画布
左侧为节点库,中间为工作流画布,右上角可切换「Editor / Executions / Settings」。先新建空白工作流(New workflow)。
- 3
保存与命名
给工作流起名(如
Hello Webhook)并保存,避免关闭浏览器后丢失未保存节点。
第一个 Webhook 工作流
- 1
添加 Webhook 触发器
点击「+」搜索 Webhook,选 Webhook 节点作为触发器。HTTP Method 选
GET或POST(练习可用 GET)。 - 2
复制测试 URL
在 Webhook 节点面板查看 Test URL(测试模式)或 Production URL(工作流激活后)。本地 Docker 一般为
http://localhost:5678/webhook/…或/webhook-test/…,以节点显示为准。 - 3
添加响应节点
再接一个节点:例如 Respond to Webhook(返回 JSON/文本),或 Set 整理字段后接 Respond。用连线把 Webhook 输出连到下一节点。
- 4
执行测试
点击「Test workflow」或「Listen for test event」,在另一个终端运行
curl "http://localhost:5678/webhook-test/…"(替换为节点上的 Test 路径)。Executions 面板应出现成功记录。 - 5
激活生产 Webhook
测试通过后,将工作流右上角开关设为 Active,使用 Production URL 接收真实流量(官方文档说明 test 与 production 路径区别)。
凭据(Credentials)基础
| 概念 | 作用 | 注意 |
|---|---|---|
| Credential | 保存 OAuth token、API Key、数据库连接等 | 在 n8n 内加密存储,节点引用而非硬编码 |
| 创建入口 | Settings → Credentials,或添加节点时「Create new credential」 | 按节点类型选模板(如 Header Auth、Google) |
N8N_ENCRYPTION_KEY | 实例级加密密钥(环境变量) | 生产必须固定;丢失会导致已存凭据无法解密 |
| 导出工作流 | JSON 导出通常不含明文密钥 | 迁移实例时需在新环境重建凭据 |
练习 HTTP 节点时,可先用 Header Auth 凭据存放 Authorization 值,避免把 token 写在节点 JSON 里提交到 Git。团队自托管时,把 compose 里的密钥放进 .env 并加入 .gitignore。
Webhook 工作流验证的是事件入口;接 Slack/GitHub 等 SaaS 时,在对应开发者控制台把 URL 配成 n8n 的 Production Webhook,并在 n8n 里创建匹配的 OAuth/API 凭据。
和队友对白板梳理自动化拓扑时,可从 wbroom 首页 开浏览器房间,见 创建与加入房间;本地栈可参考 Docker Compose 入门。
还想核对的问题
5678 端口被占用怎么办?
修改 compose 中 ports 为例如 5679:5678,浏览器访问 http://localhost:5679,并同步更新 N8N_PORT 与反向代理配置(见官方 hosting 文档)。
Test URL 和 Production URL 有什么区别?
Test 用于编辑器内调试,通常在工作流未激活或测试监听时使用;Production 在工作流 Active 后对外服务。具体路径以 Webhook 节点文档与 UI 显示为准。
凭据存在哪里?
默认存在挂载的 volume(~/.n8n 容器路径)内,由实例加密。重建容器时保留 volume 即可保留凭据;删除 volume 会清空数据。
n8n Cloud 和自托管 Docker 一样吗?
编辑器与节点概念相同,但 Cloud 由 n8n 托管,Webhook 公网 URL 与计费以 n8n.io 产品页为准。本文聚焦自托管 Docker 本地练习。