用途
supabase-prod-checklist 是一份将 Supabase 项目推向生产环境的可执行检查清单,基于 Supabase 官方生产指南整理为 14 个步骤。它以自上而下的方式组织,每一步都带有内联的验证清单,用于在上线(go-live)前逐项确认安全、性能与运维配置是否到位。
主要能力(14 个步骤)
- 对所有表启用 RLS(行级安全):使用审计查询找出未启用 RLS 的 public 表,上线前必须返回零行;为每张表定义 SELECT、INSERT、UPDATE、DELETE 策略,并用认证与匿名角色测试。
- 密钥隔离:anon key 用于客户端,service_role key 仅限服务端(API 路由、Edge Functions),并验证 service_role 未进入任何客户端打包产物;修改默认数据库密码。
- 配置连接池(Supavisor):无服务器函数必须使用池化连接字符串(端口 6543),直连(端口 5432)仅用于迁移与管理任务;确认池模式(无服务器用 transaction,长连接用 session)。
- 启用数据库备份:Pro 套餐提供每日自动备份,可配置 PITR;在暂存项目上测试恢复流程,并将迁移文件提交版本控制。
- 配置网络限制:设置 IP 允许列表,仅放行部署平台与办公 IP,验证应用在限制后仍可连接。
- 配置自定义域名:替换默认 *.supabase.co 域名,添加并验证 DNS CNAME,配置 SSL,更新应用代码与 OAuth 重定向 URL。
- 自定义认证邮件模板:确认邮件、密码重置、魔法链接、邀请邮件模板,配置自定义 SMTP,启用邮件确认,限制 OAuth 重定向域名,禁用未使用的认证提供商。
- 了解各套餐速率限制:文中给出 Free、Pro、Team 三档在 API 请求、认证邮件、Realtime 连接、Edge Function 调用、Storage 带宽、数据库大小上的具体数值,并提示为 429 响应添加带指数退避的重试逻辑。
- 审查监控面板:查看 Reports、API 日志、性能顾问,部署健康检查端点,配置错误追踪与告警(错误率飙升、高延迟、连接池耗尽)。
- 部署 Edge Functions:通过 CLI 部署,使用
npx supabase secrets set设置密钥而非硬编码,本地用npx supabase functions serve测试,为浏览器请求配置 CORS 头。 - 验证 Storage 桶策略:为每个桶设置显式 SELECT/INSERT/UPDATE/DELETE 策略、文件大小限制、允许的 MIME 类型,并将上传路径限定到 auth.uid()。
- 为高频查询列添加索引:为外键、WHERE、ORDER BY、JOIN 涉及的列建立索引,启用 pg_stat_statements,设置 statement_timeout,检查表膨胀并在死元组比例超过 10% 时 VACUUM。
- 通过
npx supabase db push应用迁移:所有 schema 变更走迁移文件(supabase/migrations/),本地与远程迁移历史一致,为高风险变更准备回滚迁移,禁止在生产 Dashboard 手工改 schema。 - 上线前最终验证:确认 CORS 匹配生产域名、环境变量正确、仅对需要的表启用 Realtime、注册并测试 Webhook、完成负载测试、启用 SSL 强制、端到端验证 DNS 与自定义域名。
使用方式
按自上而下的顺序执行,每一步的复选框全部勾选后才可上线。每个步骤对应需运行的命令,完整 SQL、TypeScript 与 CLI 命令存放在 references/step-commands.md。
前提条件包括:Supabase 项目位于 Pro 或更高套餐(PITR 与网络限制需要)、生产项目与开发项目分离、已安装 @supabase/supabase-js v2+ 和 Supabase CLI、配置好自定义域名的域名与 DNS、部署平台(Vercel、Netlify、Cloudflare 等)就绪。
适用场景
适用于准备将 Supabase 项目部署到生产环境的开发者与团队,尤其是使用无服务器平台(Vercel、Netlify、Cloudflare Workers)并需要系统核对 RLS、密钥、连接池、备份与监控配置的场景。
限制与说明
文中未说明该检查清单对非 Pro 套餐项目的适配方式,也未提供定价信息。检查清单基于 Supabase 官方指南;相关后续主题(SDK 升级、负载测试、生产监控、Edge Function 模式)指向其他技能,本条目未展开。部分内容(如速率限制数值、参考文件)以文档形式给出,实际使用需以 Supabase 当前官方信息为准。