如何在 Debian 12 VPS 上部署 n8n:完整的自托管自动化指南
在自己的 VPS 上运行 n8n 是构建安全、可扩展且始终在线的自动化工作流的最有效方式。与基于云的自动化服务不同,在 VPS Hosting 计划上自托管 n8n 可为您提供完整的数据隐私、无限的工作流执行、24/7 正常运行时间和完全可预测的月度成本。以 Debian 12 作为基础操作系统,您可以受益于长期稳定性、强大的社区支持和访问最新软件包的权限。
本指南将逐步引导您完成每个步骤:更新服务器、安装 Docker 和 Docker Compose、生成加密密钥、配置 n8n、启动服务以及在浏览器中访问编辑器。
为什么在 VPS 上运行 n8n 而不是云服务?
虽然 n8n 确实提供托管云服务,但在 VPS 上自托管您自己的 n8n 实例为开发人员、企业和自动化专业人士提供了关键优势:
- 完整的数据隐私 – 您的所有工作流、API 密钥、凭证和客户数据完全在您的控制下。任何第三方提供商都无法访问或审计您的信息。
- 无限执行 – 在 VPS 上,您设置限制 — 而不是 SaaS 定价层。运行尽可能多的工作流、触发器和执行,满足您的项目需求。
- 24/7 可用性 – VPS 使您的自动化始终运行,即使您的个人计算机已关闭。
- 增强的安全性 – 使用防火墙、SSL Certificates、VPN 访问和您自己的加密密钥来加固您的实例。所有凭证都在静态时加密。
- 可扩展性和性能 – 使用 AlexHost VPS 资源,您可以根据自动化工作负载的增长按需升级 CPU、RAM 和存储。
- 成本效益 – 您不需要按执行次数付费,而是支付固定的月度 VPS 费用,并可以无限制地运行工作流,无需额外费用。
> 简而言之:在您自己的 VPS 上部署 n8n,将您的服务器转变为强大的自托管自动化中心,您可以完全控制数据、性能和成本。

前置条件
开始之前,请确保您拥有:
- 一个运行中的VPS Hosting实例,已安装Debian 12 (Bookworm)
- 通过SSH的Root或sudo访问权限
- VPS的公网IP地址
- 对Linux命令行的基本了解
Step 1: 更新服务器
始终首先将您的 Debian 12 系统完全更新到最新版本。这确保在安装任何新软件之前,您拥有最新的安全补丁和软件包元数据。

sudo apt update && sudo apt upgrade -y预期结果:您将看到软件包被下载和升级。完成后,终端会确认一个摘要,例如 0 upgraded, 0 newly installed,如果一切都已是最新版本。
第2步:安装Docker和Docker Compose
n8n在Docker容器内运行效果最佳,这样可以隔离应用程序并使更新变得简单。按照以下步骤从Docker官方存储库安装Docker Engine和Compose插件。
安装所需的依赖项
sudo apt install -y curl gnupg2 ca-certificates lsb-release apt-transport-https添加Docker官方GPG密钥和存储库
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg]
https://download.docker.com/linux/debian $(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null更新软件包列表并安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin验证安装
docker --version
docker compose version预期输出:
Docker version 25.0.3, build abc123
Docker Compose version v2.24.6这确认Docker Engine和Compose插件已安装并可以使用。


第 3 步:准备项目目录
创建一个专用目录来存储所有 n8n 相关文件,包括配置和持久数据:
mkdir ~/n8n && cd ~/n8n将所有内容保存在一个目录中可以显著简化备份、更新和迁移。

第 4 步:生成加密密钥
n8n 使用加密密钥在其内部数据库中安全地存储所有凭证(API 令牌、密码、OAuth 密钥)。生成一个强大的随机密钥并将其保存到文件中:
openssl rand -base64 24 > ~/n8n/encryption.key
cat ~/n8n/encryption.key重要:保管好此密钥。如果丢失,您将无法解密存储的凭证。考虑将其备份到安全位置,例如密码管理器或加密存储。


第 5 步:创建 Docker Compose 配置
现在创建 docker-compose.yml 文件,该文件定义 n8n 如何在 Docker 中运行:
nano docker-compose.yml粘贴以下配置。将 YOUR_SERVER_IP 替换为您实际的 AlexHost VPS 公网 IP 地址:
version: '3.7'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=supersecretpassword
- GENERIC_TIMEZONE=Europe/Chisinau
- N8N_ENCRYPTION_KEY_FILE=/files/encryption.key
- N8N_EDITOR_BASE_URL=http://YOUR_SERVER_IP:5678
- N8N_SECURE_COOKIE=false
volumes:
- ./n8n_data:/home/node/.n8n
- ./encryption.key:/files/encryption.key:ro使用 CTRL + O 保存文件,按 Enter 确认,然后使用 CTRL + X 退出。
关键配置说明
| 变量 | 用途 |
|---|---|
N8N_BASIC_AUTH_ACTIVE | 启用 HTTP 基本身份验证以保护编辑器 |
N8N_BASIC_AUTH_USER | 基本身份验证登录的用户名 |
N8N_BASIC_AUTH_PASSWORD | 密码 — 将其更改为强大的唯一值 |
GENERIC_TIMEZONE | 为计划的工作流触发器设置时区 |
N8N_ENCRYPTION_KEY_FILE | 容器内加密密钥文件的路径 |
N8N_EDITOR_BASE_URL | 用于访问 n8n 编辑器的公网 URL |
N8N_SECURE_COOKIE | 设置为 false 用于 HTTP;使用 HTTPS 和 SSL 时设置为 true |
> 安全提示:对于生产部署,配置域名、安装 SSL 证书,并将 N8N_SECURE_COOKIE=true 设置为加密所有浏览器会话。
第 6 步:调整目录权限
创建持久数据目录并分配正确的所有权,以便 n8n 容器进程(以用户 ID 1000 运行)可以读取和写入数据:
mkdir -p ./n8n_data
sudo chown -R 1000:1000 ./n8n_data如果不执行此步骤,容器可能无法写入工作流数据,您将在日志中遇到权限错误。
第 7 步:启动 n8n
以分离(后台)模式启动 n8n 容器:
docker compose up -d预期输出:
[+] Running 2/2
✔ Network n8n_default Created
✔ Container n8n-n8n-1 Started验证容器正在运行
docker ps您应该看到 n8n-n8n-1 列出状态为 Up 和端口 0.0.0.0:5678->5678/tcp 映射。
第8步:检查日志
在访问浏览器之前,验证n8n启动时没有错误:
docker logs -f n8n-n8n-1要查找的内容:
- 没有
mismatching encryption keys错误 - 确认服务正在监听端口
5678的消息 - 没有致命启动异常
健康的启动日志将显示n8n确认已加载并准备好接受连接。按CTRL + C停止跟踪日志流。
第9步:在浏览器中访问n8n
打开网络浏览器并导航到您的VPS IP地址的5678端口:
http://YOUR_SERVER_IP:5678例如:
http://176.123.2.191:5678从命令行验证连接
如果您无法直接从服务器环境访问浏览器,可以使用curl确认n8n是否响应:
curl http://YOUR_SERVER_IP:5678这将返回n8n登录页面的原始HTML源代码,包括<script>标签和一条通知,说明UI需要JavaScript。此输出确认n8n正在正确运行——但是,由于curl无法执行JavaScript,您必须在真实浏览器中打开URL才能使用可视化编辑器。
首次所有者账户设置
首次在浏览器中打开URL时,您将看到n8n所有者账户设置屏幕。这是初始管理员注册页面,您需要输入:
- 电子邮件地址
- 名字和姓氏
- 安全密码
完成此表单并点击下一步后,此账户将成为您n8n部署的主所有者,拥有对工作流编辑器、凭证管理器和所有管理设置的完全访问权限。然后您可以立即开始在n8n可视化界面中构建和管理自动化工作流。
生产加固:后续步骤
一旦您的 n8n 实例运行起来,请考虑采取这些额外步骤使其生产就绪:
- 设置反向代理 – 使用 Nginx 或 Caddy 将流量从端口 80/443 代理到端口 5678,启用基于域名的清晰访问。
- 安装 SSL 证书 – 使用 HTTPS 保护所有流量。AlexHost 提供 SSL 证书来保护您的 n8n 实例和服务器上运行的任何其他服务。
- 注册域名 – 将自定义域指向您的 VPS 以获得专业、易记的访问。您可以直接通过 域名注册注册一个。
- 配置防火墙 – 使用
ufw仅限制来自特定 IP 地址的对端口 5678 的访问。 - 设置自动备份 – 定期备份
~/n8n/n8n_data目录和您的encryption.key文件。 - 启用电子邮件通知 – 将 n8n 连接到 SMTP 服务器或使用 电子邮件托管来发送工作流警报和错误通知。
为 n8n 选择合适的托管服务
您的 n8n 实例的性能和可靠性在很大程度上取决于您的底层基础设施。以下是选择合适的 AlexHost 计划的快速指南:
| 使用场景 | 推荐计划 |
|---|---|
| 个人项目、小型团队 | VPS 托管 — 经济实惠、灵活、完全 root 访问权限 |
| 高流量工作流、大型集成 | 独立服务器 — 最高性能、无共享资源 |
| AI 驱动的自动化节点 | GPU 托管 — 适合工作流中的 ML 模型推理 |
| 带控制面板的简单部署 | VPS with cPanel — 通过 GUI 管理所有内容 |
结论
在 Debian 12 VPS 上部署 n8n 是您可以为专业工作流自动化做出的最聪明的决定之一。通过在 AlexHost VPS Hosting 计划上自托管,您可以获得对数据的完全所有权、无限的工作流执行和 24/7 可用性 — 所有这些都以可预测的固定成本提供。
基于 Docker 的安装过程简单明了且可重复,使得维护、更新和扩展自动化中心变得容易,随着您的项目增长。通过添加 SSL 证书、自定义域名和适当的防火墙规则,您的 n8n 实例成为一个完全强化的企业级自动化平台,完全由您控制。
无论您是在自动化业务流程、集成 API 还是构建复杂的多步骤工作流,在自己的 VPS 上运行 n8n 都能为您提供任何基于云的订阅无法匹配的自由、安全和性能。
