PocketBase:一个 SQLite 驱动的轻量后端,自带 Admin UI 与 REST API
PocketBase 是基于 SQLite 的轻量级开源后端解决方案,内置实时订阅、身份认证、文件存储、REST API 和管理面板等能力,可以用来快速搭建移动端、Web 和服务器端应用。它既能作为独立应用运行,也可以作为 Go 语言框架集成到项目里。
核心功能
- 内置数据库:使用嵌入式 SQLite,数据以单一文件存储,不需要独立数据库服务器。
- 身份认证:支持邮箱/密码、OAuth2(Google/Facebook/GitHub 等),集成 JWT 令牌和密码重置流程。
- 文件存储:支持本地存储或 S3 云存储,并带访问控制策略。
- 实时数据同步:基于 WebSocket 和 SSE 实现实时订阅,客户端可以监听特定记录或整个集合的变更(新增、更新、删除)。
- 内置管理界面:自带 Admin UI,可以可视化管理数据集合、用户权限、文件和 API 日志,还能直接生成 API 文档。
- 自动化 API:基于已有数据模型自动生成 RESTful API。
- 前端框架集成:提供 JavaScript 和 Dart SDK,可接入 Angular、React、Vue、Flutter、Svelte 等前端框架。
在线体验
PocketBase 官方提供了一个在线演示系统:
可以在管理页面里管理业务数据集合、预览自动生成的 API、查看系统日志、设置系统信息。由于安全考虑,演示系统没有开放全部功能,完整的体验需要下载本地安装包。
下载安装
文档中提供了下载和安装说明:
下载后解压,直接运行:
./pocketbase serve
然后在浏览器打开管理页面:
http://127.0.0.1:8090/_/
首次使用需要创建超级用户并登录。
在管理界面点击“+ New collection”新建一个名为 blog 的集合,用来代表业务数据“博客文章”。新建后左侧会出现该集合,点击“+ New record”可以新增一条记录。
PocketBase 会根据集合自动生成 API,基本不需要手写接口代码。点击“</> API Preview”可以查看 API 说明,以及 JavaScript、Dart 调用示例。
例如,直接访问以下地址查看全部 blog 记录:
http://127.0.0.1:8090/api/collections/blog/records
此时返回状态码 403,是因为 blog 集合的 API 访问权限没有放开。打开该集合的设置页面,配置对应的 API 访问规则,保存后再访问同一地址即可看到记录。
更多功能和使用方式参考官方文档: