别把 Supabase 当神:开源 BaaS 的隐藏成本与免费陷阱 别把 Supabase 当神开源 BaaS 的隐藏成本与免费陷阱【免费下载链接】supabaseThe Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.项目地址: https://gitcode.com/GitHub_Trending/supa/supabase作为开源的 Firebase 替代品Supabase 几乎是过去几年里被安利次数最多的后端即服务BaaS。它把 PostgreSQL、PostgREST、GoTrue、Realtime 这些企业级开源组件打包成一句口号——不用写后端SQL 即服务。社区教程里常见的叙事是一条 SQL 建表自动生成 REST 与 GraphQL API行级安全RLS管权限几行代码接入 Auth 与 Storage一天做出带实时功能的完整应用。但开源与免费之间横亘着一条许多开发者直到收到账单或遭遇数据泄露才意识到的鸿沟。本文不打算否定 Supabase——它确实解决了大量中小团队的真实痛点这个仓库本身就是佐证它在 README.md 中宣称用企业级开源工具复刻 Firebase 能力并在 docker/docker-compose.yml 中把整套平台做成了可自托管的容器编排。问题在于热度掩盖了边界免费额度到底能撑多久开源是否意味着永不锁定你的项目形态是否真的适合它这三个问题值得在下单之前先想清楚。免费额度的边界不是白嫖是精确计算的预算先看这份仓库里最直白的证据——定价数据就写在产品代码里。packages/shared-data/plans.ts 定义了从 Free 到 Enterprise 的完整套餐而 packages/shared-data/pricing.ts 逐项列出了每个功能的额度与超额单价。把免费档的条款摊开很多惊喜其实早已白纸黑字数据库 500 MB、共享 CPU、500 MB RAM这基本是玩具级配置。任何真实业务的数据增长都会在一个季度内逼近上限。50,000 MAU 与 5 GB egress注意MAU 是月活跃用户包含未登录的匿名访客Egress 则是出站流量。对以图片、文件下载为主的内容型应用5 GB 可能撑不过一个热门帖子。项目会自动暂停plans.ts的 footer 明确写着Free projects are paused after 1 week of inactivity. Limit of 2 active projects.一周不活跃数据库直接被暂停。对于 Demo、课程项目或低频工具这几乎必然发生。免费档没有自动备份pricing.ts中database.automaticBackups在 free 档为falsedatabase.pitr时间点恢复在所有档位都是付费功能。也就是说免费用户的数据只在托管侧存在一份活跃副本。真正容易让人措手不及的是超额计费的结构。以 Pro 档$25/月起为例它默认只含一个 Micro compute 项目超出的每一项都是独立计价MAU 超出 10 万后每个用户 $0.00325数据库超 8 GB 后每 GB $0.125Egress 超 250 GB 后每 GB $0.09Storage 超 100 GB 后每 GB $0.0213Edge Functions 超 200 万次调用后每百万次 $2Realtime 消息超 500 万条后每百万条 $2.50…… 这些单价单独看都不贵但它们同时、逐项、按月叠加。一个 MAU 30 万、日活不高、带文件存储和实时推送的应用月账单轻松从 $25 滚到数百美元——而这一切发生在服务端没有任何熔断提示的情况下用户往往是在月底收到账单时才第一次看到数字。隐藏成本还藏在更隐蔽处。比如日志free 档仅保留 1 天日志、1 GB 摄入要排查一个三天前的问题就得先升级。自定义域名 $10/月/域名日志转储Log Drain$60/月/每个 drain高级 MFA手机$75/月起SAML 额外计费HIPAA 是 Team 档之上的付费附加项——安全与合规能力被精确地切成了一个个加价点。再对比一下自托管选项的免费含金量。docker/.env.example 的注释第一行就是YOU MUST CHANGE ALL THE DEFAULT VALUES BELOW BEFORE STARTING——Postgres 密码、JWT Secret、Dashboard 密码全部带默认值且附带了公开可查的示例 ANON_KEY 与 SERVICE_ROLE_KEY。仓库同时提供了 docker/utils/generate-keys.sh 等密钥生成脚本。这暗示了一个残酷的现实自托管省下的订阅费是用自己运维一整套 Postgres PostgREST GoTrue Realtime Storage Edge Runtime 网关的持续成本换来的。docker/docker-compose.yml 列出了 studio、api-gw、auth、rest、realtime、storage、imgproxy、meta、functions、db、supavisor、db-config 等十几个容器——每一条都是要维护、要打补丁、要备份、要防攻击的资产。开源协议的账代码自由 vs 商业现实Supabase 是开源的——这在技术上成立但需要精确理解。仓库 LICENSE 采用的是 Apache 2.0README.md 也明确写着只要底层工具是 MIT、Apache 2.0 或同等许可Supabase 就用并支持它没有现成的就自己开源一个。Apache 2.0 意味着你可以自由复制、修改、再分发甚至可以闭源地使用其代码构建商业产品。理论上任何人都可以 fork 出一个Supabase 分叉自托管或者基于它做二次封装。但分叉是一回事活下来的分叉是另一回事。核心引擎不在 Supabase 手里整套平台的灵魂是 PostgreSQL、PostgREST、GoTrue、Realtime 这些独立开源项目。分叉 Supabase 的编排与 Dashboard 层不等于掌握 Auth、Realtime 或 Storage 的演进方向——那些都由各自的上游社区驱动。托管层的护城河很宽免费代码不包含运营成本。Supabase 的价值主张从来不是给你代码而是给你一个不用运维的 Postgres。多区域部署、自动备份、指标端点、Log Drain、SSO、SOC2 与 ISO 27001 合规——这些在 packages/shared-data/pricing.ts 中几乎全部标记为 Pro 以上甚至 Team 以上才可用它们在开源自托管版本里要么需要大量手工工作要么根本没有对应实现。生态锁定比代码锁定更现实你真正被锁定的不是代码而是围绕托管平台形成的开发习惯——Studio 的运维工作流、API 网关的密钥体系、按需付费的计费模式。把这些迁移走等于重建一套 DevOps。对大多数团队来说真正的问题不是能不能 fork而是fork 了之后谁来管。开源在这里提供的与其说是退路不如说是一个审计窗口你能读源码确认数据到底存在哪、API 密钥如何流转、RLS 如何被强制执行。比如 apps/studio/lib/role-impersonation.ts 揭示了 Studio 内部通过role: service_role与自定义 SQL 片段实现角色模拟来调试权限docker/.env.example 则清楚区分了面向客户端的SUPABASE_PUBLISHABLE_KEYanon 角色与永远不要暴露在客户端的SUPABASE_SECRET_KEYservice_role。这些细节是开源带给你的最大资产——但前提是你真的去读。安全与权限开源平台的阿喀琉斯之踵社区情报中有一组触目惊心的数据安全研究机构 UpGuard 发现超过16,326 个 Supabase 数据库暴露了可读表格其中大量包含公开的个人数据TechCrunch 等媒体随后跟进报道。结合这家公司正以百亿美元级估值成为 vibe coding 默认后端 的舆论环境这件事的警示意义被放大了当接入 Supabase 的门槛低到几行代码权限配置的失误率也随之飙升。问题不在 Supabase 的 RLS 设计——恰恰相反它的安全模型是业内少有的完备。问题在于它的默认姿态与心智模型BaaS 把后端抽象掉了却把最不该抽象的安全决策留给了前端开发者。核心矛盾在于两个 API Key 的使用。anon key 用于客户端理论上只能访问被 RLS 策略放行的数据service_role key 绕过 RLS、拥有全部权限绝不能出现在客户端代码里。docker/.env.example 对SUPABASE_SECRET_KEY的注释写得很直白Never expose in client code。但实际工程中把 service_role key 塞进前端环境变量、把select()写进客户端查询却忘了配 Policy 的案例比比皆是。BaaS 的即时满足感让建表→写查询→上线的路径太顺滑而建表→配 RLS→写策略→验证绕过路径的路径却需要额外三步——免费额度时代没有人为这三步买单。更微妙的是即使正确使用 anon key也面临一个统计陷阱免费档的 50,000 MAU 包含匿名用户。凡是做先匿名体验、后引导注册模式的应用这正是 Supabase Auth 匿名登录主推的场景活跃用户数会以远超直觉的速度增长并直接把你推进超额的 MAU 计费区间——pricing.ts 中auth.thirdPartyMAUs与auth.maus的超额单价一模一样说明这套计费已经把所有身份来源都算进了 MAU 池子。什么项目真的不适合 Supabase说清了成本结构与风险边界结论反而清晰了。Supabase 是非常优秀的工具但它是一把为特定形状的项目量身定做的刀用错场景隐藏成本会吃掉所有效率红利。以下三类项目建议谨慎数据量大且不可压缩的应用。免费档 500 MB 数据库、Pro 档 8 GB 起步超量 $0.125/GB/月且不可降级。日志型、事件型、时序型数据聊天记录、埋点、审计、IoT增长极快Postgres 单库的扩容路径要么是昂贵的计算升级要么是分库分表——后者恰恰抵消了 BaaS 的免运维承诺。这类项目更适合专用数据栈ClickHouse、对象存储 检索服务或至少把 Supabase 定位为业务库而非全量数据仓库。强合规、强 SLA 的企业核心系统。SOC2、ISO 27001、HIPAA 全部从 Team 档$599/月起才开始计价Uptime SLA 只在 Enterprise 提供SSO 需要联系销售。如果你的客户是金融机构、医疗机构或者需要私有网络接入AWS PrivateLink同样 Team 起步BaaS 的订阅成本叠加合规缺口几乎必然高于自建 Postgres 开源组件的成本。这类场景里开源协议反而是自建路线的通行证——毕竟整套组件都允许你拿走自管。对退出路径敏感的产品。这里说的不是代码锁定——Apache 2.0 保证代码自由——而是数据与运维资产的迁移成本。托管平台上的数据导出、依赖 Realtime 长连接的客户端架构改造、基于托管网关的认证体系迁移每一项都是数周量级的工作。如果你的投资人、客户或内部治理要求云厂商可替换BaaS 的便利性就要打上问号。反过来说如果项目只是验证想法、做 MVPrototype、跑教育 Demo那免费档 自动暂停机制本身就是设计好的低承诺试用supabase/config.toml 还提供了完整的本地开发配置完全可以在不花钱的前提下把整套工作流跑通。一句话总结Supabase 的免费额度是给原型和教学用的不是给生产用的它的开源许可是给审计和自托管兜底的不是给免费运维兜底的它的 RLS 和密钥体系设计得再严谨也防不住把 service_role key 写进前端的人。开源 BaaS 的账从来不是免费两个字而是一道需要你亲手动笔算的算术题——把 MAU 曲线、存储增速、合规清单和退出成本都列进表格答案自然浮现。别把 Supabase 当神把它当一台参数明确、边界清晰的数据库售货机它反而会成为你最顺手的工具。【免费下载链接】supabaseThe Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.项目地址: https://gitcode.com/GitHub_Trending/supa/supabase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考