n8n Docker自托管部署教程:搭建你的自动化工作流平台

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″的信息。

第五步:首次访问和设置

  1. 在浏览器中访问 http://你的服务器IP:5678
  2. 首次访问需要创建管理员账号
  3. 设置邮箱和密码,完成初始化
  4. 进入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 改为 httpsWEBHOOK_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
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容