
Supabase 深度指南开源 Firebase 替代方案与 Postgres 技术栈全景解读【免费下载链接】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/supabaseSupabase 是一个开源的 Firebase 替代品官方将其定位为 The Postgres development platform——它并不复制 Firebase 本身而是用企业级开源组件组装出类 Firebase 的开发者体验。本文以仓库内的多语言项目介绍 i18n/README.ta.md泰米尔语翻译版 README为主线骨架结合仓库源码与配置文件拆解其平台能力、架构分工与客户端库生态帮助你建立从概念到代码的完整认知。平台定位Postgres 之上构建的 Backend-as-a-Servicei18n/README.ta.md 开篇即明确Supabase 使用 MIT、Apache 2.0 或同等宽松许可证下的企业级开源工具来构建 Firebase 的功能集合。更关键的原则是——如果工具与社区已经存在Supabase 就采用并支持它如果工具不存在就自己构建并开源。同时文档强调Supabase不是 Firebase 的 1:1 映射1-to-1 mapping它的目标是用开源工具为开发者提供像 Firebase 一样顺滑的后端体验而底层则完全掌控在开发者手中。英文原版 README.md 还补充了仓库当前已实现的能力清单二者内容同构可作为能力基线托管式 Postgres 数据库Hosted Postgres Database认证与授权Authentication Authorization自动生成的 APIREST APIGraphQL APIRealtime 实时订阅函数Functions数据库函数与 Edge Functions文件存储File StorageAI 向量/嵌入工具集README 英文原版中列为能力项Dashboard 可视化控制台。仓库 README.md 引用的 Dashboard 界面截图源文件位于 apps/www/public/images/github/可用于直观感受托管控制台的形态。功能全景托管数据库、认证、API、函数与存储托管式 Postgres 数据库平台以 Postgres 为核心开发者无需自建运维数据库认证与授权开箱即用的用户体系与登录会话管理自动生成 APIREST由 PostgREST 依据表结构与行级安全策略动态生成GraphQL通过 PostgreSQL 扩展 pg_graphql 暴露Realtime基于 Postgres 内置复制机制推送数据变更到 WebSocket函数数据库函数数据库内通过 SQL 实现的业务逻辑Edge Functions运行在 edge-runtime 中的无服务器函数仓库内 supabase/functions 目录提供了 Deno/TypeScript 的真实实现文件存储S3 之上的对象存储权限交由 Postgres 管理Dashboard控制台前端对应仓库的 apps/studio。使用方式托管、自托管与本地开发i18n/README.ta.md 指出 Supabase 提供三种使用形态托管平台Hosted访问官方 Dashboard 注册即可使用无需安装任何组件自托管Self-hosted通过 Docker 将整套服务部署在自己的基础设施上本地开发Local Development使用 Supabase CLI 在本地启动与生产环境一致的开发栈。仓库内自托管部署的真实骨架docker/docker-compose.yml仓库的 docker/docker-compose.yml 正是自托管方案的具体实现。从该编排文件可以确认一套自托管实例由以下服务组成镜像版本随仓库演进以下为文件内当前锁定值Compose 服务容器名镜像职责dbsupabase-dbsupabase/postgresPostgres 数据库authsupabase-authsupabase/gotrue认证服务GoTruerestsupabase-restpostgrest/postgrest自动生成 REST APIrealtimerealtime-dev.supabase-realtimesupabase/realtimeRealtime 服务storagesupabase-storagesupabase/storage-api文件存储服务metasupabase-metasupabase/postgres-metaPostgres 管理 APIfunctionssupabase-edge-functionssupabase/edge-runtimeEdge Functions 运行时studiosupabase-studiosupabase/studioDashboard 控制台imgproxysupabase-imgproxydarthsim/imgproxy图片处理poolersupabase-poolersupabase/supavisorPostgres 连接池api-gwsupabase-envoyenvoyproxy/envoyAPI 网关从源码结构看网关层并非唯一绑定 Envoy仓库同时维护docker-compose.kong.yml、docker-compose.nginx.yml、docker-compose.caddy.yml等覆盖文件可按偏好选择入口网关。详细的变量配置参考请见 docker/CONFIG.md聚合了各服务环境变量的类型、默认值与读取位置说明版本演进对照见 docker/versions.md完整部署脚本见 docker/run.sh、docker/setup.sh。架构原理开源组件如何协同Supabase 官方架构示意图。该图由根目录 README.md 引用源文件位于 apps/docs/public/img/supabase-architecture.svg。Postgres一切能力的基座Postgres 是一款拥有 30 余年活跃开发历史的对象-关系型数据库以可靠性、特性完整性和性能著称。Supabase 的每个上层能力都围绕 Postgres 构建supabase/postgres镜像是预装了 Supabase 扩展集的发行版。Realtime让数据库自己开口说话Realtime 是一个Elixir 服务器允许客户端通过 WebSocket 监听 PostgreSQL 的插入、更新与删除事件。其工作机制为轮询 Postgres 内置的**复制replication**机制获取数据库变更将变更转换为 JSON通过 WebSocket 将 JSON 广播给已授权的客户端。这意味着实时能力直接内生于数据库层无需额外引入消息中间件。PostgREST数据库表即 REST 接口PostgREST 是一个 Web 服务器将 PostgreSQL 数据库直接转换为 RESTful API。它依据表的授权与行级安全RLS策略动态生成可查询的 HTTP 端点——这正是表建好、API 即自动生成的秘密。自托管中该服务镜像为postgrest/postgrest。GoTrueJWT 认证与用户管理GoTrue 是基于 JWT 的认证 API用于简化用户注册、登录与会话管理。自托管对应镜像supabase/gotrue负责签发言级密钥与用户令牌。StorageS3 存储、Postgres 管权限Storage 为 S3 上的文件提供 RESTful 管理接口并通过 Postgres 处理权限。也就是说存储桶的授权规则可与数据库的 RLS 模型统一设计。postgres-meta管理 Postgres 本身的 REST APIpostgres-meta 让你能通过 HTTP 完成读取表结构、添加角色、执行查询等管理操作是 Studio 控制台与 SQL 编辑器得以工作的底层支撑。网关与连接池流量统一入口与规模化连接API 网关负责将外部流量路由到 auth、rest、realtime、storage、functions 等服务Supavisor 作为连接池对 Postgres 连接做多租户池化与复用支撑规模化访问。这一拓扑可以从 docker/docker-compose.yml 中服务间的depends_on与端口映射关系得到印证。模块化客户端库聚合客户端 独立功能子库Supabase 客户端库采用模块化modular策略每一个子库都是对某个外部系统的独立完整实现。整体分为一层Supabase 聚合客户端把能力打包成一个 SDK与若干 Feature-Clientpostgrest / auth / realtime / storage / functions 分别独立成库。下表汇总了 i18n/README.ta.md 客户端库一节列出的语言覆盖情况语言/框架Supabase 客户端Feature-Client 拆分JavaScript / TypeScript⚡️ 官方supabase-jspostgrest-js、auth-js、realtime-js、storage-js、functions-jsFlutter / Dartsupabase-dartpostgrest-dart、gotrue-dart、realtime-dart、storage-dartSwiftsupabase-swiftpostgrest-swift、auth-swift、realtime-swift、storage-swiftKotlinsupabase-ktPostgrest-kt、GoTrue-kt、Realtime-kt、Storage-ktPythonsupabase-pypostgrest-py、gotrue-py、realtime-pyC#supabase-csharppostgrest-csharp、gotrue-csharp、realtime-csharp、storage-csharpRubysupabase-rbpostgrest-rbRust—postgrest-rsGo—postgrest-goJava—gotrue-java注表格中 ⚡️ 标注的 JavaScript/TypeScript 为官方维护 标注的多为社区维护并非所有语言都提供完整功能矩阵例如 Go/Java/Rust 目前仅有单一底层客户端实现选型时需按实际需求核对维护状态与功能覆盖。从仓库理解这套架构的真实落地当前仓库是这套架构的大型真实样例建议按以下路径继续深入apps/studioDashboard 前端展示表结构浏览、SQL 编辑器、认证/存储管理等一系列后台交互的实现方式examples官方多场景示例集例如 examples/user-management/nextjs-user-management 是完整的 Next.js 登录注册 数据管理应用examples/edge-functions 汇集了 Edge Functions 的各类用例supabase/functionsEdge Functions 的实际源码与 supabase/config.toml 本地配置packages工程化共享包pg-meta、ai-commands、ui、ui-patterns 等apps/docs官方文档站点的源码内容。项目成熟度当前处于 Public Beta 阶段i18n/README.ta.md 的 நிலை状态章节给出了官方的四阶段里程碑Alpha仅与一小批受邀客户封闭测试Public Alpha任何人可在 Dashboard 注册使用但官方提示还存在一些小问题Public Beta对大多数非企业级用例已足够稳定General Availability生产就绪当前未勾选。按文档所述项目当前处于 Public Beta官方建议通过关注仓库 Releases 获取大版本更新通知。文档、社区与多语言生态官方推荐的后续路径包括完整文档官方文档站含数据库、认证、API、函数、存储、自托管与本地开发等指南贡献指南见仓库根目录 DEVELOPERS.md泰米尔语版 README 中通过../DEVELOPERS.md相对链接指向的如何贡献/入门文件社区支持渠道社区论坛适合讨论构建方法与数据库最佳实践、GitHub Issues适合报告使用中遇到的 Bug、邮件支持数据库或基础设施故障、Discord分享应用与社区交流。关于多语言 READMESupabase README 被社区翻译成数十种语言完整清单见 i18n/languages.md。本文所依托的 i18n/README.ta.md 即其中的泰米尔语版本与根目录 README.md 内容同构这些翻译文件适合快速了解项目定位而技术细节与实现证据应以英文原版 README 及仓库源码为准。小结理解 Supabase 的关键在于把握一条主链路以 Postgres 为数据核心由 PostgREST、GoTrue、Realtime、Storage、postgres-meta 等服务按各自协议承担能力API 网关统一路由再通过模块化 SDK 分语言接入。对照 docker/docker-compose.yml 看清服务拓扑再进入 apps/studio、examples 阅读真实代码即可把开源的 Firebase 替代品从口号还原为可上手、可自托管、可深度定制的工程实践。【免费下载链接】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),仅供参考