一、准备工作
你需要准备:
项目 | 内容 |
---|---|
一台 VPS | 推荐 Ubuntu 20.04 / 22.04,公网 IP |
一个域名 | 可用子域名,如:n8n.example.com |
域名 DNS 可配置 | 推荐用 Cloudflare(可免费用) |
能远程 SSH 到服务器 | 如:Xshell / Mac 终端 / Windows Terminal |
二、安装 Docker 环境
登录你的 VPS(示例):
安装 Docker 和 Docker Compose:
sudo apt update && sudo apt install -y docker.io docker-compose
sudo systemctl enable docker
💡 docker 是容器引擎,docker-compose 是配置多个服务(如 n8n + traefik)的工具。
三、创建 n8n 项目目录
mkdir -p ~/n8n-docker && cd ~/n8n-docker
四、创建 .env
配置文件
cat <<EOF > .env
# ⚠️ 修改为你自己的域名
DOMAIN_NAME=n8n.example.com
# ⚠️ 登录用户名和密码(自定义)
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=yourSuperSecretPassword
EOF
📌 .env 文件是用于存储自定义配置的地方,后续部署时会自动读取这些值。
五、创建 docker-compose.yml
文件
cat <<EOF > docker-compose.yml
version: '3.7'
services:
n8n:
image: n8nio/n8n
restart: always
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=\\${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=\\${N8N_BASIC_AUTH_PASSWORD}
- N8N_HOST=\\${DOMAIN_NAME}
- N8N_PORT=5678
- WEBHOOK_URL=https://\\${DOMAIN_NAME}/
- VUE_APP_URL_BASE_API=https://\\${DOMAIN_NAME}/
- N8N_PROTOCOL=https
- TZ=Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(\\`\\${DOMAIN_NAME}\\`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls.certresolver=myresolver"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
traefik:
image: traefik:latest
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "[email protected]" # ⚠️ 修改为你自己的邮箱地址
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- web
volumes:
n8n_data:
letsencrypt:
networks:
web:
external: false
EOF
六、配置域名解析
在你的域名服务商(如 Cloudflare)添加以下 DNS 解析记录:
类型 | 名称 | 值(服务器公网IP) | TTL | 代理状态 |
---|---|---|---|---|
A | n8n | 你的 VPS 公网 IP | 自动 | ⚪ DNS Only(灰云)✅ |
⚠️ 重要提醒:必须关闭 Cloudflare 的“代理状态”,变成灰色,否则自动签发证书会失败。
七、启动服务
拉起 n8n + Traefik 服务(后台运行):
docker-compose up -d
等待 30 秒左右,让 Traefik 自动为你的域名申请 HTTPS 证书。
查看是否成功:
docker ps
你应该能看到 n8n
和 traefik
两个容器运行中。
八、访问你的 n8n 控制台
打开浏览器,访问:
<https://n8n.example.com>
你会看到 n8n 的登录或注册界面,说明成功了 🎉
九、常见问题排查
问题 | 原因 | 解决方法 |
---|---|---|
页面打不开 | 域名未指向正确 IP | 检查 DNS |
显示“证书不安全” | 没签发成功 / 浏览器缓存 | 清除浏览器缓存,确认灰云生效 |
Traefik 日志显示 403 | Cloudflare 没关闭代理 | 改成 DNS Only,再重启容器 |
acme.json 没生成 | 目录权限错误或未申请成功 | 确认 traefik 配置正确,./letsencrypt 可写 |
十、如何更新 n8n 到最新版?
cd ~/n8n-docker
docker-compose pull
docker-compose down
docker-compose up -d
所有数据都保存在 n8n_data 卷中,不会丢失。
十一、设置 n8n 开机自启动
sudo systemctl enable docker
确保容器中已设置:
restart: always
目录结构参考
~/n8n-docker/
├── docker-compose.yml
├── .env
├── letsencrypt/ <-- 证书保存在这里
└── n8n_data/ <-- 工作流数据保存路径
第一步:安装 Docker 和 Docker Compose
apt update && apt install -y curl
curl -fsSL <https://get.docker.com> | sh
安装 Docker Compose:
curl -L "<https://github.com/docker/compose/releases/latest/download/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
第二步:下载GitHub 一键脚本
git clone https://github.com/usbog232/n8n-traefik-setup.git && cd n8n-traefik-setup
如果提示没有 git,请先安装:
apt install git -y
第三步:运行一键部署脚本
执行脚本:
chmod +x install-n8n.sh
./install-n8n.sh
它会依次提示你输入以下信息:
请输入你的邮箱(用于 HTTPS 证书): [email protected]
请输入你的域名(需要提前解析好到本 VPS): n8n.yourdomain.com
脚本在哪重新执行?
cd ~/n8n-traefik-setup
bash install-n8n.sh
想停止服务
docker-compose down
阅读量 42