如何使用 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 与入门文档为准。

Docker 启动 n8n打开 5678 编辑器Webhook 工作流 · 凭据基础

n8n 适合谁

01

运维 / 全栈想快速接 API 的人

用节点代替大量 cron + 脚本;Webhook 入口让外部系统主动推送事件。

02

小团队自动化负责人

自托管 n8n 时数据留在自己的 Docker volume;凭据集中保存在实例内而非散在 .env 文件。

03

已从 Zapier/Make 迁出的开发者

需要可版本化的工作流导出、自定义 HTTP 节点和本地调试 Webhook URL。

用 Docker 安装并启动 n8n

  1. 1

    准备 Docker

    macOS/Windows 安装并启动 Docker Desktop;Linux 安装 Docker Engine(见 docs.docker.com)。确认 docker --version 可用。

  2. 2

    创建 compose 目录

    例如 mkdir ~/n8n-local && cd ~/n8n-local,新建 docker-compose.yml(文件名也可为 compose.yaml)。

  3. 3

    写入官方推荐的服务定义

    使用 n8n 文档中的 Docker 镜像 docker.n8n.io/n8nio/n8n,映射端口 5678:5678,挂载 named volume 到 /home/node/.n8n 以持久化工作流与凭据(见 docs.n8n.io/hosting)。

  4. 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. 1

    浏览器访问

    打开 http://localhost:5678。首次访问会引导创建实例所有者账号(邮箱 + 密码),按屏幕提示完成(以当前 n8n 版本 UI 为准)。

  2. 2

    熟悉画布

    左侧为节点库,中间为工作流画布,右上角可切换「Editor / Executions / Settings」。先新建空白工作流(New workflow)。

  3. 3

    保存与命名

    给工作流起名(如 Hello Webhook)并保存,避免关闭浏览器后丢失未保存节点。

第一个 Webhook 工作流

  1. 1

    添加 Webhook 触发器

    点击「+」搜索 Webhook,选 Webhook 节点作为触发器。HTTP Method 选 GET 或 POST(练习可用 GET)。

  2. 2

    复制测试 URL

    在 Webhook 节点面板查看 Test URL(测试模式)或 Production URL(工作流激活后)。本地 Docker 一般为 http://localhost:5678/webhook/… 或 /webhook-test/…,以节点显示为准。

  3. 3

    添加响应节点

    再接一个节点:例如 Respond to Webhook(返回 JSON/文本),或 Set 整理字段后接 Respond。用连线把 Webhook 输出连到下一节点。

  4. 4

    执行测试

    点击「Test workflow」或「Listen for test event」,在另一个终端运行 curl "http://localhost:5678/webhook-test/…"(替换为节点上的 Test 路径)。Executions 面板应出现成功记录。

  5. 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 本地练习。

开始一场会议