如何在自己的服务器上部署 n8n
前言
n8n 是一款强大的低/无代码工作流自动化平台,支持超过 400 + 种集成服务。相比使用其云服务,自建部署(Self-host)可掌控数据、安全、资源,以及定制化程度。官方将 Self-host 方式作为「适合有一定运维经验的用户」选择。(docs.n8n.io)
本篇文章将从准备、安装、配置、运行、运维等角度,带你一步一步在自己服务器上部署 n8n。
一、准备工作
在开始之前,请确认并准备以下事项:
1. 服务器环境
-
建议使用 Linux 系统(如 Ubuntu 20.04、Debian 12 等),社区中很多教程以 Ubuntu 为例。(n8n Community)
-
推荐至少 1 GB – 2 GB 内存,小负载可以更低,但生产环境建议更多。(n8n Community)
-
有公网 IP 或 域名,并可指向你的服务器。最好使用子域名指向,例如
n8n.example.com。(n8n Community) -
安装 Docker 与 docker-compose(后续步骤会用到)。
-
如果生产环境建议配置 HTTPS/SSL 、反向代理(如 Nginx)、防火墙、备份方案。
2. 域名/DNS 指向
-
在你的域名服务商后台,将子域名(如
n8n)的 A 记录指向服务器公网 IP。(n8n Community) -
等待记录生效(可能几十分钟至数小时)。
-
如果你要使用 HTTPS ,建议预先设置好与证书申请相关端口(如 80/443 端口可访问)。
3. 安全与访问控制考虑
-
n8n 部署后一般含编辑界面、Webhook 触发等入口,建议至少做基本认证。
-
n8n 官方文档提醒,自建部署需懂得「配置、服务器管理、资源监控、安全措施」三者。(docs.n8n.io)
-
若是生产环境,更应考虑备份机制、数据库安全、HTTPS、限制外部访问等。
二、安装流程
下面以使用 Docker + docker-compose 的方式安装社区版 n8n 为主,步骤简明且通用。你也可参考官方文档其它安装方式。(docs.n8n.io)
1. 登录服务器并更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose
sudo systemctl enable docker && sudo systemctl start docker
2. 创建工作目录
例如在根目录下创建 /root/n8n(或任意你希望存放数据的目录):
mkdir -p /root/n8n
cd /root/n8n
3. 创建 .env 配置文件
在这个目录下创建 .env 文件,示例如下(根据你实际环境修改):
# 这个目录用于存放 n8n 的数据文件
DATA_FOLDER=/root/n8n/# 顶域名与子域名
DOMAIN_NAME=example.com
SUBDOMAIN=n8n# 访问地址将会是:https://n8n.example.com
N8N_BASIC_AUTH_USER=你的用户名
N8N_BASIC_AUTH_PASSWORD=你的密码# 时区设置(可选,默认纽约时区)
GENERIC_TIMEZONE=Asia/Shanghai# 用于申请 SSL 证书的邮箱(若使用 Let's Encrypt 或类似方式)
EMAIL_ADDRESS=your-email@example.com
以上示例根据社区帖子整理。(n8n Community)
重要提示:请务必将用户名和密码替换为安全的值,避免默认配置造成安全隐患。
4. 创建 docker-compose.yml 文件
仍然在 /root/n8n 目录下,使用你熟悉的编辑器(如 vim 或 nano)创建 docker-compose.yml,示例如下:
version: "3.8"services:n8n:image: n8nio/n8n:latestrestart: unless-stoppedports:- "5678:5678"environment:- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}- N8N_BASIC_AUTH_ACTIVE=true- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}- WEBHOOK_TUNNEL_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}- VUE_APP_URL_BASE_API=https://${SUBDOMAIN}.${DOMAIN_NAME}/volumes:- ${DATA_FOLDER}:/home/node/.n8n
这个配置是最简单的社区版 n8n 部署结构。你可以根据需求扩展例如数据库、队列模式(queue mode)、反向代理、HTTPS 等。参考官方文档。(docs.n8n.io)
5. 启动服务
sudo docker-compose up -d
执行后,Docker 会拉取镜像并启动容器。如果一切正常,你可以访问 https://n8n.example.com (替换为你的域名)查看是否可以登录。
6. (可选)设置反向代理 + SSL
如果你想让 n8n 运行在标准 80/443 端口且支持 HTTPS,建议使用 Nginx 或 Caddy 等作为反向代理,再申请免费 SSL 证书(如 Let’s Encrypt)。在此处不赘述所有细节,但这一步在生产环境中很重要。
三、基本配置与使用
安装完成后,你还应做一些基本配置,优化使用体验。
1. 登录界面
使用你在 .env 中设置的 用户名/密码 登录。建议第一次登录后立即修改相关设置(如密码、用户管理)。
2. 数据库配置(可选)
虽然默认 n8n 会使用 SQLite,但如果你要运行更大规模或生产环境,建议使用 PostgreSQL 或 MySQL 作为后端数据库。社区讨论中也提到:
“Docker without Database: 简单且适合测试;Database-Connected Docker: 提供更好的性能、可扩展性” (Reddit)
你可以在 docker-compose 中新增数据库服务,或使用外部数据库,并通过环境变量进行连接。
3. 访问与Webhook URL
-
确认
WEBHOOK_TUNNEL_URL和VUE_APP_URL_BASE_API已设置为你真实访问域名,否则部分 Webhook 或编辑界面可能无法正常工作。 -
如果你的服务器背后还有反向代理或负载均衡器,确保 n8n 能正确接收外部访问请求。
4. 安全设置
-
启用基本认证(如上已配置)或更强认证方式。
-
限制编辑界面访问来源(如仅特定 IP)。
-
定期更新 n8n 镜像与依赖,避免安全漏洞。
-
定期备份数据文件夹及数据库。
-
若你在离线环境运行,还可以通过配置禁用 Telemetry 等外部请求。(n8n Community)
5. 扩展与维护
-
若你希望运行大量任务、并发多、Webhook 频繁触发,可考虑 queue 模式、多 worker 节点部署。社区有关于 「部署扩展/最佳实践」的讨论。(n8n Community)
-
可监控 Docker 容器资源、数据库状态、Webhook 请求延迟、执行结果等指标。
四、升级与运维建议
升级流程
-
停止 n8n 服务(如
docker-compose down) -
拉取最新镜像(例如
docker-compose pull) -
启动服务(
docker-compose up -d) -
检查日志和服务状态,确认无异常。
建议在升级前做备份,以防出现兼容性问题。
备份方案
-
定期备份 DATA_FOLDER(n8n 配置、执行数据)
-
若使用外部数据库,备份 PostgreSQL/MySQL 数据。
-
保留 docker-compose.yml 和 .env 文件快照。
-
定期演练恢复流程。
监控与提示
-
检查服务器磁盘、内存、CPU 使用率。
-
检查 Docker 容器 Logs。
-
监控 n8n 执行失败率、Webhook 延迟、数据库连接情况。
-
若 workflow 逻辑复杂、触发器多、建议增加 Alert、监控系统。
五、总结
通过以上步骤,你就可以在自己的服务器上成功部署 n8n 社区版,并开始搭建自己的自动化工作流。虽然过程并不复杂,但生产环境中仍建议关注安全、监控、备份、升级等运维细节。正如官方所言:“如果你没经验管理服务器、容器、资源、网络等组件,自建部署可能会带来数据丢失、安全或 downtime 的风险”。(docs.n8n.io)
✨ 若你在部署过程中遇到具体问题(如 docker 日志报错、Webhook 无法访问、数据库连接失败等),欢迎随时告诉我,我可以帮你逐步排查。
祝你部署顺利、自动化飞起来!
