雨云搭建 n8n 自动化工作流平台

用雨云 KVM 云服务器 Docker 自建 n8n,拖节点连线搭自动化工作流,可自托管的 Zapier 替代
发布于 更新于
15

每天重复做的那些小事——把表单提交写进表格、新文章发布后同步通知到群、定时抓取汇率存档、收到特定邮件自动建待办——单个都不难,串起来却要么靠手工要么写一堆脚本。n8n 是开源的自动化工作流平台,用拖节点连线的方式把几百种服务和自定义逻辑串成自动流程,相当于可以自托管的 Zapier。本文用雨云 KVM 云服务器把 n8n 部署成一个 24 小时在线的自动化中枢。

n8n 能做什么,为什么要自托管

n8n 的基本单位是「工作流」:一个触发器(定时、Webhook、轮询)加一串处理节点(HTTP 请求、条件判断、数据转换、写数据库、发通知)。内置 400+ 服务节点,不够用还有万能的 HTTP Request 和 Code 节点(跑 JavaScript/Python),几乎没有接不上的东西。

对比 Zapier 这类 SaaS:按任务次数收费,跑得多账单可观,而且所有数据(API 密钥、业务数据)都过第三方。自托管 n8n 没有次数限制,密钥和数据都在自己服务器上,对接内网或私有服务也不受限——比如直接操作之前部署的 Gitea 私有仓库Miniflux RSS 的 API。

几个我实际在跑的工作流:

  • 定时调用 Uptime Kuma API 汇总一周可用率,每周一早上推送到手机;
  • Webhook 接收网站表单,清洗后写入数据库并发邮件回执;
  • 每天抓取指定 RSS 的新条目,过滤关键词后推送摘要。

服务器与部署

n8n 是 Node.js 应用,空载内存 300M 左右,工作流不重的话 1 核 2G 够用;大量并发执行或跑 Code 节点建议 2 核 4G。自动化中枢要求 24 小时在线且时区正确,我用雨云 KVM 云服务器(官网入口),宁波/深圳节点对国内服务的 Webhook 响应快,下单优惠码 admin01 五折,7 天无理由退款。选购参考 雨云 VPS 上手指南

mkdir -p /opt/n8n/data && cd /opt/n8n && chown -R 1000:1000 data

docker-compose.yml

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.example.com/
      - GENERIC_TIMEZONE=Asia/Shanghai
      - TZ=Asia/Shanghai
      - N8N_ENCRYPTION_KEY=换成一串随机长字符串
    volumes:
      - ./data:/home/node/.n8n

三个环境变量最容易出错:

  • WEBHOOK_URL 必须是最终的 https 域名,否则界面里显示的 Webhook 地址是错的,外部服务调不进来;
  • GENERIC_TIMEZONE 不设的话定时触发器按 UTC 跑,早上 8 点的任务会在下午 4 点执行;
  • N8N_ENCRYPTION_KEY 用于加密存储的凭据,务必自己指定并备份,否则容器重建后所有已保存的 API 密钥全部解不开。

启动 docker compose up -d,Nginx 反代 5678 端口配 HTTPS(同样需要 WebSocket 支持头),首次访问设置管理员账号。

第一个工作流:网站宕机日报

以「每周汇总网站可用率」为例体验一下节点流:

  1. Schedule Trigger 节点:每周一 08:00;
  2. HTTP Request 节点:调用监控服务的 API 拉取一周数据;
  3. Code 节点:几行 JS 算出各站点可用率百分比、拼成文本;
  4. 通知节点:接企业微信/邮件/Telegram 任一渠道发出。

点「Execute Workflow」单步测试,每个节点的输入输出数据都可视化展示,调试体验比裸写脚本好很多。测试通过后把工作流切到 Active,触发器就常驻生效了。

运维要点与踩坑

  • 凭据备份data 目录 + N8N_ENCRYPTION_KEY 两者齐全才能完整恢复,定期打包备份到对象存储(做法见 对象存储备份实践)。
  • 执行历史膨胀:默认保留所有执行记录,SQLite 会越来越大,加环境变量 EXECUTIONS_DATA_MAX_AGE=168 只留 7 天。
  • Webhook 收不到:先核对 WEBHOOK_URL,再确认工作流处于 Active 状态——测试模式的 Webhook 地址和生产地址不同,这是新手最常见的困惑。
  • 内存溢出:单次处理大数据集时 Node 默认堆内存可能不够,环境变量加 NODE_OPTIONS=--max-old-space-size=1536

合规提醒

自动化工作流仅限对接自有账号与已获授权的 API,采集公开数据时须遵守目标网站的服务条款与 robots 协议、控制频率。依据《网络安全法》《个人信息保护法》《数据安全法》,不得利用自动化工具非法抓取、加工他人个人信息或实施对他人系统的骚扰性请求。涉及个人信息的工作流应最小化收集并加密存储凭据。

小结

n8n 把「写脚本 + 配 cron + 处理报错通知」这一整套琐事收敛成可视化工作流,自托管版本没有次数限制、数据不出自己服务器。雨云 KVM 1 核 2G 即可起步,优惠码 admin01 五折,配好时区、Webhook 域名和加密密钥三个关键项,你的 24 小时数字助理就上岗了。

常见问题(FAQ)

n8n 和 Zapier 有什么区别?
Zapier 按任务次数收费且数据经过第三方;自托管 n8n 无次数限制,API 密钥和业务数据都留在自己服务器,还能对接内网私有服务,长期跑大量工作流成本低得多。
n8n 定时任务执行时间不对怎么回事?
没设时区,默认按 UTC 执行,会差 8 小时。在环境变量里加 GENERIC_TIMEZONE=Asia/Shanghai 和 TZ=Asia/Shanghai 后重启容器即可。
为什么外部服务调不通 n8n 的 Webhook?
两个常见原因:WEBHOOK_URL 没设成最终 https 域名,界面显示的地址是错的;工作流没切到 Active 状态——测试模式与生产模式的 Webhook 地址不同。
雨云优惠码 admin01 怎么用?
雨云下单页优惠码/推广码输入框填 admin01 即享五折,以结算页显示为准。n8n 轻量工作流 1核2G 够用,支持 7 天无理由退款。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

用雨云 KVM 云服务器 Docker 自建 Huginn 信息流自动化:Website Agent 抓取网页、RSS Agent 聚合、De-duplication 去重、Webhook 接 n8n,与 n8n 定位区分,含优惠码 adm

用雨云 KVM 云服务器 Docker 自建 Vikunja 任务与项目管理平台:多视图任务管理、子任务与标签、到期提醒、Webhook 接 n8n 自动化,含优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Memos 轻量记录工具,配 Nginx 反代 HTTPS、标签与双向链接。含时区坑、数据备份与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Outline 团队文档协作(Outline+PostgreSQL+Redis+对象存储),配 Nginx 反代 HTTPS、空间权限与备份。含环境变量坑与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 部署 Code Server,浏览器里直接写代码、跑终端、调端口,环境只在服务器维护一份。含 HTTPS 反代、强密码安全与优惠码 admin01 五折。