n8n Docker 全新安装与中文配置指南

本文介绍如何使用 Docker Compose 在 Linux 服务器上部署 n8n,并通过社区汉化包实现部分中文界面。适合希望独立部署、不依赖 1Panel 等管理面板的用户。
前言
n8n 是一个强大的工作流自动化工具,类似于 Zapier 和 Make,但可以自托管。虽然官方提供了 Docker 镜像,但中文支持有限。本文将指导你完成从零开始的部署,并尽可能实现中文界面。
重要提示:
- n8n 2.x 官方 UI 仍以英文为主
- 社区汉化包通常只能实现部分中文,这是正常现象
- 最常见的部署问题是目录权限配置错误
环境准备
在开始之前,确保你的服务器满足以下要求:
- 操作系统:Linux(Ubuntu / Debian / CentOS / Rocky 等)
- Docker:已安装 Docker Engine
- Docker Compose:v2 版本
- 权限:root 或具备 sudo 权限的用户
快速开始
如果你已经熟悉 Docker,可以直接跳到部署步骤。以下是核心要点:
- 部署路径:
/root/data/n8n/ - 数据挂载:使用 bind mount 方式
- 中文方案:通过社区 editor-ui 汉化包覆盖前端资源
- 常见问题:数据目录权限错误会导致容器无法启动
部署步骤
步骤 1:安装 Docker 和 Docker Compose
如果服务器上还没有安装 Docker,执行以下命令:
| |
安装 Docker Compose v2:
| |
步骤 2:创建工作目录
创建 n8n 的工作目录结构:
| |
目录结构说明:
| |
data/:存储 n8n 的工作流、凭据等数据,必须可写dist/:存放汉化后的前端资源,通常只读
步骤 3:准备中文 editor-ui(可选)
如果你希望界面尽可能显示中文,可以下载社区汉化包:
| |
确认 dist/ 目录包含 index.html 和 assets/ 目录。如果解压后出现 dist/dist 的嵌套结构,需要将内层内容移动到外层 dist/ 目录。
注意:即使使用汉化包,n8n 2.x 的界面仍会以英文为主,部分中文是正常现象。
步骤 4:编写 docker-compose.yml
创建 Docker Compose 配置文件 /root/data/n8n/docker-compose.yml:
| |
配置说明:
ports:将容器的 5678 端口映射到宿主机的 5678 端口environment:设置时区和中文语言环境volumes:挂载数据目录和汉化资源
重要提示:YAML 文件必须使用空格缩进,不能使用 Tab 或中文空格,否则会导致解析错误。
步骤 5:修复数据目录权限
这是最关键的一步,也是最容易出错的地方。n8n 容器默认以 node 用户(UID=1000)运行,而宿主机创建的目录通常是 root:root,会导致权限错误。
执行以下命令修复权限:
| |
步骤 6:启动与验证
进入工作目录并启动服务:
| |
如果一切正常,你应该看到 HTTP 200 或 302 响应。然后在浏览器中访问:
| |
首次访问会进入 n8n 的设置向导,按照提示完成初始配置即可。
关于中文显示
需要明确的是,n8n 2.x 的官方 UI 目前仍以英文为主。社区提供的汉化包通常只能覆盖部分菜单和页面,出现"少量中文 + 大量英文"的情况是正常的,并非安装错误。
如果你需要更完整的中文支持,可能需要考虑降级到 n8n 1.x 版本,但这通常不建议用于生产环境,因为会错过新版本的特性更新和安全修复。
常见问题排查
问题 1:权限错误 EACCES: permission denied
症状:
- 容器启动后立即退出或不断重启
- 查看日志:
docker logs n8n显示EACCES错误
原因:
bind mount 的宿主机目录权限为 root:root,而 n8n 容器以 node 用户(UID=1000)运行,无法写入数据目录。
解决方案:
| |
然后重新启动容器:
| |
问题 2:端口连接被重置 Connection reset by peer
症状:
使用 curl 访问 5678 端口时,连接直接被重置。
原因: 通常是因为权限问题导致 n8n 启动失败,容器不断重启,端口连接被重置。
解决方案:
- 先按照问题 1 修复数据目录权限
- 检查容器状态:
docker ps -a - 查看详细日志:
docker logs n8n
问题 3:YAML 语法错误
症状:
执行 docker compose config 时报错:did not find expected '-' indicator
原因:
- YAML 列表项缩进不一致
- 使用了 Tab 而不是空格
- 混入了中文空格
解决方案:
使用 docker compose config 命令可以精确定位语法错误的位置。检查报错行,确保:
- 使用空格而非 Tab
- 缩进保持一致
- 没有中文空格
问题 4:界面只显示部分中文
症状: 左侧菜单大多为英文,只有少数模块显示中文。
原因: n8n 2.x UI 尚未完整支持中文,社区汉化包未覆盖全部翻译 key。
结论: 这是当前生态的现状,不是安装配置错误。如果确实需要完整中文,可以考虑:
- 等待官方或社区提供更完整的汉化包
- 自行参与汉化工作
- 使用 n8n 1.x(不推荐)
问题 5:关于 Docker 权限的常见误区
误区: Docker 会自动创建宿主机目录并处理权限问题。
实际情况:
- Docker 会自动创建不存在的目录
- 但不会自动修改目录的所有者和权限
- bind mount 下,权限完全由宿主机负责
- 非 root 容器(如 n8n)必须手动修复权限
部署架构说明
整个部署架构如下:
| |
- 数据持久化:通过 bind mount 将数据目录挂载到宿主机,即使容器删除,数据也不会丢失
- 汉化覆盖:通过只读挂载覆盖容器内的前端资源,实现部分中文显示
- 服务访问:通过端口映射,可以从宿主机或外部网络访问 n8n 服务
总结
通过本文的步骤,你应该已经成功部署了 n8n,并配置了部分中文界面。关键要点:
- ✅ 使用 Docker Compose 简化部署流程
- ✅ 通过 bind mount 实现数据持久化
- ✅ 使用社区汉化包实现部分中文
- ✅ 正确配置目录权限避免常见错误
如果遇到问题,优先检查容器日志和目录权限。大多数问题都可以通过查看 docker logs n8n 找到原因。