Skip to content
云间札记
Go back

n8n 工作流自动化平台 Docker 部署实战

Updated:

背景

n8n 是一款开源的工作流自动化工具,支持 400+ 集成节点,可替代 Zapier/Make 等 SaaS 平台。本文记录生产环境 Docker Compose 部署方案,包含数据持久化、安全认证与性能优化配置。

架构设计

Docker Compose → n8n 工作流自动化平台
├── 数据持久化: /data/docker/n8n_app/data → /home/node/.n8n
├── 文件存储: /data/docker/n8n_app/files → /home/node/files
└── 安全认证: Basic Auth + 文件访问限制

环境信息

组件版本节点备注
n8nlatest10.6.241.250docker.n8n.io 官方镜像
Docker Compose3.8宿主机
数据卷host bind/data/docker/n8n_app/data配置/凭证持久化
文件卷host bind/data/docker/n8n_app/files工作流文件存储

部署步骤

1. 创建目录

mkdir -p /data/docker/n8n_app/{data,files}
cd /data/docker/n8n_app

2. docker-compose.yaml

version: '3.8'
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
      - TZ=Asia/Shanghai
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_RUNNERS_ENABLED=true
      # 安全认证
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=changeme123
      - N8N_SECURE_COOKIE=false
      # 性能优化
      - N8N_PAYLOAD_SIZE_MAX=16
      - N8N_METRICS=true
      # 文件访问限制(必须与挂载路径一致)
      - N8N_RESTRICT_FILE_ACCESS_TO=/home/node/files
    volumes:
      - /data/docker/n8n_app/data:/home/node/.n8n
      - /data/docker/n8n_app/files:/home/node/files

3. 权限设置(关键)

# 容器中 node userid 为 1000
chown -R 1000:1000 /data/docker/n8n_app/

4. 启动服务

# 启动
docker-compose up -d

# 查看日志
docker-compose logs -f n8n

# 停止
docker-compose down

# 停止并删除数据(谨慎)
docker-compose down -v

关键配置说明

环境变量说明建议值
GENERIC_TIMEZONE时区Asia/Shanghai
N8N_BASIC_AUTH_ACTIVE启用基础认证true
N8N_BASIC_AUTH_USER用户名生产环境修改
N8N_BASIC_AUTH_PASSWORD密码生产环境修改
N8N_RESTRICT_FILE_ACCESS_TO文件访问限制路径与 volumes 挂载路径一致
N8N_PAYLOAD_SIZE_MAX最大负载(MB)16
N8N_METRICS启用指标true
N8N_RUNNERS_ENABLED启用 runnerstrue

生产注意事项

故障排查

问题现象解决
权限拒绝容器启动失败,日志报 Permission deniedchown -R 1000:1000 /data/docker/n8n_app/
文件访问受限工作流无法读写文件,报 Access denied检查 N8N_RESTRICT_FILE_ACCESS_TO 与挂载路径一致性
时区错误定时触发器时间不准确认 GENERIC_TIMEZONE=Asia/Shanghai

复盘

问题根因:初次部署未设置目录属主,容器内 node 用户 (uid=1000) 无法写入数据卷

解决chown -R 1000:1000 修正权限

改进措施

本文首发于 wr.mrchi.cn,转载请注明出处。



Previous Post
OP Stack L2 Rollup 主网部署:从合约部署到多节点同步
Next Post
Canal + Kafka CDC 数据同步实战:从 MySQL binlog 到实时数仓