−25%

Windows 按年付费,截至 10 月 31 日。 查看套餐

EQVPS

用 Docker 在 VPS 上自建 n8n

2026年6月15日 · 1 分钟阅读 · EQVPS Team

n8n 是那种你一开始只是轻轻用一下、然后悄悄把一半运营都路由过去的工具。到那时,“它跑在别人云上的一个席位、按次执行计费、我的 API 密钥待在他们的服务器上”就开始让人觉得没那么美好了。自托管把这三样都修好——固定成本、无执行上限,你的密钥留在你自己的机器上。用 Docker,这是个十五分钟的活。

它实际需要多大的服务器

先给诚实的数字,好让你不超买也不少买:

n8n 静息时不吃 CPU;它在运行时飙升。一台 2 核机器对多数配置都行。(把规格配到负载的更多内容见配置指南。)

Docker 搭建

在一台全新的 Ubuntu/Debian 机器上,装 Docker:

curl -fsSL https://get.docker.com | sudo sh

建一个文件夹和一个 docker-compose.yml——带持久卷的 n8n 加 Postgres:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=db
      - DB_POSTGRESDB_PASSWORD=change-me
    volumes:
      - ./n8n-data:/home/node/.n8n
    depends_on: [db]
  db:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_PASSWORD=change-me
      - POSTGRES_DB=n8n
    volumes:
      - ./db-data:/var/lib/postgresql/data
sudo docker compose up -d

两点值得指出:那些卷(n8n-data、db-data)就是让你的工作流跨重启和升级存活下来的东西——别跳过它们。还有 n8n 绑在 127.0.0.1 上,而不是 0.0.0.0——它没有直接暴露到公网。这是故意的;下一步安全地处理访问。

访问:HTTPS 还是隧道

锁死它、让它保活

n8n 持有你的 API 密钥和凭据,所以机器必须严实:在你放进真实凭据之前,先做安全清单(SSH 密钥、防火墙、禁用密码登录)。compose 文件里的 restart: always 已经意味着 Docker 会在崩溃或重启后把 n8n 拉回来——你的正常运行时间已经搞定。

值得吗?

对量诚实一点。如果你不停地跑自动化,自托管在成本上赢(固定 vs 按次执行),并去掉任何工作流/运行上限。如果你一个月触发几个流,托管席位更省心。但掌控这个论点无论如何都成立:你的工作流、你的数据、你的密钥——在你自己的服务器上,不是租的。 对多数认真用起 n8n 的人来说,那就是决定性因素。

一台 2 GB 的机器、一个 compose 文件、一个域名(或一条隧道),你就在跑自己的自动化中枢了——可用加密货币、无需KYC 付款,几分钟内上线。


开箱即用的配置: 见 面向 n8n 的 VPS——推荐套餐加一分钟的加密部署。

常见问题

自托管 n8n 需要多少 RAM?

对 n8n 加它的 Postgres 数据库加正常工作流,约 2 GB 是舒服的甜点。工作流轻的话 1 GB 也能跑,但大一点的运行你会感觉到。重度并行执行或大负载——上到 4 GB。

自托管 n8n 需要 Docker 吗?

那是目前最简单的方式——一个 compose 文件就给你 n8n、一个数据库和持久化存储,升级就是一次 pull。你也可以用 npm 安装,但 Docker 帮你省掉依赖和升级的头疼。

自托管 n8n 比 n8n 云便宜吗?

如果你持续跑一串自动化,是的——包月的固定 VPS 胜过按次执行的定价,而且没有工作流或执行次数上限。一个月只跑几次,托管席位也许更省事。人们自托管的另一个理由是掌控:你的数据和 API 密钥从不离开你的服务器。

n8n 需要一个域名吗?

对基于 OAuth 的节点(Google 等)和干净的 HTTPS,需要——把一个域名指向服务器,把 n8n 放在一个带证书的反向代理后面。纯内部使用的话,你能通过 SSH 隧道访问它,不用域名。

n8n 能在 NAT VPS 上跑,还是需要独立IP?

内部/SSH 隧道使用在 NAT 机器上就行。如果你想要一个带你自己域名和 HTTPS 的公网 URL(某些 OAuth 回调和 webhook 需要),独立IP套餐更合适,因为你掌控所有端口。

← 返回博客查看套餐与价格 →

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。