n8n是一个开源的工作流自动化工具,可以让你通过可视化界面连接各种服务和API,实现自动化任务。本文将手把手教你用Docker部署n8n,从安装到配置一个完整可用的自动化平台。
n8n能做什么
简单来说,n8n是一个可以替代Zapier、Make等付费自动化服务的开源方案。它支持:
- AI工作流:集成LangChain、OpenAI等AI服务,构建智能自动化流程
- 数据同步:在不同平台间自动同步数据
- 定时任务:设置定时触发器,自动执行重复性工作
- API集成:连接数百种第三方服务和API
- 自定义代码:在工作流中插入JavaScript或Python代码节点
环境要求
- 一台Linux服务器(推荐2核4G以上配置)
- Docker和Docker Compose已安装
- 域名(可选,用于HTTPS访问)
第一步:安装Docker和Docker Compose
如果服务器还没有安装Docker,执行以下命令:
# 安装Docker
curl -fsSL https://get.docker.com | sh
# 确认Docker已安装
docker --version
# Docker Compose通常随Docker一起安装
docker compose version
第二步:创建n8n配置目录
# 创建n8n数据目录
mkdir -p /opt/n8n
cd /opt/n8n
第三步:编写Docker Compose文件
创建 docker-compose.yml 文件:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
# 基础配置
- N8N_HOST=0.0.0.0
- N8N_PORT=5678
- N8N_PROTOCOL=https
# 替换为你的域名,没有域名用http://你的服务器IP:5678
- WEBHOOK_URL=https://n8n.yourdomain.com
# 数据持久化
- N8N_USER_FOLDER=/home/node
# 时区设置
- GENERIC_TIMEZONE=Asia/Shanghai
- TZ=Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
上面的配置中,几个关键点说明:
- N8N_PROTOCOL:如果有域名和SSL证书,设置为https;否则改为http
- WEBHOOK_URL:Webhook回调地址,必须设置为外部可访问的URL
- 时区:设置为Asia/Shanghai确保定时任务按北京时间执行
- volumes:使用Docker卷持久化数据,避免容器重建丢失配置
第四步:启动n8n
# 启动服务
docker compose up -d
# 查看日志
docker compose logs -f n8n
启动成功后,日志中会出现类似”Editor is now accessible via: http://0.0.0.0:5678″的信息。
第五步:首次访问和设置
- 在浏览器中访问
http://你的服务器IP:5678 - 首次访问需要创建管理员账号
- 设置邮箱和密码,完成初始化
- 进入n8n主界面,可以开始创建工作流了
配置Nginx反向代理(可选但推荐)
如果你有域名,建议通过Nginx反向代理并启用HTTPS:
server {
listen 443 ssl;
server_name n8n.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
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;
# WebSocket支持(n8n需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
记得将docker-compose.yml中的 N8N_PROTOCOL 改为 https,WEBHOOK_URL 改为你的域名。
常见问题
1. 端口被占用
如果5678端口被占用,修改docker-compose.yml中的端口映射,如改为”8080:5678″。
2. 数据备份
n8n数据存储在Docker卷中,可以这样备份:
# 备份数据卷
docker run --rm -v n8n_n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n-backup-$(date +%Y%m%d).tar.gz -C /data .
3. 更新n8n
cd /opt/n8n
docker compose pull
docker compose up -d
4. 内存不足
n8n运行复杂工作流时可能消耗较多内存。如果服务器内存不足(低于2G),建议增加swap或升级配置。
适合什么场景
- 站长自动化:自动同步文章到多个平台、监控网站状态、自动备份
- 数据处理:定时抓取数据、清洗转换、导入数据库
- AI工作流:构建AI客服、内容生成、数据分析等自动化流程
- 团队协作:自动化通知、审批流程、任务分配
本文参考来源:n8n GitHub仓库 | n8n官方Docker部署文档
© 版权声明
THE END














暂无评论内容