Supabase 免费吗?托管版限制与自托管成本
Supabase 免费版包含 500 MB 数据库空间,但项目闲置 1 周后会暂停。本文对比托管 Free 计划与 VPS 自托管,说明资源限制和运维成本。
Supabase 免费吗?
Supabase 以两种不同方式免费,这两种方式不是同一项优惠。托管版 Free 计划不收费。Supabase 的计费文档要求付费计划预留银行卡信息,但没有说明 Free 计划需要提供银行卡信息。Supabase 的源代码是开放的,因此在自己的 VPS(虚拟专用服务器)上运行完整技术栈无需支付许可费用。其中一种方式通过资源限制向您计费,另一种方式则通过维护工作向您计费。
截至 2026 年 10 月 12 日,<supabase.com/pricing>(https://supabase.com/pricing) 列出的 Free 计划包含 0.5 GB 数据库空间、1 GB 文件存储、5 GB 出站流量,以及 50,000 个月活跃用户,最多可用于两个活跃项目。该页面中有一句话决定了其中大部分事项:“Free 项目闲置 1 周后会暂停”。在据此制定计划前,请重新核对这些数值,因为定价页面可能会变更。
免费套餐实际提供的内容
此图表背后的数据
[
{
"plan": "Free",
"db_gb": 0.5,
"file_storage_gb": 1,
"egress_gb": 5
},
{
"plan": "Pro",
"db_gb": 8,
"file_storage_gb": 100,
"egress_gb": 250
}
]MAU(月活跃用户数)统计一个计费周期内触发任意 Auth 事件的去重用户数。Supabase 将登录、令牌刷新和注销列为示例。因此,即使用户当月没有重新登录,只要其已登录会话在后台静默刷新,也会计入统计。每个用户在每个周期内只计数一次,因此对于仍在开发中的项目,50,000 通常足够宽裕。最先用完的几乎从来不是用户数,而是 0.5 GB 的 Postgres 存储空间,或者当您开始从 Storage 提供图片或文件后用完 5 GB 的出口流量。
两个活动项目是另一个不太显眼的限制。一个生产项目和一个预发布项目本身就会占满免费套餐,因此第三个想法只能等待,或者与不应共用数据库的其他项目共享同一个数据库。
暂停限制为什么比存储上限更重要
“项目闲置 1 周后将暂停”是大多数免费套餐最终无法长期使用的原因。项目连续 7 天没有收到查询后,就会停止提供请求服务。README 中链接的演示项目,或每月只访问一次的预发布 API,都会在你发送链接的对象点击它时处于停机状态。恢复项目只需点击 Supabase 控制台中的 Resume project 按钮。暂停后 1 年内都可以恢复,因此修复很快,但前提是有人关注这些通知。Supabase 会在暂停项目前约 1 周发送警告邮件,但只有在有人查看该收件箱时,这项提醒才有用。
这才是托管免费层的实际代价。你无需支付费用,但要用可用性作为代价,并接受无法提高的上限,除非升级套餐。
免费额度用完后 Pro 和 Team 的费用
此图表背后的数据
[
{
"plan": "Free",
"usd_per_month": 0
},
{
"plan": "Pro",
"usd_per_month": 25
},
{
"plan": "Team",
"usd_per_month": 599
}
]Pro 起价为每月 $25,每个项目包含 8 GB 磁盘空间、100 GB 文件存储空间和 250 GB 出站流量。超出这些额度后,磁盘空间按每 GB $0.125 计费,文件存储空间按每 GB $0.0213 计费,未缓存出站流量按每 GB $0.09 计费。缓存出站流量单独包含 250 GB,超出后按每 GB $0.03 计费。以上价格截至 12 October 2026。Pro 还会取消非活动暂停。Team 起价为每月 $599,面向需要合规和访问控制功能的组织,而不是面向使用业余项目的单个开发者。
Pro 计划默认启用支出上限。这个默认设置很重要:超出包含的配额后,服务会受到限制,而不会在你未关注时继续增加账单。关闭支出上限,就意味着你主动选择了另一种故障模式。评估 托管 Postgres 费用与自行维护 VPS 的费用 时,也要进行相同的计算,因为托管服务的费用主要是在购买他人的值班支持安排。
自托管的其他成本
许可证条款不会产生这部分成本。Supabase 文档称 Docker 是“自托管最快且推荐的方式”,整个技术栈可运行在普通 VPS 上。账单会以工作量的形式出现,文档也明确说明了哪些工作将由您负责:
- 服务器配置和维护
- 安全加固,以及保持操作系统和服务处于最新状态
- 服务配置和管理
- Postgres 数据库维护
- 高可用性和可扩展性
- 备份和灾难恢复
- 监控和正常运行时间
应将其视为每周成本,而不是一次性配置成本。服务器配置只需执行一次。更新和备份检查则会持续进行。如果您坦诚地认为永远不会有人测试恢复流程,那么托管方案的实际成本低于表面看起来的成本,因为从未执行过恢复的备份不能算作真正的备份。
自托管 Supabase 不包含的功能
自托管堆栈并不是托管平台的复制版。文档明确列出了不可用的功能:“分支、日志以外的高级指标、托管备份和 PITR、分析和向量存储桶、ETL,以及 Management API”。PITR(时间点恢复)是迁移后最容易被忽略的功能。在托管计划中,PITR 只需启用一个设置。在自己的服务器上,则需要执行基础备份、归档 WAL(预写日志),将这两类数据保存到服务器之外的位置,并进行演练以验证各个环节能够协同工作。pgBackRest 等工具就是为此设计的,具体配置由您负责。
Studio 这个 Web 控制面板在自托管时“不支持多个组织或项目”。一个堆栈对应一个项目。因此,如果您自托管的原因是绕过两个项目的限制,就应规划第二个堆栈,并为其分配独立端口或部署到另一台服务器,而不是在一个控制面板中创建第二个项目。
您将获得什么
按照文档的说法,自托管 Supabase“不会主动回传数据,也不会收集任何遥测数据”。您的数据行和用户表存放在您直接租用的硬件上。当客户合同或监管机构规定数据必须保留在哪个国家时,这一点正是自托管的核心价值。
您还可以直接使用 Postgres。托管平台会为您调优和管理服务器。在自己的服务器上,shared_buffers、max_connections、扩展列表以及前置的连接池都由您自行配置。连接池很快就会成为问题,因为无服务器函数或繁忙的应用会打开超过 Postgres 可承载数量的连接。此时,在自己的 VPS 上运行 PgBouncer 或 Supavisor 就不再是可选项。
自托管最明显消除的是出口流量上限。只要 Storage 开始向真实访客提供图像或音频,5 GB 很快就会用完。大多数 VPS 方案包含以 TB 计量的传输流量,因此文件密集型应用通常会先触及托管平台的上限,而不是让服务器不堪重负。如果您阅读本文的原因是 Storage,应先计算磁盘成本,再计算计算资源成本:块存储或对象存储中的 1 TB 实际需要多少钱对总成本的影响通常大于 CPU。
启动自托管堆栈
文档建议浅克隆仓库的 docker 目录,并固定到一个自托管版本标签。截至 12 October 2026,该标签为 self-hosted/v0.8.2,于 23 September 2026 创建。官方安装脚本位于 supabase.link/setup.sh,适用于 Debian、Ubuntu、RHEL、CentOS 和 Fedora。如果您希望将文件树放入自己的 git 仓库,下面的手动克隆方式更合适。
git clone --depth 1 --branch self-hosted/v0.8.2 https://github.com/supabase/supabase
mkdir supabase-project
cp -rf supabase/docker/. supabase-project
cd supabase-project && cp .env.example .env
printf 'ref=self-hosted/v0.8.2\n' > .supabase-version
docker compose pull
sh utils/generate-keys.sh
sh utils/add-new-auth-keys.sh
sh run.sh startsh utils/generate-keys.sh 是不可跳过的步骤。.env.example 包含任何人都能在公共仓库中读取的占位密钥,因此使用这些值启动的堆栈会对任何找到该端口的人开放。文档会紧接着运行 sh utils/add-new-auth-keys.sh,以添加新的 API 密钥和一对非对称密钥。启动堆栈前,请检查这两个脚本的输出,并确认 .env。.supabase-version 文件记录了启动时使用的标签,因此之后可以使用附带的 update.sh 升级安装。还应在 .env 中设置 DASHBOARD_PASSWORD,因为 Studio 受 HTTP 基本身份验证保护,且文档要求该密码至少包含一个字母。
使用 docker compose ps 检查结果。该命令应列出所有服务,并显示其状态为 running 或 healthy。然后访问 8000 端口上的 Studio,并使用控制面板凭据登录。需要再次查看生成的密钥时,运行 sh run.sh secrets;要停止堆栈,运行 sh run.sh stop。不要将 8000 端口直接发布到互联网。应在前面配置带 TLS(传输层安全)的反向代理,或将其保留在专用网络中。完整操作指南包括该代理,以及建议优先修改的 .env 值,详见使用 Docker Compose 自托管 Supabase 的分步指南。
哪个免费方案适合您
项目仍在开发、尚未投入使用,且暂停服务不会造成损失时,选择托管的 Free 方案。它是真正可用的方案,支持的用户数量也很充足。但该方案的定位是让您最终升级到更高版本。
当项目已有用户会注意到停机时,选择 Pro,每月费用为 $25。这低于您单个月用于检查备份所需的工时成本,因此付费是排期决策,而不是失败。
如果您已经在运行 VPS,并且已为其他服务承担运维工作;如果数据不得离开所在司法管辖区;或者存储和出口流量的增长速度已经超过服务器价格的增长速度,请选择自托管。每种开放核心产品都存在同样的权衡。n8n 免费社区版与付费层级之间的区别以及免费 Nextcloud Hub 与其企业订阅之间的区别,划分出的界线相同,位置也相同。免费软件已经足够完整,可以承载实际工作负载。付费产品销售的是您不愿自行维护的部分。
FAQ
Supabase 免费计划是否永久免费?
截至 2026 年 10 月 12 日,定价页面未为 Free 计划设置时间限制或试用期;计费文档要求付费计划绑定银行卡,但未说明 Free 计划需要绑定银行卡。Free 计划有配额限制:数据库 0.5 GB、文件存储 1 GB、出站流量 5 GB、每月活跃用户 50,000 个,以及 2 个活跃项目。对大多数用户而言,免费使用结束的原因并不是配额耗尽,而是以下规则:“Free 项目在闲置 1 周后会暂停”。
Supabase 免费项目暂停后会发生什么?
项目会停止处理请求。API 调用会失败,控制面板会将项目标记为已暂停,直到有人点击 Resume project 按钮恢复项目。文档说明,项目暂停后 1 年内仍可恢复。Supabase 会在暂停前约 1 周发送警告邮件,但不会向应用本身发送警告。因此,你 1 个月前分享的演示项目,在有人通知你时通常已经无法访问。如果项目必须在任何时间响应请求,请将其升级到 Pro,或自行托管。
自行托管的 Supabase 是否与托管版本相同?
不是。文档列出了自行托管不包含的功能:“分支、日志之外的高级指标、托管备份和 PITR、分析和向量存储桶、ETL 以及 Management API”。Studio 也“不支持多个组织或项目”,因此一个自行托管的技术栈只能对应一个项目。数据库、身份验证、存储、实时功能和边缘函数组件,与托管平台运行的软件相同。
自行托管的 Supabase 是否会向 Supabase 回传数据?
不会。自行托管文档说明,自行托管的部署“不回连 Supabase,也不收集任何遥测数据”。运行 docker compose pull 时,容器会从公共镜像仓库拉取镜像。这只是普通的镜像下载,不是关于你数据的报告。此后的所有数据都保留在你的服务器上。这也意味着所有备份和安全更新都由你负责。