PocketBase 是一款基于 Go 语言开发的开源后端框架,以单一可执行文件的形式提供实时数据库、用户管理、文件存储等核心功能,被誉为“无需编码的快速开发神器”。
其设计哲学聚焦于轻量、易用与灵活性,特别适合中小型项目快速搭建与迭代。截至 2024 年,该项目在 GitHub 上已斩获 45K+ Star,成为开源社区中备受瞩目的后端解决方案。
特性
1. 嵌入式实时数据库
PocketBase 内置 SQLite 数据库,支持 ACID 事务 与 WebSocket 实时订阅。数据变更时,前端可通过实时推送机制即时更新界面,适用于聊天应用、实时仪表盘等场景。例如:
// 实时订阅示例(JavaScript SDK)
client.collection('posts').subscribe('*', (e) => {
console.log('数据变更:', e.record);
});
2. 一站式后端服务
-
用户管理: 完整覆盖注册、登录、OAuth 集成、角色权限控制,支持 JWT 令牌加密。
-
文件存储: 内置文件上传接口,支持本地存储或对接云服务(如 AWS S3)。
-
管理面板: 提供直观的 GUI 界面,支持数据可视化、批量操作及自定义视图。
3. 极简 API 与扩展性
REST-ish API: 标准化 CRUD 接口,支持过滤、排序与分页,例如:
GET /api/collections/posts/records?filter=views>100&sort=-created
插件系统: 通过 JavaScript VM 或 Go 扩展 添加自定义逻辑,例如实现支付回调或数据清洗。
4. 技术栈与架构
-
后端语言: Go(占比 65.8%),保障高性能与跨平台兼容性。
-
前端组件: Svelte(19.2%)构建管理面板,界面简洁高效。
-
部署形态: 单文件二进制分发,支持 Docker 容器化部署。
场景案例
-
快速原型开发: 3 天内搭建一个博客系统,含用户评论与文件上传功能。
-
IoT 数据中台: 通过实时订阅功能监控设备状态,触发告警规则。
-
移动应用后端: 配合 Flutter 或 React Native,实现跨平台用户认证与数据同步。
快速使用
1. 下载运行
从官方Release页面下载对应系统的可执行文件,解压后运行:
./pocketbase serve
一个完整的后端服务就启动了!
2. 访问管理后台
打开浏览器访问http://localhost:8090
,你就能看到直观的管理界面,可以进行:
-
数据库管理
-
用户管理
-
文件管理
-
API配置
登录页面
用户管理
API配置与预览
开源地址
https://github.com/pocketbase/pocketbase