为什么选择 N8N?
N8N 是一个开源的工作流自动化工具,功能类似于 Zapier 和 Make,但您可以将它部署在自己的服务器上,完全掌控数据和隐私。
N8N 的优势
- 🔓 开源免费:社区版完全免费,无用户数限制
- 🔒 数据自托管:敏感数据不出服务器
- 🔌 400+ 集成:支持 Slack、GitHub、Gmail、Discord 等主流服务
- 🧩 可视化编排:拖拽式编辑,无需写代码
- 🏢 可扩展:支持自定义节点和脚本
前置要求
- 一台 VPS(推荐 2GB RAM 以上)
- Docker 和 Docker Compose 已安装
- 一个域名(可选,用于配置 HTTPS)
- 基本的 Linux 命令行知识
第一步:安装 Docker
如果您的 VPS 尚未安装 Docker,请执行以下命令:
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 设置 Docker 开机自启
sudo systemctl enable docker
sudo systemctl start docker
# 安装 Docker Compose 插件
sudo apt-get install docker-compose-plugin -y
第二步:创建 Docker Compose 配置
创建项目目录并编写 docker-compose.yml:
mkdir -p ~/n8n && cd ~/n8n
创建 docker-compose.yml:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=${N8N_HOST}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://${N8N_HOST}/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
networks:
- n8n_network
postgres:
image: postgres:15-alpine
container_name: n8n-postgres
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- n8n_network
volumes:
n8n_data:
postgres_data:
networks:
n8n_network:
driver: bridge
第三步:配置环境变量
创建 .env 文件:
cat > .env << 'EOF'
N8N_HOST=n8n.yourdomain.com
N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
POSTGRES_USER=n8n
POSTGRES_PASSWORD=$(openssl rand -base64 32)
POSTGRES_DB=n8n
EOF
⚠️ 安全提示:请务必修改
N8N_ENCRYPTION_KEY和POSTGRES_PASSWORD为强密码。
第四步:配置 Nginx 反向代理(可选但推荐)
server {
listen 80;
server_name n8n.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name n8n.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/n8n.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
第五步:获取 SSL 证书
# 安装 acme.sh
curl https://get.acme.sh | sh
# 签发证书
acme.sh --issue -d n8n.yourdomain.com --nginx
# 安装证书
acme.sh --install-cert -d n8n.yourdomain.com \
--key-file /etc/nginx/ssl/n8n.key \
--fullchain-file /etc/nginx/ssl/n8n.crt
第六步:启动 N8N
cd ~/n8n
docker compose up -d
查看启动日志:
docker compose logs -f n8n
首次访问 https://n8n.yourdomain.com 进行初始化设置。
常用管理命令
# 查看日志
docker compose logs -f n8n
# 重启服务
docker compose restart n8n
# 更新 N8N
docker compose pull n8n
docker compose up -d n8n
# 备份数据
docker exec n8n-postgres pg_dump -U n8n n8n > backup_$(date +%Y%m%d).sql
总结
通过 Docker Compose,您可以在 10 分钟内完成 N8N 的部署。搭配 PostgreSQL 作为数据库,Nginx 和 Let’s Encrypt 提供 HTTPS 支持,您就拥有了一个生产级的工作流自动化平台。
下一步,您可以探索 N8N 的 400+ 集成节点,创建您自己的自动化工作流!