n8n 汉化版部署:解锁更灵活的自动化工作流

2,904 阅读6分钟

想玩转强大的工作流自动化工具 n8n,又想拥有更符合国人习惯的汉化体验?本文将带你一步步了解汉化版 n8n 的部署方式,并探讨如何通过自定义参数,让你的 n8n 更强大、更好用。

n8n 与 Dify

n8n作为目前大火的工作流代表,与dify在开源社区卯足了进更新迭代,誓要在AI领域叫个高下。

下面是一个简明对比表格,我们了解一下它们的区别与有点:

特性n8nDify
核心定位通用型工作流自动化,连接各种应用和服务AI 应用开发与编排平台,专注于 LLM 应用构建
主要功能数据同步、任务自动化、API 集成、定时任务、Webhook 支持LLM 应用构建、Prompt 工程、数据集管理、模型微调、RAG、Agent 编排
易用性节点式可视化编排,上手相对容易,但复杂流程需要一定学习成本界面友好,针对 AI 应用开发流程优化,上手快
灵活性非常高,支持自定义节点 (JavaScript/TypeScript),可连接几乎任何 API较高,支持自定义工具和 Agent,但主要围绕 LLM 生态
AI 能力支持集成 AI 服务节点 (如 OpenAI),但本身不直接提供 AI 模型或训练能力核心是 AI 应用开发,深度集成 LLM,提供 Prompt 管理、模型管理等 AI 相关功能
社区与生态活跃的开源社区,丰富的预置节点和社区贡献节点快速发展的开源社区,专注于 AI 应用开发领域
部署方式Docker, Docker Compose, npm, 云服务(官方或第三方)Docker, Docker Compose, 云服务 (官方或第三方)
开源情况核心代码开源 (Fair-Code license),部分高级功能付费开源 (Apache 2.0 license)

n8n 的主要优势:

  • 通用性强:能够连接和自动化几乎任何有 API 的应用或服务,不仅仅局限于 AI 领域。
  • 高度可扩展:支持自定义代码节点,可以实现非常复杂的逻辑和集成。
  • 成熟的生态:拥有大量预置节点和活跃的社区,遇到问题容易找到解决方案。

Dify 的主要优势:

  • 专注 AI 应用开发:为构建和运营基于 LLM 的 AI 应用提供了端到端的解决方案,如 Prompt 管理、数据集、RAG、Agent 等。
  • 上手门槛低:针对 AI 应用开发流程进行了优化,使得开发者可以快速构建和迭代 AI 应用。
  • 完整的 LLMOps 能力:提供了从数据准备、模型编排到应用发布的完整链路,方便管理和运营 AI 应用。

n8n 汉化版快速部署(docker)

从上面的对比中,n8n更适合做自动化的工作流,dify虽然也是自动化工作流,但更倾向于围绕模型构建生态。对于我个人来说,n8n是更能满足需求的。汉化的版本基础的部署方式可以看看作者的项目仓库: GitHub

接下来的重点以docker两种部署方式为中心,加入自定义的参数来优化 n8n 使用体验。

自定义参数部署 n8n

需要先将i18n的仓库克隆到本地

git clone https://github.com/other-blowsnow/n8n-i18n-chinese.git

通过自定义参数,我们可以更灵活地配置 n8n,例如实现数据持久化、解除访问限制等。部署方式:

1. Docker 方式部署

docker run -d \
  --name n8ntest \
  -p 15678:5678 \
  -e N8N_DEFAULT_LOCALE=zh-CN \
  -e N8N_SECURE_COOKIE=false \ # 免cookie安全(本地开发环境建议)
  -e N8N_HOST=0.0.0.0 \ # 允许所有ip访问(不再仅本机)
  -e N8N_RUNNERS_ENABLED=true \ # 启用工作流执行器
  -v $(pwd)/editor-ui-dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist \
  -v n8n_data:/home/node/.n8n \ # 持久化存储,重启和升级不丢工作流
  -v $(pwd)/data:/data \ # 自定义目录(部分节点可监听本地文件)
  --restart unless-stopped \
  -it \
  n8nio/n8n:1.94.1

2. Docker Compose 方式部署

使用 Docker Compose 部署时,在从代码仓库 git clonegit checkout 到目标版本后,需要对 docker-compose.yml 文件进行如下配置:

version: '3.8'

services:
  n8ntest:
    image: n8nio/n8n:1.94.1
    container_name: n8ntest
    ports:
      - "15678:5678"
    environment:
      - N8N_DEFAULT_LOCALE=zh-CN
      - N8N_SECURE_COOKIE=false # 免cookie安全(本地开发环境建议)
      - N8N_HOST=0.0.0.0 # 允许所有ip访问(不再仅本机)
      - N8N_RUNNERS_ENABLED=true # 启用工作流执行器
    volumes:
      - ./editor-ui-dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist
      - n8n_data:/home/node/.n8n # 持久化存储,重启和升级不丢工作流
      - ./data:/data # 自定义目录(部分节点可监听本地文件)
    stdin_open: true
    tty: true
    restart: unless-stopped

volumes: # 持久化存储对应使用的docker卷
  n8n_data:
    name: n8n_data

关于版本号

无论是 Docker 还是 Docker Compose 部署,其中的 n8nio/n8n:1.94.1 版本号都可以根据你的需求进行修改。你可以尝试使用 latest 标签来获取最新版本,或者前往 n8n 官方 GitHub 仓库查看并选择特定的版本号: GitHub

自定义部署的好处

简简单单的调整能方便不少:

  • 解除了官版部署方式只能本地访问的限制。
  • 将工作流数据持久化,可以便利地进行升级,不担心已有工作流丢失。

还有高手?

如果只是为了快速体验和简单测试,上述的自定义参数已经足够应付很多情况了。这不够?还想要执行python命令?

玩过的朋友都知道,n8n上的code节点打开默认是基于js代码的,虽然可以选择python,但使用起来会发现,功能受限,无法安装第三方库。因为n8n自带的python方法是基于 Pyodide 技术,在nodejs环境中模拟了python的运行环境。别说第三方库了,原生库也是受限的,氪金也解决不了。

有什么办法能够在n8n上玩转python?

有的有的。

创建n8n环境前,先创建一个Dockerfile

FROM n8nio/n8n
RUN apk add --update python3 py3-pip

这时候n8n就有了执行python的能力

执行命令进行新镜像的构建

docker build -t n8n-python .

此时使用docker images可以看到一个n8n-python的新镜像

将这个新镜像替换掉前面的docker命令或者docker compose 文件中的image参数就可以在容器启动后的n8n中使用Execute Command节点中实现python3语句的调用

聪明的朋友应该想到了,细化Dockerfile,在语句 RUN apk add --update python3 py3-pip语句后面细化,添加更多pip install命令安装更多自己想用的pip包,那么就存在更多的可能了。

同样的道理,其他语言也应当适用。

可能你还有疑惑:我已经运行了,重新构建会影响现有的工作流数据嘛? 碰到这种情况,前文说的数据持久化可就发挥大作用了。

结语

希望这篇 n8n 汉化版自定义部署指南能帮助你顺利搭建起属于自己的自动化工作流环境!

如果你在部署过程中遇到任何问题,欢迎在评论区交流。

✧・゚: ✧・゚: ENJOY :・゚✧:・゚✧