用Docker部署n8n自动化工作流平台,附完整配置
n8n 是一个开源的工作流自动化平台,支持 400+ 集成。相比 Zapier 要付费,n8n 可以免费自部署,数据完全自己掌控。
本文用 Docker 方式部署,全程贴命令,跟着做就行。
前置要求
- 服务器安装 Docker(20.10+)
- 安装 Docker Compose v2
- 一个域名(可选,用于 HTTPS)
一、Docker Compose 部署
创建 docker-compose.yml:

yaml
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=${N8N_HOST:-localhost}
- N8N_PORT=5678
- N8N_PROTOCOL=${N8N_PROTOCOL:-http}
- WEBHOOK_URL=${WEBHOOK_URL:-}
- DB_TYPE=sqlite
- DB_SQLITE_DATABASE=/home/node/.n8n/database.sqlite
volumes:
- ./n8n_data:/home/node/.n8n
启动:
bash
docker compose up -d
访问 http://你的IP:5678 就能看到界面。
二、配置 PostgreSQL(生产环境推荐)
SQLite 适合测试,生产环境建议用 PostgreSQL。配置完成后通过 n8n 的可视化界面创建工作流:

yaml
services:
postgres:
image: postgres:15
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=your_strong_password
- POSTGRES_DB=n8n
volumes:
- ./postgres_data:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
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_strong_password
volumes:
- ./n8n_data:/home/node/.n8n
三、配置 Nginx 反代 + HTTPS
nginx
server {
listen 443 ssl;
server_name n8n.yourdomain.com;
...
}
四、第一个工作流
部署完成后,创建一个简单的定时任务,核心 Code 节点示例:
javascript
const data = $input.all();
const processed = data.map(item => ({
title: item.json.title,
timestamp: new Date().toISOString()
}));
return processed;
五、监控与维护
bash
docker logs -f n8n
docker compose restart n8n
tar -czf n8n_backup_$(date +%Y%m%d).tar.gz n8n_data/
总结
Docker 部署 n8n 是最快的方式,10 分钟就能跑起来。数据在自己服务器上,安全可控,还不用付费。