Skip to content

n8n本地部署——好用的自动化平台

Posted on:2023年11月4日 at 18:55

这个应该是系列“再论智能家居与生态融合”的第二篇文章!

但是名字太中二了,我就不写了,只留标签方便检索。

为什么需要自动化平台?

我这里的自动化和 github actions 等 CI 不同,我的自动化是要求在某些条件发生改变时执行某些操作。

比如,我的某个朋友发了一篇博客,我用 rss 订阅了,我希望将它推送到上文所说的消息推送服务。

就这么简单的一个功能,我翻遍全网都没有什么很好的免费解决方案。

我先说说我踩过的坑吧,大家先不要动手。

Integrately

是国外一家自动化平台,配置十分友好,但美中不足的是没有免费计划方案(webhook 是付费计划才有的内容)。

新用户有两周试用,因为我问了他们客服这方面的问题还多送了我两周以及一堆优惠券,但是两周之后你的自动化流程就会被暂停并且无法运行。

如果付费并且不想自己搭建的话,我十分推荐 Integrately,很可惜我没啥钱

工作流概览:Inoreader 文件夹 --oauth--> Integrately --webhook--> push service

IFTTT

也是一家自动化平台,免费计划够用。

但是这次 Inoreader 不行了,对于 IFTTT 的应用连接,必须要 Inoreader 的付费计划,那个计划真的贵死。

不过 Inoreader 的付费计划是自带 rss webhook 推送的。

工作流概览:Inoreader 文件夹 --oauth--> IFTTT --webhook--> push service

node-red

这个我之前大力推荐,是智能家居圈子里享有盛名的自动化平台。

但是现在似乎有些衰落了,这是我之前的 rss 推送代码:

node-red-rss-push

用了一个 rss 的第三方库,但是那个库的 bug 超级多,有一次某人发了一篇文章,这个文章被重复推送了至少 20 次,而且在我的博客上,我收到的推送信息永远都是 Rickyxrc/CF575A题解

不是,尽管我对那道题印象深刻,你也没必要每次都推吧(

当我点进依赖的时候,我才意识到为什么:

node-red 是优秀的平台,但由于软件生态长期未更新和文档的不完善,在实际场景下会出现很多问题,所以我最后放弃了。

n8n

最初不知道这玩意可以离线部署,云端的必须付费。

本地部署挺好的,因为家里刚好有跑 Homeassistant 的机子,占用很低,顺便部署一个。

本地部署我用的是 Docker,贴出 Casaos(一个开源的家庭管理系统,用于在你的家用服务器或者树莓派上可视化管理 docker 容器)自动生成的 compose 文件。

您需要按需修改里面的部分,我这份 compose 文件在我的机器上可以正常运行。

x-casaos 段可以删除,不过如果您也是 CasaOS 用户的话(这么巧!?),这份 compose 文件应该可以不修改一个字地正常运行。

name: playful_chorok
services:
  main_app:
    cpu_shares: 10
    command: []
    container_name: n8n
    deploy:
      resources:
        limits:
          memory: 256M
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
    image: n8nio/n8n
    labels:
      icon: https://icon.casaos.io/main/all/n8n.png
    ports:
      - target: 5678
        published: "5678"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /tmp/casaos-compose-app-2408285898/n8n
        target: /home/node/.n8n
    devices: []
    cap_add: []
    network_mode: bridge
    privileged: false

x-casaos:
  author: self
  category: self
  hostname: ""
  icon: https://icon.casaos.io/main/all/n8n.png
  index: /
  port_map: "5678"
  scheme: http
  store_app_id: playful_chorok
  title:
    custom: n8n

进去之后需要你注册一个账户,随便输就行。

然后就创建工作流并调试运行即可,所有的代码都可以基于 Javascript 编写,十分方便。

我的工作流如下:

n8n-workflow

还有一个定时起床,通过 homepod 语音 tts 播报的 node-red 流,准备迁移到 n8n 上,改天回去写这部分(开鸽)。



在 Rickyxrc's blog 出现的文章,若无特殊注明,均采用 CC BY-NC-SA 4.0 协议共享,也就是转载时需要注明本文章的地址,并且引用本文章的文章也要使用相同的方式共享。