跳到主要内容

主机资讯与使用指南

n8n Docker 部署:持久化数据、域名与 Webhook 配置

用 Compose 运行 n8n,保留工作流数据,并配置 HTTPS 域名和正确的 Webhook 地址。

准备 Docker 和一个独立子域名

n8n 自建可以把工作流与凭据保存在自己的服务器。本文使用 SQLite 数据卷和外部 Caddy 反向代理,适合先运行一个实例;已有面板或其他代理时,由现有入口提供 HTTPS,不再安装第二套代理。

创建 compose.yaml

建立 ~/n8n 目录,把下面配置保存为 compose.yaml,并把 n8n.example.com 换成自己的域名。镜像使用稳定版本标签,首次部署后记录实际版本。

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:stable
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      N8N_HOST: n8n.example.com
      N8N_PORT: "5678"
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://n8n.example.com/
      GENERIC_TIMEZONE: Asia/Shanghai
      TZ: Asia/Shanghai
      N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
      N8N_PROXY_HOPS: "1"
    volumes:
      - n8n_data:/home/node/.n8n
volumes:
  n8n_data:

启动应用并配置域名入口

mkdir -p ~/n8n
cd ~/n8n
sudo docker compose config --quiet
sudo docker compose up -d
sudo docker compose logs --tail=100

创建目录后先保存 compose.yaml,再执行后面三条命令。Caddy 的域名配置指向 127.0.0.1:5678;域名 DNS 指向 VPS,80、443 端口由 Caddy 承接。示例假定只有一层反向代理,多层代理时按实际链路调整 N8N_PROXY_HOPS。

首次进入编辑器,建立一个测试工作流

通过 HTTPS 域名打开 n8n,创建自己的管理账号。先建一个简单触发器和返回结果的工作流,确认编辑器能保存,再接入正式凭据。

对外回调使用生产 Webhook 地址,并按 n8n 的工作流发布方式启用。测试 URL 与生产 URL 用途不同,第三方回调不能长期填写临时测试地址。

备份工作流和加密密钥

n8n_data 保存数据库与加密相关数据。只导出工作流 JSON,不能完整恢复凭据;备份数据卷,并保留自定义设置的加密密钥。

升级前先备份,再拉取选定版本。遇到回调失败时检查 WEBHOOK_URL、HTTPS 和外部可访问性;编辑器可以打开,不代表第三方服务一定能访问回调地址。

相关阅读