news 2026/9/13 16:35:29

PocketBase 完整入门教程:单个 Go 二进制文件内建数据库、认证与后台管理的实时后端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PocketBase 完整入门教程:单个 Go 二进制文件内建数据库、认证与后台管理的实时后端

PocketBase 完整入门教程:单个 Go 二进制文件内建数据库、认证与后台管理的实时后端

【免费下载链接】pocketbaseOpen Source realtime backend in 1 file项目地址: https://gitcode.com/GitHub_Trending/po/pocketbase

PocketBase 是一个用 Go 编写的开源后端,把 SQLite 数据库、实时订阅、用户认证和管理面板全部装进一个可执行文件。它不需要额外安装数据库服务,几分钟内就能跑起一套完整的后端接口,适合独立开发者、小团队和需要快速验证原型的场景。

能力总览:一个二进制里装了什么

能力说明相关位置
内嵌 SQLite 数据库全部数据落在单文件里,免部署core/db.go
实时订阅数据变更通过 WebSocket 推给客户端apis/realtime.go
用户认证邮箱验证、密码重置、OTP、OAuth2 登录apis/record_auth_with_password.go
管理面板网页端维护数据模型与数据ui/src/
文件存储本地目录或 S3tools/filesystem/
JS/Go 双扩展脚本热更新或编译进二进制plugins/jsvm/

🚀 最快启动方式:从源码到跑通服务

如果你不想只跑预编译版本,装好 Go 后直接编译仓库里的最小示例即可:

git clone https://gitcode.com/GitHub_Trending/po/pocketbase cd pocketbase/examples/base CGO_ENABLED=0 go build ./base serve

服务默认监听127.0.0.1:8090(见 cmd/serve.go),浏览器打开这个地址,首次启动会进入超级用户安装页,在那里创建管理员账号。所有数据都写在pb_data目录,备份时只需要带上这个目录。

典型用法一:用管理面板定义数据模型

集合(collection,相当于数据表)在管理面板中维护:新建集合、添加字段、配置访问规则,保存后对应的 REST 接口和管理界面自动生成。字段类型有布尔、日期、关联、文件、选择等十几种,实现在 core/ 目录的field_*.go文件中,模型定义见 core/collection_model.go。

比如搭一个博客,你只需要建 posts 和 comments 两个集合,用户表是内置的,认证接口现成可用。

⚡ 典型用法二:实时数据订阅

实时端点在 apis/realtime.go 中实现。前端建立长连接并订阅某个集合的变更后,该集合的记录发生增删改时会自动推送给客户端,不用轮询。协作编辑、订单状态同步、多人看板这类场景用它最直接。

🔌 典型用法三:两条扩展路径

  • Go 扩展:把 PocketBase 当普通 Go 库引入,在事件钩子里写业务逻辑,最后仍可编译成单个静态可执行文件,示例见 examples/base/main.go
  • JS 扩展:JS VM 插件(plugins/jsvm/)加载pb_hooks目录下的脚本,改逻辑不用重新编译

复杂、稳定的逻辑用 Go,频繁微调的规则用 JS,两者可以同时存在。

按需定制:改什么去哪里找

  • 系统邮件模板(验证、密码重置等):mails/templates/
  • 限流、CORS、请求体大小限制:apis/middlewares_rate_limit.go 等中间件
  • 定时任务调度:tools/cron/
  • 数据库结构变更脚本:migrations/

✅ 上线前检查清单

  • 端口与域名:给serve传入域名参数后,HTTP/HTTPS 默认切到0.0.0.0:80/443并自动申请证书,裸跑时默认只监听本机
  • 版本兼容:项目 README 明确 v1.0 之前不保证完全向后兼容,建议锁定版本,升级前备份pb_data
  • 容量预期:SQLite 单文件适合中小并发;高并发读可以考虑只读副本,而不是直接上分布式

下一步:一个 10 分钟验证任务

挑一个小业务(比如待办清单),在管理面板建 1 个集合、加 3~5 个字段,然后写两行请求调用列表接口,再开一个实时订阅确认数据变更能推过来。走通这条链路,你对 PocketBase 的用法就基本有数了;更细的接口参数可以在管理面板的 API 预览面板里逐条试。

【免费下载链接】pocketbaseOpen Source realtime backend in 1 file项目地址: https://gitcode.com/GitHub_Trending/po/pocketbase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 16:34:50

示波器实操八大核心问题:从探头接地到FFT频谱精准测量

1. 这不是教科书,是我在电子实验室熬了17个通宵后写给新手的示波器通关指南“八个灵魂问题,带你入门示波器”——这标题乍看像鸡汤文,但如果你刚拆开一台二手DS1054Z、手边还摆着被烧黑的探头、示波器屏幕上跳着乱码波形,那这八个…

作者头像 李华
网站建设 2026/9/13 16:33:48

功耗优化工程师如何切入Linux驱动开发

1. 这不是转行,是功耗优化工程师的自然进化路径干了两年功耗优化,现在该不该转Linux驱动?这个问题我去年在杭州一家做智能座舱芯片的公司内部技术分享会上被问过七次——提问的全是和我一样从电源管理、DVFS调优、idle状态分析起步的工程师。…

作者头像 李华
网站建设 2026/9/13 16:32:24

用SPWM实现FOC:原理、实现与性能对比分析

把SPWM和FOC放在一起,很多刚接触电机控制的朋友第一反应是“这俩不是一回事吗”,细想又觉得哪里不对。FOC是磁场定向控制,SPWM是正弦脉宽调制,前者是策略,后者是手段,放在一块儿讲其实挺有意思——市面上讲…

作者头像 李华
网站建设 2026/9/13 16:32:20

DAM0808B工业继电器模块30A负载与RS485可靠组网实战指南

1. 这不是普通继电器——DAM0808B的30A负载能力到底意味着什么?很多人第一次看到“DAM0808B工业I/O继电器模块,30A继电器”这个标题,第一反应是:“又一个带RS485的IO模块?”——然后顺手划走。但真正用过它的人知道&am…

作者头像 李华