n8n中文版安装指南 - 知识铺
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 </span><span><span leaf="">clone</span></span><span leaf=""> https://github.com/rv192/CommonRepo.git && </span><span><span leaf="">cd</span></span><span leaf=""> CommonRepo</span>
克隆完成后,你会看到以下目录结构:
<span leaf="">n8n/</span><br><span leaf="">├── docker/ # Docker相关配置文件</span><br><span leaf="">│ ├── build.basic.sh</span><br><span leaf="">│ ├── build.sh</span><br><span leaf="">│ ├── docker-compose.yaml</span><br><span leaf="">│ ├── docker-compose.basic.yaml</span><br><span leaf="">│ └── env.template</span><br><span leaf="">└── nginx/ # Nginx配置文件</span><br><span leaf=""> └── n8n.conf</span>
如果选择最简化安装(基于SQLite,未启用HTTPS,中文界面),只需执行以下三行
<span><span leaf="">cd</span></span><span leaf=""> n8n/docker && </span><span><span leaf="">chmod</span></span><span leaf=""> +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=""> n8n/docker</span><br><span><span leaf="">cp</span></span><span leaf=""> 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 # 替换为你的域名</span><br><span leaf="">WEBHOOK_URL=https://n8n.yourdomain.com # 替换为你的域名,必须使用HTTPS</span><br><br><span leaf=""># 其他配置项(一般不需要修改)</span><br><span leaf="">POSTGRES_USER=root # PostgreSQL用户名</span><br><span leaf="">POSTGRES_PASSWORD=n8n!yyds # PostgreSQL密码</span><br><span leaf="">POSTGRES_DB=n8n # PostgreSQL数据库名</span><br><span leaf="">N8N_DEFAULT_LOCALE=zh-CN # 中文界面的关键配置项</span><br><br><span leaf="">N8N_ENCRYPTION_KEY= # 首次运行build.sh时自动生成</span><br><span leaf="">N8N_USER_MANAGEMENT_JWT_SECRET= # 首次运行build.sh时自动生成</span>
3. 构建和启动服务
3.1 设置build.sh脚本权限并执行:
<span><span leaf="">chmod</span></span><span leaf=""> +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=""> </span><span><span leaf="">cp</span></span><span leaf=""> 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=""> </span><span><span leaf="">ln</span></span><span leaf=""> -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=""> nginx -t</span><br><br><span><span leaf=""># 如果配置正确,重启Nginx</span></span><br><span><span leaf="">sudo</span></span><span leaf=""> systemctl restart nginx</span>
5. 配置HTTPS
5.1 安装certbot(如果未安装):
<span><span leaf="">sudo</span></span><span leaf=""> apt-get update</span><br><span><span leaf="">sudo</span></span><span leaf=""> apt-get install certbot python3-certbot-nginx</span>
5.2 获取SSL证书:
<span><span leaf="">sudo</span></span><span leaf=""> certbot --nginx -d n8n.yourdomain.com</span>
5.3 确认Nginx配置:
Certbot会自动修改Nginx配置,添加SSL相关配置。完成后的配置文件应该包含以下内容:
<span><span leaf="">server</span></span><span leaf=""> {</span><br><span leaf=""> </span><span><span leaf="">listen</span></span><span leaf=""> </span><span><span leaf="">443</span></span><span leaf=""> ssl;</span><br><span leaf=""> </span><span><span leaf="">server_name</span></span><span leaf=""> n8n.yourdomain.com;</span><br><br><span leaf=""> </span><span><span leaf="">ssl_certificate</span></span><span leaf=""> /etc/letsencrypt/live/n8n.yourdomain.com/fullchain.pem;</span><br><span leaf=""> </span><span><span leaf="">ssl_certificate_key</span></span><span leaf=""> /etc/letsencrypt/live/n8n.yourdomain.com/privkey.pem;</span><br><br><span leaf=""> </span><span><span leaf="">location</span></span><span leaf=""> / {</span><br><span leaf=""> </span><span><span leaf="">proxy_pass</span></span><span leaf=""> http://localhost:5678;</span><br><span leaf=""> </span><span><span leaf="">proxy_http_version</span></span><span leaf=""> </span><span><span leaf="">1</span></span><span leaf="">.</span><span><span leaf="">1</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">proxy_set_header</span></span><span leaf=""> Upgrade </span><span><span leaf="">$http_upgrade</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">proxy_set_header</span></span><span leaf=""> Connection </span><span><span leaf="">"upgrade"</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">proxy_set_header</span></span><span leaf=""> Host </span><span><span leaf="">$host</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">proxy_set_header</span></span><span leaf=""> X-Real-IP </span><span><span leaf="">$remote_addr</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">proxy_set_header</span></span><span leaf=""> X-Forwarded-For </span><span><span leaf="">$proxy_add_x_forwarded_for</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">proxy_set_header</span></span><span leaf=""> X-Forwarded-Proto </span><span><span leaf="">$scheme</span></span><span leaf="">;</span><br><span leaf=""> }</span><br><span leaf="">}</span><br><br><span><span leaf="">server</span></span><span leaf=""> {</span><br><span leaf=""> </span><span><span leaf="">listen</span></span><span leaf=""> </span><span><span leaf="">80</span></span><span leaf="">;</span><br><span leaf=""> </span><span><span leaf="">server_name</span></span><span leaf=""> n8n.yourdomain.com;</span><br><span leaf=""> </span><span><span leaf="">return</span></span><span leaf=""> </span><span><span leaf="">301</span></span><span leaf=""> 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=""> nginx -t && </span><span><span leaf="">sudo</span></span><span leaf=""> 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. 中文界面:已默认配置中文界面,无需额外设置
-
2. 数据持久化:
-
• SQLite文件映射挂载在目录data下
-
• PostgreSQL数据映射挂载在postgres-data下
- 3. 自动导入:安装脚本会自动导入backup目录下的凭证和工作流(如果有做过备份)
备份凭证和工作流
<span><span leaf=""># 配置backup目录权限</span></span><br><span><span leaf="">sudo</span></span><span leaf=""> </span><span><span leaf="">chown</span></span><span leaf=""> 1000:1000 ./backup && </span><span><span leaf="">sudo</span></span><span leaf=""> </span><span><span leaf="">chmod</span></span><span leaf=""> 775 ./backup</span><br><span><span leaf=""># 导出工作流和凭证</span></span><br><span><span leaf="">sudo</span></span><span leaf=""> docker compose </span><span><span leaf="">exec</span></span><span leaf=""> n8n n8n </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=""> docker compose </span><span><span leaf="">exec</span></span><span leaf=""> n8n n8n </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的强大灵活性。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/ai/post/202510/n8n%E4%B8%AD%E6%96%87%E7%89%88%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com