🚀 VPS 上的 Supabase - 自托管后端

官方自托管 Supabase 堆栈的真实需求:8–16 GB 规格、docker compose、Kong、Studio,以及与云版本的诚实对比。

自托管 Supabase 意味着整个后端:带实时功能的 Postgres、GoTrue 认证、存储、Kong 网关和 Studio:通过官方 docker compose 组合运行在您的 VPS 上。软件与云端版本相同;区别在于谁来打补丁、谁来备份:是您。

1. 配置规划:先看真实数字

  • 8 GB 内存才能从容运行:官方 compose 会启动约十几个容器(网关、studio、认证、存储、实时、postgres…);Supabase 文档给出 4 GB 作为最低要求,但带数据的真实环境需要 8 GB。
  • 16 GB 很宽裕:实时订阅和 Postgres 查询不再争抢内存。
  • NVMe 很重要:Postgres 与存储上传共用同一块磁盘;Core VPS 8 NVMe(€34/月)是实在的选择。
  • 磁盘:该档位的 150 GB NVMe 足以容纳数据库和一年的上传文件。

2. 安装

apt update && apt install -y git ufw
git clone --depth 1 https://github.com/supabase/supabase.git
cd supabase/docker
cp .env.example .env
# edit .env: POSTGRES_PASSWORD, JWT_SECRET, ANON_KEY, SERVICE_ROLE_KEY
# (generate: openssl rand -base64 32 for each secret)
docker compose pull && docker compose up -d
docker compose ps   # a dozen containers should turn running

切勿上线使用示例 JWT 密钥:每个 Supabase 教程都会检查它们,而且它们是公开的。把 DNS A 记录指向服务器,然后将 Kong(8000 端口)和 Studio(3000 端口)放在 Caddy 证书之后,方式与 Node.js 指南相同。

3. 连接您的应用

让 SDK 指向 `https://api.example.com`(Kong):客户端使用 `ANON_KEY`,`SERVICE_ROLE_KEY` 仅限服务端使用。迁移通过 supabase CLI 针对您的远程项目执行:与云端的工作流相同,只是指向您自己的域名。

常见问题

自托管还是 Supabase 云?

云服务提供托管升级、时间点备份、分支和无需配置的边缘函数:按项目和用量付费。自托管则是固定成本、数据在自己的磁盘上、没有供应商锁定:同时升级、备份和监控都要自己负责。熟悉 `docker compose` 和 restic 定时任务吗?那就自托管。否则先用免费的云端档位,以后再迁移。

有哪些功能与云端不一样?

数据库分支和云端控制台的一些便利功能仅限云端。边缘函数随整套组件提供,但比托管版需要更多手动接线。实时功能可用,由您自己的 Redis 扩容:适合产品使用,但不适合在 €34 的机器上支撑百万连接的扇出。

属于您自己的后端,运行在您选择的硬件上。Core VPS 8 NVMe(24 GB,€34/月)→

相关内容

查看套餐指南常见问题