N8N 介绍

n8n-screenshot-readme

N8N 是一个工作流自动化平台,为技术团队提供代码的灵活性和无代码的速度。n8n 具有 400+ 集成、原生 AI 功能和公平代码许可证,可让您构建强大的自动化功能,同时保持对数据和部署的完全控制。

🚢 项目地址

🚀 N8N 的优势

  • AI 原生平台 :使用您自己的数据和模型基于 LangChain 构建 AI 代理工作流。

  • 丰富的节点库: N8N 拥有超过 2000 个节点,涵盖了各种常见的应用和服务,如社交媒体平台(Facebook、Twitter)、云存储(Google Drive、Dropbox)、项目管理工具(Trello、Asana)等。用户可以像搭积木一样,通过拖拽这些节点轻松构建复杂的工作流。

  • 可视化工作流设计:N8N 提供直观的可视化编辑器,无需编写复杂的代码,用户就能清晰地看到工作流的各个步骤和数据流向。在这个编辑器中,用户可以方便地添加、删除和连接节点,对工作流进行实时调整和优化。

  • 多环境部署:N8N 可以在多种环境中部署,包括本地服务器、云服务器(如 AWS、Google Cloud)以及容器化环境(如 Docker)。这种灵活性使得用户可以根据自己的需求和基础设施选择最合适的部署方式。

  • 活跃的社区 :400+ 集成和 900+ 即用型模板。

🌏️N8N 典型应用场景

  • 营销自动化: 利用 N8N 可以实现营销流程的自动化。例如,当有新用户注册时,自动发送欢迎邮件;根据用户的行为和偏好,自动推送个性化的营销内容;定期从社交媒体平台收集数据,进行分析并生成报告等。

  • 数据备份与同步: N8N 可以帮助用户定期将重要数据从一个存储位置备份到另一个存储位置,确保数据的安全性和可用性。同时,还可以实现不同数据源之间的数据同步,保证数据的一致性。

  • 项目管理自动化: 在项目管理中,N8N 可以自动处理任务分配、进度跟踪和提醒等工作。当任务状态发生变化时,自动通知相关人员;根据项目进度自动生成报表,为项目决策提供支持。

🛠️ 部署N8N社区版本

👻 先决条件/要求

  • 最低 512MB RAM(推荐 1GB+)

  • 具备docker 或者 docker-compose 环境

🐳 方法一:使用Docker 命令部署

<span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/vtnuMBibofcaD2B1MEjryPzNRnVrBteNzfp3qrx9RRiasgpYU6OlCy72A2OVGQUyXG8kmDjJ214ZF2f2OOPfoON87kAqBibPGLn/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"></span><code><span leaf="">docker volume create n8n_data</span><span leaf=""><br></span><span leaf="">docker run -itd --name n8n -p 5678:5678 -e N8N_SECURE_COOKIE=</span><span><span leaf="">false</span></span><span leaf="">&nbsp;-v n8n_data:/home/node/.n8n docker.cnb.cool/srebro/pidin/n8n:latest</span><span leaf=""><br></span></code>

🐳 方法二:使用Docker Compose部署 (推荐)

<span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/vtnuMBibofcaD2B1MEjryPzNRnVrBteNzfp3qrx9RRiasgpYU6OlCy72A2OVGQUyXG8kmDjJ214ZF2f2OOPfoON87kAqBibPGLn/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"></span><code><span leaf="">version:&nbsp;</span><span><span leaf="">'3'</span></span><span leaf=""><br></span><span leaf="">services:</span><span leaf=""><br></span><span leaf="">&nbsp; n8n:</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">#image: docker.n8n.io/n8nio/n8n</span></span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; image: docker.cnb.cool/srebro/pidin/n8n:latest &nbsp; &nbsp;</span><span><span leaf="">#CNB镜像加速地址</span></span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; ports:</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; -&nbsp;</span><span><span leaf="">"5678:5678"</span></span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; restart: always</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; container_name: n8n</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; environment:</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; - N8N_SECURE_COOKIE=</span><span><span leaf="">false</span></span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; volumes:</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; - n8n_data:/home/node/.n8n</span><span leaf=""><br></span><span leaf="">volumes:</span><span leaf=""><br></span><span leaf="">&nbsp; n8n_data: {}</span><span leaf=""><br></span></code>
  • 浏览器访问n8n 地址:http://ip:5678/

🧭 使用Nginx反向代理

<span data-cacheurl="" data-remoteid="" data-lazy-bgimg="https://mmbiz.qpic.cn/mmbiz_svg/vtnuMBibofcaD2B1MEjryPzNRnVrBteNzfp3qrx9RRiasgpYU6OlCy72A2OVGQUyXG8kmDjJ214ZF2f2OOPfoON87kAqBibPGLn/640?wx_fmt=svg&amp;from=appmsg" data-fail="0"></span><code><span><span leaf="">#N8N</span></span><span leaf=""><br></span><span leaf="">&nbsp; server {</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; listen &nbsp; &nbsp; &nbsp; 443 ssl;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; server_name &nbsp;n8n.srebro.cn; &nbsp;</span><span><span leaf="">##替换成自己的域名</span></span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; error_page &nbsp;404 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/404/404.html;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; charset utf-8;</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; ssl_certificate /home/application/nginx/cert/srebro.cn.pem;&nbsp;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; ssl_certificate_key /home/application/nginx/cert/srebro.cn.key;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; ssl_session_cache &nbsp; &nbsp;shared:SSL:1m;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; ssl_ciphers &nbsp;HIGH:!aNULL:!MD5;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; ssl_prefer_server_ciphers &nbsp;on;</span><span leaf=""><br></span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">&nbsp;location / {</span><span leaf=""><br></span><span leaf="">&nbsp;proxy_http_version 1.1;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header Upgrade&nbsp;</span><span><span leaf="">$http_upgrade</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header Connection&nbsp;</span><span><span leaf="">"upgrade"</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header X-Real-IP&nbsp;</span><span><span leaf="">$remote_addr</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header x-wiz-real-ip&nbsp;</span><span><span leaf="">$remote_addr</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header X-Forwarded-For&nbsp;</span><span><span leaf="">$proxy_add_x_forwarded_for</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header Host&nbsp;</span><span><span leaf="">$http_host</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header X-Forwarded-Proto&nbsp;</span><span><span leaf="">$scheme</span></span><span leaf="">;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; proxy_pass http://127.0.0.1:5678;</span><span leaf=""><br></span><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp; }</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">} &nbsp;</span><span leaf=""><br></span><span leaf=""><br></span></code>
  • 初始化N8N

image-20250420225031643

![image-20250420225259024](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg' xmlns:xlink=‘http://www.w3.org/1999/xlink'%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=’%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

🎉N8N自动化案例演示

image-20250420230119082

  • 自动定期检测Linux服务器上是否有可更新的软件包,则发送电子邮件📧

image-20250420230148479

复制JSON

image-20250420230233123

  • 切换到我们的N8N社区版平台上

image-20250420230427976

  • ctrl+v 直接粘贴进来

image-20250420230524916

  • 选择第二个节点,修改需要检测的服务器地址,并创建服务器凭证

image-20250420230615501

image-20250420230648488

  • 在Command命令区域,输入需要执行的命令;我这里是openeuler系统,所以他对于检测软件包升级的命令应该是yum list --update

image-20250420230921790

  • 模拟使用Test setp 是可以查看到数据的

image-20250420233532378

  • 配置邮件发送功能

  • 定义SMTP 邮件服务器信息

image-20250420233659733

  • 定义邮件的主题,发件人,收件人信息

image-20250420233721387

  • 模拟使用Test setp 是可以查看到数据的

image-20250420233827243

  • 回到工作流面板,点击最下面的Test workflow 手动触发工作流

image-20250420233903420

image-20250420234125775

  • 验证是否收到了邮件

image-20250420234207313

这样一个简单的工作流就形成了,是不是挺简单;结合定时任务,就可以定期检测我们服务器上是否有最新的软件包,从而提醒我们运维人员即使升级。

最后呢,也希望N8N 能成为各位工作上的得力助手。

🎁 获取N8N

  • CNB 仓库地址:https://cnb.cool/srebro/pidin/-/tree/main/pidin/ai/n8n