PocketBase:一个二进制文件替代 Firebase

PocketBase — 单文件后端:数据库、身份验证、文件存储和管理面板。它能做到什么,又缺少什么。

有时候你只想要一个不需要 15 个微服务、Kubernetes 和五人团队的后端。PocketBase 正是为此而生:下载一个二进制文件,运行——你就拥有了完整的数据库、REST API、管理面板和身份验证系统。

内部构成

PocketBase 基于 SQLite 构建,使用 Go 语言编写。这是关键:没有任何外部依赖,不需要 PostgreSQL。一个 20 MB 的二进制文件就包含了整个后端。

  • 数据库 —— 内置迁移功能的 SQLite
  • 身份验证 —— 邮箱/密码登录、OAuth2(Google、GitHub、Apple 等)、密码重置
  • 文件存储 —— 文件上传、图片缩放、令牌保护
  • 管理面板 —— 管理集合、用户、查看日志
  • 实时功能 —— 通过 Server-Sent Events 订阅数据变更

API 根据集合模式自动生成。在管理面板创建一个"posts"集合,CRUD 端点就自动可用了。

可扩展性

PocketBase 可以通过 Go 语言扩展:自定义路由、钩子、中间件、WebSocket。这把它从一个简单的后端即服务变成了功能完整的 API 框架。对 JavaScript/TypeScript 开发者来说,有现成的 SDK。

局限性

SQLite 不适合高并发写入场景。如果你每秒有成千上万的并发写入——请考虑 PostgreSQL。不支持水平扩展:PocketBase 就是单服务器运行。但对于 95% 的项目来说,这已经绰绰有余。

适合的项目类型

MVP 和原型、内部工具、管理后台、移动端后端、早期 SaaS 产品。所有需要快速获得可用 API 而不想搭建多余基础设施的场景。

PocketBase 官方网站