n8n中文版安装指南

Dify用了快一年了,说实话对它一直不是太满意的:一是不太成熟,各种迁移和稳定性问题;二是可能考虑到对非开发人员比较友好,但工作流引擎的功能偏弱,很多功能无法实现(等了大半年才终于等到了循环功能),在周围两三个朋友的簇拥下,我也决定更多精力转向n8n这个更为成熟的自动化工作流项目(19年启动的,一开始并不是完全面向AI设计的)

n8n作为海外开源项目,对国内生态支持较弱,官方也没提供中文版,大家使用学习的门槛还算比较高,另外它有个核心的WebHook概念,对于非开发人员理解也比较困难,配置也相对复杂。

本文档详细说明如何使用Docker部署N8N中文版,配置PostgreSQL数据库和Nginx反向代理,实现N8N的WebHook能力。

环境要求

这几样不是本次的重点,我就不展开说了,搞不明白的朋友可以看文后二维码加群交流。

  • • Docker 和 Docker Compose

  • • Nginx

  • • 域名,假设为n8n.yourdomain.com(已配置解析到服务器)

快速部署

1. 从Github下载代码

整个的安装脚本和配置文件,已经放在GitHub上

<span leaf="">git&nbsp;</span><span><span leaf="">clone</span></span><span leaf="">&nbsp;https://github.com/rv192/CommonRepo.git &amp;&amp;&nbsp;</span><span><span leaf="">cd</span></span><span leaf="">&nbsp;CommonRepo</span>

克隆完成后,你会看到以下目录结构:

<span leaf="">n8n/</span><br><span leaf="">├── docker/ &nbsp; &nbsp; &nbsp; &nbsp; # Docker相关配置文件</span><br><span leaf="">│ &nbsp; ├── build.basic.sh</span><br><span leaf="">│ &nbsp; ├── build.sh</span><br><span leaf="">│ &nbsp; ├── docker-compose.yaml</span><br><span leaf="">│ &nbsp; ├── docker-compose.basic.yaml</span><br><span leaf="">│ &nbsp; └── env.template</span><br><span leaf="">└── nginx/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Nginx配置文件</span><br><span leaf="">&nbsp; &nbsp; └── n8n.conf</span>

如果选择最简化安装(基于SQLite,未启用HTTPS,中文界面),只需执行以下三行

<span><span leaf="">cd</span></span><span leaf="">&nbsp;n8n/docker &amp;&amp;&nbsp;</span><span><span leaf="">chmod</span></span><span leaf="">&nbsp;+x build.basic.sh</span><br><span leaf="">./build.basic.sh</span>

这样就可以完成最简化的安装了,如果完整安装Postgre以及HTTPS支持,继续往下看。

2. 配置环境变量

2.1 复制环境变量模板:

<span><span leaf="">cd</span></span><span leaf="">&nbsp;n8n/docker</span><br><span><span leaf="">cp</span></span><span leaf="">&nbsp;env.template .</span><span><span leaf="">env</span></span><br><span leaf="">nano .</span><span><span leaf="">env</span></span>

2.2 修改环境变量(注意:需要先配置域名相关设置):

<span leaf=""># 首先修改以下两项,确保使用HTTPS</span><br><span leaf="">N8N_HOST=n8n.yourdomain.com &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 替换为你的域名</span><br><span leaf="">WEBHOOK_URL=https://n8n.yourdomain.com &nbsp; &nbsp; &nbsp; &nbsp; # 替换为你的域名,必须使用HTTPS</span><br><br><span leaf=""># 其他配置项(一般不需要修改)</span><br><span leaf="">POSTGRES_USER=root &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # PostgreSQL用户名</span><br><span leaf="">POSTGRES_PASSWORD=n8n!yyds &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # PostgreSQL密码</span><br><span leaf="">POSTGRES_DB=n8n &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# PostgreSQL数据库名</span><br><span leaf="">N8N_DEFAULT_LOCALE=zh-CN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 中文界面的关键配置项</span><br><br><span leaf="">N8N_ENCRYPTION_KEY= &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 首次运行build.sh时自动生成</span><br><span leaf="">N8N_USER_MANAGEMENT_JWT_SECRET= &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 首次运行build.sh时自动生成</span>

3. 构建和启动服务

3.1 设置build.sh脚本权限并执行:

<span><span leaf="">chmod</span></span><span leaf="">&nbsp;+x build.sh</span><br><span leaf="">./build.sh</span>

3.2 检查服务状态,此时应该能看到n8n暴露了5678端口:

<span leaf="">docker ps</span>

4. 配置Nginx

4.1 修改Nginx配置文件:
首先修改 nginx/n8n.conf 中的域名,找到Server_name,将 n8n.yourdomain.com 替换为你的实际域名。

<span leaf="">nano nginx/n8n.conf</span>

4.2 部署Nginx配置:

<span><span leaf=""># 复制配置文件到Nginx目录</span></span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;</span><span><span leaf="">cp</span></span><span leaf="">&nbsp;nginx/n8n.conf /etc/nginx/sites-available/n8n.conf</span><br><br><span><span leaf=""># 创建软链接启用配置</span></span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;</span><span><span leaf="">ln</span></span><span leaf="">&nbsp;-s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/</span><br><br><span><span leaf=""># 验证Nginx配置</span></span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;nginx -t</span><br><br><span><span leaf=""># 如果配置正确,重启Nginx</span></span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;systemctl restart nginx</span>

5. 配置HTTPS

5.1 安装certbot(如果未安装):

<span><span leaf="">sudo</span></span><span leaf="">&nbsp;apt-get update</span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;apt-get install certbot python3-certbot-nginx</span>

5.2 获取SSL证书:

<span><span leaf="">sudo</span></span><span leaf="">&nbsp;certbot --nginx -d n8n.yourdomain.com</span>

5.3 确认Nginx配置:
Certbot会自动修改Nginx配置,添加SSL相关配置。完成后的配置文件应该包含以下内容:

<span><span leaf="">server</span></span><span leaf="">&nbsp;{</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">listen</span></span><span leaf="">&nbsp;</span><span><span leaf="">443</span></span><span leaf="">&nbsp;ssl;</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">server_name</span></span><span leaf="">&nbsp;n8n.yourdomain.com;</span><br><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">ssl_certificate</span></span><span leaf="">&nbsp;/etc/letsencrypt/live/n8n.yourdomain.com/fullchain.pem;</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">ssl_certificate_key</span></span><span leaf="">&nbsp;/etc/letsencrypt/live/n8n.yourdomain.com/privkey.pem;</span><br><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">location</span></span><span leaf="">&nbsp;/ {</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_pass</span></span><span leaf="">&nbsp;http://localhost:5678;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_http_version</span></span><span leaf="">&nbsp;</span><span><span leaf="">1</span></span><span leaf="">.</span><span><span leaf="">1</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_set_header</span></span><span leaf="">&nbsp;Upgrade&nbsp;</span><span><span leaf="">$http_upgrade</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_set_header</span></span><span leaf="">&nbsp;Connection&nbsp;</span><span><span leaf="">"upgrade"</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_set_header</span></span><span leaf="">&nbsp;Host&nbsp;</span><span><span leaf="">$host</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_set_header</span></span><span leaf="">&nbsp;X-Real-IP&nbsp;</span><span><span leaf="">$remote_addr</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_set_header</span></span><span leaf="">&nbsp;X-Forwarded-For&nbsp;</span><span><span leaf="">$proxy_add_x_forwarded_for</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span><span leaf="">proxy_set_header</span></span><span leaf="">&nbsp;X-Forwarded-Proto&nbsp;</span><span><span leaf="">$scheme</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp; }</span><br><span leaf="">}</span><br><br><span><span leaf="">server</span></span><span leaf="">&nbsp;{</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">listen</span></span><span leaf="">&nbsp;</span><span><span leaf="">80</span></span><span leaf="">;</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">server_name</span></span><span leaf="">&nbsp;n8n.yourdomain.com;</span><br><span leaf="">&nbsp; &nbsp;&nbsp;</span><span><span leaf="">return</span></span><span leaf="">&nbsp;</span><span><span leaf="">301</span></span><span leaf="">&nbsp;https://</span><span><span leaf="">$server_name</span></span><span><span leaf="">$request_uri</span></span><span leaf="">;</span><br><span leaf="">}</span>

5.4 验证配置并重启Nginx:

<span><span leaf="">sudo</span></span><span leaf="">&nbsp;nginx -t &amp;&amp;&nbsp;</span><span><span leaf="">sudo</span></span><span leaf="">&nbsp;systemctl restart nginx</span>

5.5 验证安装效果
通过https://n8n.yourdomain.com访问,看是否已经成功,是否是中文界面。注意需要开放443端口,5678端口(可选)

5.5 验证WebHook是否配置成功
完成登录后,选择进入凭证Tab页,选择右上角:创建凭证,搜索并添加Google Calendar OAuth2 API,点继续

图片

进入到配置页,注意看OAuth 重定向 URL,显示的URL是否是你当前n8n的HTTPS地址,这个是复制后提供给第三方服务的回调地址,在这个场景,是要提供给Google Cloud API的。

图片

为什么一定要是HTTPS呢?因为第三方服务正式环境是强制要求的,如果只是开发测试,可以提供IP或HTTP方式的URL地址

特性说明

  1. 1. 中文界面:已默认配置中文界面,无需额外设置

  2. 2. 数据持久化

  • • SQLite文件映射挂载在目录data下

  • • PostgreSQL数据映射挂载在postgres-data下

  1. 3. 自动导入:安装脚本会自动导入backup目录下的凭证和工作流(如果有做过备份)

备份凭证和工作流

<span><span leaf=""># 配置backup目录权限</span></span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;</span><span><span leaf="">chown</span></span><span leaf="">&nbsp;1000:1000 ./backup &amp;&amp;&nbsp;</span><span><span leaf="">sudo</span></span><span leaf="">&nbsp;</span><span><span leaf="">chmod</span></span><span leaf="">&nbsp;775 ./backup</span><br><span><span leaf=""># 导出工作流和凭证</span></span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;docker compose&nbsp;</span><span><span leaf="">exec</span></span><span leaf="">&nbsp;n8n n8n&nbsp;</span><span><span leaf="">export</span></span><span leaf="">:workflow --all --output=/home/node/backup/workflows</span><br><span><span leaf="">sudo</span></span><span leaf="">&nbsp;docker compose&nbsp;</span><span><span leaf="">exec</span></span><span leaf="">&nbsp;n8n n8n&nbsp;</span><span><span leaf="">export</span></span><span leaf="">:credentials --all --output=/home/node/backup/credentials</span>

如果有需要可以考虑结合crontab做定时备份,这里就不展开了。

写在最后

N8N的中文界面其实源自这个项目,https://github.com/other-blowsnow/n8n-i18n-chinese,非常感谢作者的付出。

而这个项目也非常N8N:它监听了n8n官方的项目,只要官方发布新版本,他就会去获取更新并启用AI自动翻译,并全自动完成打包发布提交到GitHub。

这次就分享到这里,下次再和大家分享n8n的使用经验和场景,感受n8n的强大灵活性。

图片