海外vps用docker部署n8n自动化平台 域名绑定 https 解锁全功能

一、准备工作
你需要准备:
项目内容
一台 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代理状态
An8n你的 VPS 公网 IP自动⚪ DNS Only(灰云)✅

⚠️ 重要提醒:必须关闭 Cloudflare 的“代理状态”,变成灰色,否则自动签发证书会失败。


七、启动服务

拉起 n8n + Traefik 服务(后台运行):

docker-compose up -d

等待 30 秒左右,让 Traefik 自动为你的域名申请 HTTPS 证书。


查看是否成功:

docker ps

你应该能看到 n8ntraefik 两个容器运行中。


八、访问你的 n8n 控制台

打开浏览器,访问:


<https://n8n.example.com>

你会看到 n8n 的登录或注册界面,说明成功了 🎉


九、常见问题排查

问题原因解决方法
页面打不开域名未指向正确 IP检查 DNS
显示“证书不安全”没签发成功 / 浏览器缓存清除浏览器缓存,确认灰云生效
Traefik 日志显示 403Cloudflare 没关闭代理改成 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

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top