免费自建 n8n AI 工作流平台:Docker 10分钟快速上手(含中文汉化)

0 阅读4分钟

n8n 是一款开源的 AI 工作流自动化平台,支持连接数百种服务,可以替代 Zapier、Make 等付费工具,完全自托管、数据不出服务器。本文带你用 Docker Compose 快速搭建,并配置中文界面。

什么是 n8n?

n8n(发音:n-eight-n)是一个基于节点的工作流自动化工具,核心优势有三点:

  • 完全开源:代码托管在 GitHub,可自由部署在自己的服务器上
  • AI 原生:内置对 OpenAI、Claude、Ollama 等大模型的支持,可以直接构建 AI Agent
  • 节点丰富:支持 400+ 种服务集成,HTTP 请求、数据库、邮件、Webhook 应有尽有

对比付费的 Zapier(20/月起)和Make20/月起)和 Make(9/月起),n8n 自建版完全免费,适合开发者和小团队使用。


环境准备

确保服务器已安装以下工具:

# 检查 docker 版本
docker --version

# 检查 docker compose 版本
docker compose version

没有安装的话参考 Docker 官方文档 安装。


编写 docker-compose.yaml

新建一个目录,创建 docker-compose.yaml 文件:

mkdir n8n && cd n8n
vim docker-compose.yaml

写入以下内容:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:2.0.0
    container_name: n8n
    privileged: true
    user: root
    restart: always
    ports:
      # web 界面访问端口
      - "5678:5678"
    environment:
      - TZ=Asia/Shanghai
      # 设置界面语言为中文
      - N8N_DEFAULT_LOCALE=zh-CN
      # 本地开发关闭安全 cookie(生产环境建议开启)
      - N8N_SECURE_COOKIE=false
      # 数据加密密钥,请替换成自己的随机字符串
      - N8N_ENCRYPTION_KEY=your_random_key_here
      # 使用 SQLite 作为数据库(轻量,够用)
      - DB_TYPE=sqlite
      - DB_SQLITE_DATABASE=/home/node/.n8n/database.sqlite
    volumes:
      # 持久化数据目录
      - ./data:/home/node/.n8n
      # 中文汉化包(见下方说明)
      - ./dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist
    extra_hosts:
      - "node1-svc:192.168.0.175"

几个配置项说明

配置项说明
N8N_ENCRYPTION_KEY用于加密凭证,务必替换成自己的随机字符串,否则重建容器后凭证会失效
N8N_SECURE_COOKIE生产环境部署在 HTTPS 后面时改为 true
N8N_DEFAULT_LOCALE设置为 zh-CN 启用中文界面(需配合汉化包)
DB_TYPE个人使用 sqlite 足够,团队使用建议换成 postgresql

配置中文汉化包(可选)

n8n 官方虽然支持 zh-CN,但翻译覆盖率不高。推荐使用社区维护的汉化包:

# 下载汉化包(注意版本要和 n8n 镜像版本对应)
wget https://github.com/other-blowsnow/n8n-i18n-chinese/releases/download/n8n%401.123.4/editor-ui.tar.gz

# 解压到 dist 目录
mkdir dist
tar -xzf editor-ui.tar.gz -C dist

解压后 dist 目录结构应该类似:

dist/
├── index.html
├── assets/
└── ...

启动服务

docker compose up -d

查看启动日志:

docker compose logs -f n8n

看到类似下面的输出说明启动成功:

n8n  | Editor is now accessible via:
n8n  | http://localhost:5678

访问 n8n

浏览器打开:

http://你的服务器IP:5678

首次访问会要求创建管理员账号,填写邮箱和密码即可。

登录后你会看到 n8n 的工作流编辑界面:

  • 左侧是节点面板,可以搜索需要的集成服务
  • 中间是画布,拖拽节点构建工作流
  • 右上角可以手动触发或设置定时执行

一个简单的工作流示例

以"定时发送天气通知到邮件"为例:

  1. 添加 Schedule Trigger 节点,设置每天早上 8 点触发
  2. 添加 HTTP Request 节点,调用天气 API 获取数据
  3. 添加 Send Email 节点,配置收件人和邮件模板
  4. 连接三个节点,点击保存并激活

整个流程不需要写一行代码。


常见问题

Q:容器启动后访问 5678 端口没有响应?

检查服务器防火墙是否放开了 5678 端口:

# CentOS/RHEL
firewall-cmd --add-port=5678/tcp --permanent
firewall-cmd --reload

# Ubuntu
ufw allow 5678

Q:重启容器后工作流数据丢失?

确认 ./data 目录挂载正确,数据库文件路径为 ./data/database.sqlite,只要这个文件存在数据就不会丢。

Q:如何升级 n8n 版本?

# 修改 docker-compose.yaml 中的镜像版本号后执行
docker compose pull
docker compose up -d

总结

项目说明
部署方式Docker Compose
数据库SQLite(轻量)/ PostgreSQL(生产)
端口5678
数据持久化./data 目录
中文支持需手动替换汉化包

n8n 的核心价值在于把重复性工作自动化,结合 AI 节点可以构建出非常强大的智能工作流。后续我会出几篇实战教程,包括:

  • n8n 对接 OpenAI 构建 AI 客服机器人
  • n8n + 飞书机器人实现智能通知
  • n8n 定时爬取数据并生成报告

本文同步发布于个人博客,持续更新 Java / 后端 / Docker 实战内容:

👉 blog.123571.xyz