n8n 工作流自动化平台搭建教程
n8n 是一款强大的开源工作流自动化平台,支持超过 400 个应用节点的集成,能够帮助你将各种在线服务串联起来实现自动化操作。相比 Zapier 等商业产品,n8n 可以完全自托管,数据掌握在自己手中,并且社区版完全免费。本文将介绍如何在搬瓦工 VPS 上使用 Docker 部署 n8n。部署前请确保已安装好 Docker 和 Docker Compose。
一、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+(推荐 Ubuntu 22.04)。
- 内存:至少 1GB,建议 2GB 以上(工作流越复杂消耗越大)。
- 磁盘:至少 10GB 可用空间。
- 域名:建议绑定域名并配置 SSL,n8n 的 Webhook 功能需要 HTTPS。
- Docker:需预先安装 Docker 和 Docker Compose。
二、创建项目目录
首先为 n8n 创建专用的项目目录和数据目录:
mkdir -p /opt/n8n/data
cd /opt/n8n
三、编写 Docker Compose 配置
创建 docker-compose.yml 文件。这里使用 PostgreSQL 作为数据库后端,相比默认的 SQLite 在处理大量工作流时性能更好:
cat > /opt/n8n/docker-compose.yml <<'EOF'
version: '3.8'
services:
postgres:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: your_secure_password
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
restart: always
depends_on:
- postgres
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=your_secure_password
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_admin_password
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Asia/Shanghai
- TZ=Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
- /opt/n8n/data:/files
volumes:
postgres_data:
n8n_data:
EOF
请将 your_secure_password、your_admin_password 和 n8n.yourdomain.com 替换为你自己的实际值。
四、启动 n8n 服务
cd /opt/n8n
docker compose up -d
等待镜像拉取完毕后,查看服务状态:
docker compose ps
确认 n8n 和 postgres 两个容器都处于 running 状态。
五、配置 Nginx 反向代理
n8n 默认运行在 5678 端口,建议通过 Nginx 反向代理并配置 SSL。先安装 Nginx 和 Certbot:
apt install nginx certbot python3-certbot-nginx -y
创建 Nginx 配置文件:
cat > /etc/nginx/sites-available/n8n <<'EOF'
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
}
EOF
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
申请 SSL 证书:
certbot --nginx -d n8n.yourdomain.com
六、访问和初始化
在浏览器中访问 https://n8n.yourdomain.com,输入在 Compose 文件中配置的用户名和密码即可登录。首次登录后建议:
- 修改默认管理员密码。
- 在设置中检查时区是否为 Asia/Shanghai。
- 配置 SMTP 邮件发送(用于工作流通知)。
七、常用工作流示例
n8n 的核心是通过可视化界面拖拽节点来构建工作流。以下是几个实用场景:
7.1 定时监控网站可用性
创建一个每 5 分钟检测网站状态的工作流:使用 Schedule Trigger 节点设置定时触发,连接 HTTP Request 节点请求目标网站,再用 IF 节点判断返回状态码,异常时通过 Telegram 或邮件节点发送告警。
7.2 RSS 订阅自动推送
使用 RSS Feed Trigger 节点监听博客更新,当有新文章发布时自动将摘要推送到 Slack、Discord 或 Telegram 频道。
7.3 表单数据自动入库
通过 Webhook 节点接收表单提交的数据,经过 Set 节点格式化后,写入 Google Sheets 或 PostgreSQL 数据库中。
八、数据备份
定期备份 n8n 的工作流数据非常重要。可以通过以下方式进行:
8.1 导出工作流
n8n 支持在界面中直接导出单个工作流为 JSON 文件。也可以使用 CLI 批量导出:
docker exec -it n8n n8n export:workflow --all --output=/files/workflows_backup.json
8.2 备份数据库
docker exec postgres pg_dump -U n8n n8n > /opt/n8n/backup_$(date +%Y%m%d).sql
8.3 自动备份脚本
cat > /opt/n8n/backup.sh <<'EOF'
#!/bin/bash
BACKUP_DIR="/opt/n8n/backups"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
docker exec postgres pg_dump -U n8n n8n > $BACKUP_DIR/db_$DATE.sql
# 保留最近 7 天的备份
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
EOF
chmod +x /opt/n8n/backup.sh
添加 crontab 定时任务,每天凌晨 3 点自动备份:
echo "0 3 * * * /opt/n8n/backup.sh" | crontab -
九、升级 n8n
升级到最新版本非常简单:
cd /opt/n8n
docker compose pull
docker compose up -d
升级前建议先备份数据库,以便出问题时可以回滚。
十、常见问题
Webhook 无法触发
确保 WEBHOOK_URL 环境变量设置正确,且域名已正确指向服务器 IP。同时检查 Nginx 反向代理配置中是否包含 WebSocket 升级头。
内存占用过高
工作流执行历史数据会占用大量内存和存储。可以在环境变量中设置自动清理:
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168
上述配置会自动清理 7 天前的执行记录。
时区不正确
确保 GENERIC_TIMEZONE 和 TZ 环境变量都设置为 Asia/Shanghai,重启容器后生效。
总结
n8n 是一款功能强大的自托管工作流自动化平台,特别适合需要将多个服务串联起来的场景。在搬瓦工 VPS 上部署 n8n 后,你可以实现网站监控、数据同步、消息推送等各种自动化任务。更多自托管应用部署教程请参考:Nextcloud 私有云盘、Gitea 代码托管、Umami 网站统计。选购搬瓦工 VPS 请参考全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。