AI其他

n8n – 使用 Docker Desktop 快速部署 n8n

什么是n8n?🔖


n8n 是一款开源、灵活且高度可定制的工作流自动化平台,其核心理念是通过可视化拖拽界面将不同的应用、服务、API或数据源连接起来,实现复杂的自动化任务,而无需编写大量代码。

n8n 是一个开源的工作流 自动化 工具,支持通过可视化节点对各类服务(如 GitHub、Slack、HTTP API 等)进行编排。接下来将演示如何在 macOS 上,借助 Docker Desktop,几分钟内完成 n8n 的安装与运行。

简单来说:n8n 是一个开源的、可视化的自动化平台。它让你无需写代码,就能像搭积木一样连接不同的应用和服务(如邮件、表格、文档、数据库、AI 模型、甚至你公司的内部系统),创建自动执行任务的「工作流」(Workflow)。

n8n 能够连接任何有 API 的应用,并且几乎不需要编程知识就能操作数据。简单来说,就是让不同的软件”自动对话”。

github:https://github.com/n8n-io/n8n
  • 核心特性
    • 完全开源免费:n8n 采用 MIT 开源许可,源代码托管于 GitHub,用户可自由查看、修改与部署。
    • 可视化工作流编排:通过直观的拖拽式界面构建多步骤自动化流程,降低技术门槛。
    • 丰富的集成生态:官方支持 1700+ 预设模板 和 数百个原生节点(如 Slack、Google Sheets、Notion、Webhook 等),同时支持自定义节点开发。
    • 灵活的触发机制:支持定时任务、事件驱动、手动触发、Webhook、API 调用等多种触发方式。
    • 强大的逻辑控制:支持条件分支(if/else)、循环、错误处理等复杂逻辑,可构建企业级自动化流程。
    • 部署方式灵活:既可本地部署(Docker、本地 Node.js 环境),也可自托管于私有云/公有云,或使用其官方SaaS 云服务(含 14 天试用)。
    • 代码与无代码融合:在可视化流程中可随时插入 JavaScript 或 Python 脚本,实现高度定制化逻辑。
  • 适用场景
    • 个人效率提升:自动备份笔记、定时抓取网页内容、邮件自动化等。
    • 团队协作自动化:将 Slack 消息同步至 Notion、自动创建 Jira 工单、审批流提醒等。
    • 数据集成与处理:聚合多个 API 数据、清洗并写入数据库、生成报表等。
    • AI 工作流构建:集成 LLM(如 OpenAI、本地模型),构建多步骤 AI Agent,实现“用自然语言操作业务系统”。
  • What does n8n mean?
简称释义:n8n 是 nodemation 的缩写,读作 n-eight-n。

创始人兼 CEO 扬・奥伯豪泽(Jan Oberhauser)原话:
“经常有人问我这个问题,提问次数远超我的预期,所以我索性在这里统一说明一下。当初为项目挑选合适名称、同时还要保证域名未被注册时,我很快发现自己能想到的好听名字全都被占用了。
最后敲定了 nodemation 这个词:前缀 node-,一方面代表它采用节点式可视化视图,另一方面项目基于 Node.js 开发;后缀 -mation 取自 automation(自动化),这也正是这个工具的核心用途。
但我实在不喜欢这个名字太长了,无法想象每次在命令行里输入这么一长串。于是最终简化成了 n8n。”

  

拉取并运行 n8n 容器🔖


使用官方镜像 n8nio/n8n:latest,通过一条命令启动服务:

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v /Users/xxx/Documents/k8s/pv/n8n:/home/node/.n8n \
  -e N8N_SECURE_COOKIE=false \
  n8nio/n8n:latest
  • -d:后台运行--name
  • n8n:设置容器名称
  • -p 5678:5678:端口映射,主机访问 5678 即映射到容器
  • -v /Users/xxx/Documents/k8s/pv/n8n:/home/node/.n8n:挂载数据卷
  • -e N8N_SECURE_COOKIE=false:关闭 Cookie 的 Secure 安全标记,允许浏览器在纯 HTTP 明文协议下携带登录会话 Cookie 访问 n8n。

命令执行完毕后,可通过 docker ps 查看容器状态。

确认有 n8n 容器在运行,且 PORTS 显示 0.0.0.0:5678->5678/tcp。

打开浏览器,访问:

http://localhost:5678

将看到 n8n 的欢迎界面,至此部署成功,第一次打开页面会提示注册管理账号。

  

实战1:搭建“获取今日信息并保存为文件”工作流🔖


本次案例搭建一个 获取今日日期并下载文件 的简单 工作流。

🔹步骤 1:创建新工作流

首先点击Create Workflow创建工作流。

Overview (概览): 这里会显示一些关键数据,比如:

Prod. executions (生产执行次数): 过去 7 天内成功运行了多少次工作流。

Failed prod. executions (失败的生产执行次数): 过去 7 天内有多少次工作流运行失败了。

Failure rate (失败率): 失败的百分比,让你快速掌握流程的稳定性。

Time saved (节省的时间): 这个功能很酷,能帮你估算通过自动化节省了多少时间。

Run time (avg.) (平均运行时间): 每次工作流运行平均需要多长时间。

点击 Create WorkFlow 按钮,创建一个工作流
顶部是工具栏,包含工作流名称、开启关闭工作流、保存工作流、共享和导入导出……等功能按钮。

中间是白板工作区,绘制、建立工作流的主要区域,可以在此放置和连接不同的节点,还有利用便利贴(Sticky Notes)撰写备注。

  

  

🔹步骤 2:添加手动触发器

点击左侧 +,右侧会弹出抽屉,选择第一个Trigger manually

一些核心节点解释:
触发节点 (Trigger Nodes):Manual Trigger:手动测试
Schedule Trigger:Cron定时任务
Webhook:接收HTTP请求
聊天对话框触发

工作台就会出现第一个节点,点击右侧的加号可以继续添加节点。

我们可以通过搜索,或者下面的分类里去找需要的功能节点。

  

🔹步骤 3:添加 Code 节点(生成内容)

选择code节点为例,点击后会出现这个弹窗,我们在代码框放上自己所需要的功能代码,点击Execute step(执行步骤)按钮,右侧output那边就会出现输出的内容

这里可以选择JavaScript或者Python(测试中)。

输入代码:

from datetime import datetime

# 获取第一个输入项
item = _input.first()

# 从 item.json 中提取 randomQuote
random_quote = item.json.get("randomQuote", "今日 LucianaiB 名言")

# 构造日期
today = datetime.now()
date_str = f"{today.year}年{today.month}月{today.day}日"

# 生成推文内容
tweet_content = f"📚 我不做 N8N 应用的传播者,而是希望你能真正爱上它、主动尝试,并动手设计属于自己的自动化流程。"

# 返回数据
return {
    "quote": random_quote,
    "date": date_str,
    "tweetContent": tweet_content
}

点击左上角的Back to canvas,可以返回工作台。

  

🔹步骤 4:转换为文本文件

添加下一个节点Convert to File(保存为文件),选择text文件。

直接拖到左侧的节点到右侧就是输入(如果左侧没有,是因为需要上一个节点运行成功才可以),点击Execute step(执行步骤)按钮,右侧output那边就会出现输出的内容,我这里选择了预览,可以看到成功显示。

  

🔹步骤 5:写入本地磁盘

再添加一个节点Write Files from Disk。

在File Path and Name输入文件名称(例如:lucianaib.text),点击Execute step(执行步骤)按钮,右侧output那边就会出现输出的内容。

  

🔹步骤 6:下载文件 & 保存工作流

点击右边的Download文件就被下载下来了。

回到主界面我们点击Execute workflow,执行整个工作流,成功的右下角都会出现一个勾的图标

一切都没问题后就可以点击右上角的save保存了。

左上角这边可以更改工作流的名称和添加标签。

右侧这边可以复制,下载,导入工作流等操作。可以方便把工作流分享给别人或直接使用别人的工作流。

提示:工作流支持一键导出/导入,方便分享或迁移。

  

实战2:聊天对话框触发,实现一个n8n版本的AI对话机器人 🔖


我们利用聊天对话框触发,实现一个n8n版本的AI对话机器人
用到三个节点:On chat message , AI Agent , DeepSeek Chat Model

先添加一个on chat message

在输入框输入一个“你好”,点击运行

AI Agent 节点配置 ,需要将On chat message节点的chatInput 作为 Prompt

选择模型选择DeepSeek Chat Model

第一次涉及到了配置Credential

我们需要到https://platform.deepseek.com/api_keys 创建一个API Key

将创建的 key 填到这里

保存一下,连接成功会有提示

配置好之后,我们可以到左下角的对话框,输入我们的内容,可以看到正确的回复了

添加【记忆】让AI能够根据上下文回答

默认是 5,我改成了 30

配置RSS,让AI助手能够访问指定网络
RSS(Really Simple Syndication)是一种用于订阅网站内容的技术。它允许用户方便地获取和阅读他们感兴趣的网站的最新更新,而无需逐个访问这些网站。
我创建一个RSS读取工具,然后进行配置。

以老王博客为例,https://manateelazycat.github.io/feed.xml

全部配置完成之后,我们在下方点击【打开聊天】测试一下。

我让这个Agent给我一些如何使用 ai 的建议,可以看到没有问题,调用DeepSeek和RSS联网后,输出了一篇文章。

至此,我们创建的工作流就顺利跑通了!

  

总结🔖


n8n的本质就是:数据从一个节点流向另一个节点,你要做的就是控制这个流动过程。理解了数据流,其他都是细节。

最重要的是,n8n 的学习曲线很平缓,即使是编程小白也能快速上手。你只需要有一个想法——”我想让A和B自动连接”,然后动手试试,很快就能做出实用的自动化流程。

相信我,一旦你体验过自动化带来的便利,就再也回不去手动操作的时代了。

官方资源