n8n 本地部署及实践应用,实现零成本自动化运营 Telegram 频道(保证好使)

发布于:2025-04-14 ⋅ 阅读:(26) ⋅ 点赞:(0)

n8n 本地部署及实践应用,实现零成本自动化运营 Telegram 频道(保证好使)

简介

n8n 介绍

一、高度可定制性

二、丰富的连接器生态

三、自托管部署(本地部署)

四、社区驱动

n8n 的部署

一、前期准备

二、部署步骤

1、检查系统的网络环境

2、下载 n8n 源码

3、n8n 容器的启动(docker run)

4、n8n 容器的启动(docker compose)

n8n 的使用

一、工作流的创建

二、触发器节点

自动化运营 Telegram 频道

备份与加载 n8n 的镜像

一、备份 n8n 的镜像

二、加载 n8n 的镜像

简介

        在数字化办公与自动化流程日益普及的今天,高效地整合各种工具和服务,实现工作流的自动化,已成为提升生产力的关键。n8n 作为一款强大的开源工作流自动化平台,为我们提供了一种灵活且强大的方式,来连接不同的应用程序,自动化复杂的任务流程。本文将详细介绍 n8n 的特性,并一步步引导你完成 n8n 的本地部署,最后探索如何使用它创建实用的工作流。

n8n 介绍

        n8n 是一个功能丰富的开源工作流自动化工具,旨在帮助用户轻松连接各种应用和服务,构建自动化工作流程。

一、高度可定制性

        n8n 提供了可视化的工作流编辑器,通过简单的拖放操作,就能创建复杂的工作流程。同时,它还支持在节点中编写自定义 JavaScript 代码,满足高级用户对功能定制的需求。这意味着,无论是简单的数据处理任务,还是涉及多个系统交互的复杂业务流程,n8n 都能灵活应对。

二、丰富的连接器生态

        n8n 拥有超过 600 个预构建的连接器,涵盖了常见的办公软件(如 Google Workspace、Microsoft 365)、社交媒体平台(如 Facebook、Twitter)、数据库(如 MySQL、PostgreSQL)、云存储服务(如 Dropbox、Google Drive)等。借助这些连接器,用户可以轻松实现不同应用之间的数据传输、操作和协同,极大地扩展了工作流的应用场景。

三、自托管部署(本地部署)

        对于注重数据隐私和安全性的企业或个人用户,n8n 支持自托管部署。你可以将 n8n 部署在自己的服务器或本地环境中,完全掌控数据的存储和处理,避免数据泄露风险,n8n 支持 Nodejs 部署和 Docker 部署,比较推荐 Docker 部署,后面 n8n 的部署都是使用 Docker 进行部署。同时,自托管部署也为用户提供了更大的灵活性,可以根据自身需求进行系统配置和定制化开发。

四、社区驱动

        n8n 拥有一个活跃的社区,社区成员不仅贡献了大量的插件、模板和使用案例,还积极参与技术讨论和问题解答。这使得用户在使用 n8n 的过程中,能够获得丰富的学习资源和技术支持,加速工作流的开发和优化。

n8n 的部署

一、前期准备

环境要求

  • 硬件要求:CPU ≥ 2 cores (x86)(n8n 不太占用 CPU 资源);内存 320 MB - 2 GB;硬盘 512 MB - 4 GB SSD
  • 软件要求:Ubuntu ≥ 22.04;Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1 或 Docker Desktop 4.39.0 & Docker Engine 28.0.1(Windows 环境下)

网络要求

  • 本地网络:部署时可以使用 VMware 的 NAT 模式,如果只是本机使用就已经无需调整了,如果是需要内网中为其他设备提供服务,那就需要配置成 bridge(桥接)模式了;如果使用 Docker Desktop 进行部署,只需要保持默认设置即可
  • 外部网络: n8n 是使用 docker 进行部署,在构建时需要从网络上拉去镜像,国内虽然有镜像源,但是并没有外面的全,所以可能会导致超时导致构建失败,所以提前准备一个靠谱的代理(科学上网)是非常必要的
  • DNS:需要在 docker compose 或 docker run 时指定,否则可能会出现 The DNS server returned an error, perhaps the server is offline. 的错误

Ollama 的安装DeepSeek + Ollama 部署自己本地的 AI 大模型(Windows,AMD 显卡也能用)_为啥deepseek要装ollama-CSDN博客 

docker 的安装

二、部署步骤

        本次演示将会在 Windows 环境下进行安装,Windows 和 Linux 除了 docker 的安装不太一样之外,后面的一系列命令都是一样的,在生产环境部署建议使用 Linux 这会相对稳定一点,但是也需要一定的基础。

1、检查系统的网络环境

        在装好 Docker Desktop 后开始检查的及时网络问题了,首先我们要把之前提到的代理打开,并调节到全局模式(拉取镜像的成败关键)

​        同时即使开了代理有的还是会失败,这是由于运营商的问题,因为每个运营商对于不同 IP 访问的路由设置都不一样,目前在广东测试发现电信是最好使的。可以根据下面的命令进行 ping 测一下:

ping www.docker.com
ping www.github.com

        如果到最后实在是没办法了,可以拿我提前安装好的镜像直接导入到 docker 当中来使用,这样就可以避免网络问题了,链接在“备份与加载 n8n 的镜像”的部分

2、下载 n8n 源码

        n8n 是一个开源软件,我们可以直接上 Github 上搜索并下载其源码,链接为:https://github.com/n8n-io/n8n,可以直接下载 ZIP 压缩包或通过 git 命令下载(需要提前安装 git)

git 的安装

Linux:

sudo apt-get install -y git

        如果已经安装过会如下图所示

​Windows:

        直接打开该链接下载:Git - Downloads

​​        下载完成后双击安装,安装选项默认即可。然后我们去 Github 上获取克隆链接,如下图所示

​​        打开目标目录,在地址栏输入 cmd 根据当前目录打开终端,并输入以下命令(该命令会下载到当前所在目录下)

git clone https://github.com/n8n-io/n8n.git

3、n8n 容器的启动(docker run)

        在官方给出的 README 文件给出的快速启动方式当中,是使用以下命令来启动的

# 创建一个 Docker 数据卷,用于存储和持久化 n8n 容器的数据,该卷名为 n8n_data,即时 Docker 容器重启或者删除也不会丢失数据,该操作为幂等操作,所以重复执行也没关系
docker volume create n8n_data

# 启动容器
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

​        但出于以后的管理需求,我个人还是建议使用 docker compose。

4、n8n 容器的启动(docker compose)

        目前只是用到一个 n8n 的镜像所以并不需要构建就可以了,至于为什么要使用 docker compose,这是为了日后需要部署多个应用(traefik、postgre 等)支撑时方便我们自己维护环境。

.env(环境变量)

# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from
# The top level domain to serve from
# DOMAIN_NAME=example.com

# The subdomain to serve from
# SUBDOMAIN=n8n

# The above example serve n8n at: https://n8n.example.com

# Optional timezone to set which gets used by Cron and other scheduling nodes
# New York is the default value if not set
GENERIC_TIMEZONE=Asia/Shanghai

# The email address to use for the TLS/SSL certificate creation
# SSL_EMAIL=user@example.com

# With Postgres env
# POSTGRES_USER=root
# POSTGRES_PASSWORD=123456
# POSTGRES_DB=n8n

# POSTGRES_NON_ROOT_USER=root
# POSTGRES_NON_ROOT_PASSWORD=123456

docker-compose.yml(配置文件)

name: n8n_docker

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    dns:    # 指定 DNS,如果未指定很可能某些网站会出现 The DNS server returned an error, perhaps the server is offline. 的错误
      - 8.8.8.8
    environment:
      - N8N_PORT=5678
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
    volumes:
      - n8n_data:/home/node/.n8n
      - ./local-files:/files    # 把容器环境中的 /files 映射到 ./local-files 中
    networks:    # 指定容器所属的网络
      - backend

# 创建一个 Docker 数据卷,用于存储和持久化 n8n 容器的数据,该卷名为 n8n_data,即时 Docker 容器重启或者删除也不会丢失数据
volumes:
  n8n_data:

networks:
  backend:
    driver: bridge    # 使用桥接模式来连接网络
    ipam:    # 容器内的网络设置
      driver: default    # 使用宿主机默认的网卡
      config:
        - subnet: 169.254.50.0/24
          gateway: 169.254.50.1

        你可以把环境变量和配置文件都放在根目录下,也可以像我一样都放在一个文件夹下

​        无论你使用哪一种方式,只需要注意,使用 docker compose 时在 docker-compose.yml 文件所在目录下执行即可

​        启动完成后,看到 http://localhost:5678 表示启动成功

​        在浏览器输入以下 URL 来进行测试(127.0.0.1 与 localhost 是一样的)

​        我们需要先注册一个账号,然后在进行登录。登陆后我们点击加号就可以开始创建我们自己的自动化流程了

​        至此,自托管部署的 n8n 就部署完成了。 

n8n 的使用

一、工作流的创建

​        创建空白工作流后的操作界面如下

​        如果之前使用过 Dify 之类的相信对这个工作流的操作页面不会陌生,同样的点击加号开始选择不同的节点来创建工作流

二、触发器节点

        通常工作流最开始的都是触发器节点,当然一个工作流当中也可以有多个触发器节点。

手动触发(即点击该按钮手动触发)

APP 事件触发

​        n8n 支持多种 app 事件触发,点进去可以发现有挺多是我们平常都会使用的,如 Github、Excel、Telegram 等

​        点开后,可以发现它支持非常多的 Github 事件,如通过评论来触发工作流、对项目的创建或删除来触发工作流等

定时触发

​        可以设置工作流每天或者每小时执行一次,还支持 Cron 来进行设置定时任务,在“自动化运营 Telegram 频道”中会使用到。

Webhook 调用

        这种方式是一种第三方服务进行回调的方式,但由于我们使用的个人电脑通常都没有公网 IP,所以不能提供 Webook 给第三方服务唤起,如果实在想用,那可以考虑把 n8n 部署在云上面。

表单提交

        当有人填写表单并提交时就会触发工作流。

其他工作流来触发

聊天消息触发

其他触发

        n8n 还支持,邮件、错误触发、本地文件操作等触发方式。

        在添加触发节点后,后续会有个加号,可以陆续地添加各种其他的工作节点,如需要了解更多可以查看官方文档:https://docs.n8n.io/integrations/

自动化运营 Telegram 频道

        该工作流,计划每天早上8点,定时自动抓取国外的 AI 相关的新闻,经过 AI 翻译整理后,自动发送到我指定的 Telegram 频道当中,总体的工作流如下图所示

1、定时触发

        设置完成后,点击右上角的 Test step 来进行节点测试,如下图所示

        由于时区我们在环境变量当中已经设置了,所以这里就直接按照环境变量当中的时区来显示时间,如果未在环境变量当中设置,可以在 Settings ——> Timezone 中的值设置为 Asia/Shanghai,如下图所示

2、获取国外新闻 API

        这里我们需要使用两个国外网站提供的 API,地址如下:

注意:这两个网站可能需要科学上网

        两个网站均需要注册账号后才能使用 API,针对个人用户每天可以请求100次,个人用户足够用了。

News API 的 API Key 获取

        注册登录后,点击主页的 Get API Key 来获取 API Key

         API Key 创建完成后如下图所示

         HTTP 请求的 URL 在下图所示的地方获取

GNews 的 API Key 获取

        注册登录后,点击主页右上角的 Dashboard 进入控制面板

        进入控制面板后就能看到已经创建好的 API Key 了

         HTTP 请求的 URL 在下图所示的地方获取

3、向 API 发起 HTTP 请求来获取新闻数据 

        回到 n8n 工作流当中,我们创建两个 HTTP 请求

        News API 和 GNews 的配置分别如下图所示

News API

注意:需要把搜索的 q 参数改为需要的值,如 AI 相关的新闻就是 q=ai。

GNews

注意:

  • 需要把搜索的 q 参数改为需要的值,如 AI 相关的新闻就是 q=ai
  • GNews 搜索出来的新闻会有多语种,这里我们需要设置 lang=en 来限定语言为英语的新闻

         设置完成后,点击Test step 测试是否设置成功,成功如下图所示

4、数据转换(JSON 转为 String)

        由于两个网站返回的 JSON 结构并不一致,为了方便后续的处理,我们需要数据转换节点来进行数据转换

        在配置前需要先执行前面的节点先,这是因为配置当中需要引用前面节点的结果,如下图所示

        两个返回的 JSON 格式结果都执行同样的数据转换,配置和操作一样。设置完成后,点击Test step 测试是否设置成功,成功如下图所示

5、合并两个数据转换后结果数据

        配置如下

        设置完成后,点击Test step 测试是否设置成功,成功如下图所示

6、调用大模型来处理数据

        创建完成后需要点击 Chat Model 下方的加号来添加 LLM

        我们这里使用 Ollama 来调用大模型

        刚开始我们需要先配置以下 LLM,按照下图配置即可

        配置好之后我们就可以回到上一个页面选择需要使用的大模型了,这里 n8n 已经把 Ollama 中的大模型列表都加载进来了

        回到 AI Agent 当中,还需要进行一些提示词相关的配置

        设置完成后,,点击Test step 测试是否设置成功,这里调用大模型需要一点时间,时间长短要看你电脑的配置,成功如下图所示

7、Telegram 频道与机器人的创建

        在调用 n8n 中的 Telegram 节点之前我们需要先获取两样与 Telegram 相关的东西:

  • Telegram 的 Access Token
  • Chat ID

Access Token

        我们要在 Telegram 上搜索 botfather,来创建我们的频道与机器人

        初次使用时请点击下方的 Start 来开始使用,然后他会自动发一段话过来,点击 /newbot 来创建

Chat ID

        在 Telegram 上搜索 get_id_bot 来查询我们的 Chat ID

        同样的初次使用时请点击下方的 Start 来开始使用,然后我们发送 /my_id 来查询自己的 Chat ID

8、n8n 中 Telegram 的设置

        然后我们使用之前获得的 Access Token 和 Chat ID 来配置节点,如下图所示

        连接成功

        设置完成后,,点击Test step 测试是否设置成功,成功如下图所示

        同时 Telegram 也能收到该频道的机器人发出来的消息

        可以看出,发送的内容与提示词当中要求的内容是比较一致的。

备份与加载 n8n 的镜像

一、备份 n8n 的镜像

1、n8n 需要备份的镜像有:docker.n8n.io/n8nio/n8n,我们可以使用以下命令来查看

docker image ls

2、使用下面的命令来进行备份

docker save -o "F:\10_Professional Resource\Docker\Images\n8n-1.86.1_images\docker.n8n.io_n8nio_n8n_latest.tar" docker.n8n.io/n8nio/n8n

备份好的镜像https://pan.baidu.com/s/1ScnIBzJ1E6fkswmn0IGfoA?pwd=6ab3 提取码:6ab3

二、加载 n8n 的镜像

          将备份的镜像拷贝到需要部署的机器之后使用以下命令进行镜像的载入

docker load -i "F:\10_Professional Resource\Docker\Images\n8n-1.86.1_images\docker.n8n.io_n8nio_n8n_latest.tar"

        加载完成后可以使用以下命令查看是否加载成功

docker image ls

​         当然也是需要重新下载源码以及修改环境变量和配置文件的,请重复前面 n8n 部署第四步中的相关点,在一切处理完成后就可以使用以下命令来启动了

# 在 n8n 中 docker-compose.yml 文件的目录下执行
docker compose up -d

网站公告

今日签到

点亮在社区的每一天
去签到