type
status
date
slug
summary
tags
category
icon
password
本指南将提供详细步骤,指导您如何在自己的虚拟专用服务器(VPS)上,使用 Docker 和 Docker Compose 部署 n8n 自动化平台。我们还将集成 Traefik 作为反向代理,通过 Let's Encrypt 自动处理 HTTPS 证书的生成与续期,确保您可以通过自定义域名安全地访问 n8n 实例。
我们将涵盖手动安装(有助于深入理解)以及半自动和一键脚本安装选项,以满足不同用户的需求。
1. 前期准备:
在开始之前,请确保您已准备好以下各项:
项目 | 详情与建议 |
VPS 服务器 | 拥有公网 IP 地址的服务器。推荐操作系统: Ubuntu 20.04 / 22.04 / 24.04。最低配置: 1 核 CPU, 1GB 内存(推荐 2GB+ 以获得更流畅体验,尤其是在工作流较多时)。 |
域名 | 一个您拥有管理权限的已注册域名或子域名(例如: n8n.yourdomain.com)。 |
DNS 管理权限 | 能够管理您域名的 DNS 解析记录。推荐: Cloudflare(提供免费 DNS 管理及其他服务,但需注意代理状态的设置)。 |
SSH 访问能力 | 能通过 SSH 客户端(如:FinalShell, Xshell, macOS 终端, Windows Terminal, PuTTY)连接到您的 VPS。 |
基础 Linux 知识 | 熟悉基本的命令行操作。 |
邮箱地址 | 用于接收 Let's Encrypt 证书相关通知(Traefik 配置需要,推荐提供)。 |
资源获取示例:
- VPS:
- 国内:阿里云, 腾讯云
- 海外:阿里云国际版, DigitalOcean, Vultr
- 域名: 阿里云/万网, 腾讯云, NameSilo (支持支付宝), GoDaddy
2. 手动安装(推荐,有助于理解原理)
请按以下步骤手动设置您的 n8n 环境。
步骤 1: 安装 Docker 和 Docker Compose
通过 SSH 登录到您的 VPS,并运行以下命令:
- 💡 Docker: 用于在隔离环境中运行应用程序的容器引擎。
- 💡 Docker Compose: 使用 YAML 文件定义和运行多容器 Docker 应用程序的工具。
步骤 2: 创建项目目录
为 n8n 的配置文件创建一个专用目录:
步骤 3: 创建环境配置文件 (
.env)此文件用于存储敏感或自定义配置。
- 📌
.env文件将配置与主要的docker-compose.yml分离,便于管理和更新。Docker Compose 会自动加载此文件中的变量。
步骤 4: 创建 Docker Compose 配置文件 (
docker-compose.yml)此文件定义了服务(n8n 和 Traefik)、网络和数据卷。
步骤 5: 配置域名 DNS 解析
前往您的域名 DNS 服务商(如 Cloudflare, 阿里云 DNS, 腾讯云 DNSPod),为您的域名/子域名添加一条 A 记录,指向您 VPS 的公网 IP 地址。
类型 | 主机记录 (子域名) | 记录值 (您的 VPS 公网 IP) | TTL | 代理状态 (Cloudflare) |
A | n8n (或您的子域名) | YOUR_VPS_PUBLIC_IP | 自动 | 仅限 DNS (灰云) ⚪ ✅ |
- ⚠️ 至关重要: 如果您使用 Cloudflare,请务必确保该记录的“代理状态”设置为 仅限 DNS (灰色云朵)。如果设置为“已代理”(橙色云朵),Traefik 将无法成功获取 Let's Encrypt 证书,因为验证请求无法直接到达您的服务器。
步骤 6: 启动服务
回到您的项目目录 (
~/n8n-docker),在终端中以分离模式(后台运行)启动容器:请等待大约 30-60 秒。Traefik 需要时间来通过 Docker 标签发现 n8n 服务,并向 Let's Encrypt 请求 HTTPS 证书。
步骤 7: 验证并访问 n8n
检查两个容器是否都已成功运行:
您应该能看到
n8n 和 traefik 两个容器的状态为 Up。现在,打开您的网页浏览器,访问您配置的域名:
https://n8n.yourdomain.com (请替换为您的实际域名)如果一切顺利,您将看到 n8n 的设置或登录页面,并且浏览器地址栏会显示安全的 HTTPS 连接。🎉
3. 半自动安装(使用脚本)
此方法使用脚本来自动化文件创建和 Docker 设置过程。
步骤 1: 安装 Docker 和 Docker Compose (如果尚未安装)
步骤 2: 下载并运行设置脚本
克隆脚本仓库并执行安装脚本:
脚本将提示您输入以下信息:
- 您的邮箱地址(用于 Let's Encrypt)
- 您的域名/子域名(请确保已按手动安装步骤 5 提前配置好 DNS 解析)
- n8n 登录用户名
- n8n 登录密码
管理服务 (脚本安装方式):
- 停止服务:
cd ~/n8n-traefik-setup && docker-compose down
- 启动服务:
cd ~/n8n-traefik-setup && docker-compose up -d
- 重新运行脚本:
cd ~/n8n-traefik-setup && ./install-n8n.sh(注意:重新运行可能会覆盖现有配置,请谨慎操作)
4. 一键安装
此命令直接下载并执行安装脚本。请谨慎使用,在运行来自互联网的脚本前,务必审查其内容。
这将提示您输入与半自动方法相同的信息。配置文件通常会被放置在
~/n8n-docker 目录下。5. 常用操作与问题排查
更新 n8n 版本:
进入您的 n8n 项目目录 (
~/n8n-docker 或 ~/n8n-traefik-setup) 并运行:- 📌 您的工作流和凭据数据是安全的,因为它们存储在
n8n_dataDocker 数据卷中。
重启服务:
问题排查表:
问题现象 | 可能原因 | 解决方法 |
页面无法访问 | DNS 未生效 / IP 配置错误 / 防火墙拦截 | 确认 DNS 解析已指向正确 IP。检查 VPS 防火墙设置 (例如: sudo ufw status)。等待 DNS 缓存刷新(可能需要时间)。 |
浏览器提示“证书无效” | 证书未成功签发 / 浏览器缓存 / Cloudflare 代理开启 | 确保 Cloudflare 代理状态为 仅限 DNS (灰云)。清除浏览器缓存或使用无痕模式访问。检查 Traefik 日志: docker logs traefik 查看 ACME (Let's Encrypt) 相关错误。 |
Traefik 日志显示 ACME 错误 | 邮箱格式错误 / Let's Encrypt 频率限制 / DNS 问题 / 权限 | 检查 .env 中的邮箱地址。确认 DNS 解析正常。确保 Docker 有权写入 ./letsencrypt 目录(通常由数据卷自动处理)。 |
Traefik 日志显示 404 | n8n 容器未运行 / Traefik 标签配置错误 | 运行 docker ps 检查 n8n 容器状态。仔细核对 docker-compose.yml 中 Traefik 的 labels 配置,特别是 Host(\\...\) 规则是否与您的域名完全匹配。 |
容器无法启动 | 端口冲突 (80/443 被占用) / Docker 服务问题 | 停止宿主机上占用 80/443 端口的其他服务 (如 Apache, Nginx)。检查 Docker 服务状态: sudo systemctl status docker。查看容器日志: docker-compose logs。 |
目录结构参考 (手动安装):
6. 附加信息:获取 Gemini API 密钥
如果您想在 n8n 中使用 Google 的 Gemini 模型,您需要一个 API 密钥:
- 在此处获取您的 Gemini API 密钥:https://aistudio.google.com/app/apikey
获取密钥后,您可以在 n8n 界面中将其添加到相应的凭据类型中。
- 作者:90_blog
- 链接:https://blog.tri7e.com/article/vps_n8n
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
