做小程序、App 或个人项目时,最麻烦的往往是后端:要建数据库、写用户登录、做文件上传、还要实时推送。PocketBase 是一个用单个可执行文件就能提供「数据库 + 用户认证 + 实时订阅 + 文件存储 + 管理后台」的开源后端即服务(BaaS),本地跑起来不到 10 秒,特别适合自托管轻量项目。本文记录在雨云 VPS 上用 Docker 部署 PocketBase 的完整过程与踩坑点。
一、什么是 PocketBase,解决什么问题
PocketBase 把后端最常见的几件事打包成一个二进制程序:
- 内置数据库:基于 SQLite,提供可视化的集合(Collection)管理,不必单独装 MySQL/PostgreSQL;
- 用户认证:开箱即用的邮箱密码登录、OAuth 第三方登录、JWT 令牌;
- 实时订阅:前端可以通过 WebSocket 订阅数据变更,数据一改前端立刻更新;
- 文件存储:支持文件字段,上传的文件直接存到磁盘或对象存储;
- Admin 后台:自带一个管理界面,建表、加字段、配权限都能点鼠标完成。
和 Supabase、Firebase 相比,PocketBase 的最大优势是「轻」——单文件、零外部依赖,1 核 1G 的机器就能跑。和前面写过的 NocoDB(见 12342)不同,NocoDB 本质是「把数据库变成在线表格」,而 PocketBase 是「把数据库变成带认证和 API 的完整后端」,更适合给程序当后端用。
二、环境准备
建议在雨云买一台 1 核 2G 以上的 VPS(数据库 + 文件服务略吃内存)。系统选 Ubuntu 22.04,安装好 Docker 与 Docker Compose(可参考 12235 的 VPS 入门)。国内节点延迟低、备案方便,做面向国内用户的小程序后端很合适。
新用户用优惠码 admin01 可享 五折优惠,雨云支持 7 天无理由退款,先开一台练手不亏。入口:雨云官网。
部署用 Docker 最省事,既方便用 Portainer(见 12310)统管,也方便用 Watchtower(见 12312)自动更新。
三、用 Docker Compose 部署
新建 docker-compose.yml:
services:
pocketbase:
image: ghcr.io/pocketbase/pocketbase:latest
container_name: pocketbase
restart: unless-stopped
command:
- /pb/pocketbase
- serve
- --http=0.0.0.0:8090
ports:
- "8090:8090"
volumes:
- ./pb_data:/pb/pb_data
- ./pb_public:/pb/pb_public
关键点:
- 数据必须挂卷:
./pb_data是 SQLite 数据库和上传文件所在地,不挂卷重启就丢; - 端口别直接裸奔对外:8090 是管理后台端口,建议用 Nginx/Caddy 反代并加 Authelia 之类鉴权(见 12340),避免后台被扫;
- 启动后访问
http://服务器IP:8090/_/即可进入初始化。
四、初始化与管理后台
首次打开 _/ 会要求创建管理员账号,这个账号权限极高,务必用强密码。登录后你会看到:
- Collections:建集合(相当于表),支持文本、数字、布尔、文件、关联等字段类型;
- API 规则:每个集合能分别设置「公开读 / 登录读 / 仅管理员」的权限,默认是禁止公开的,需手动放开;
- Settings → Application:能看到 SDK 用法和 API 地址。
踩坑提醒:PocketBase 默认所有集合对外不可见,前端调 API 报 403 多半是权限没开;另外集合改名会改底层表名,上线后尽量别乱改。
五、和 n8n 联动做自动化
PocketBase 自带 REST API 和 Web 钩子,可以很方便地和 n8n(见 12296)联动:例如有新用户注册时,通过 PocketBase 的事件触发 n8n 工作流发欢迎通知。这种「PocketBase 当数据库 + n8n 当逻辑编排」的组合,能做不少轻量业务系统。
六、备份别忘了
SQLite 数据库是单个文件,备份很简单:停服或锁库后直接拷 pb_data 目录即可。建议配合 BorgBackup(见 12306)做定时去重备份,或把上传的文件同步到对象存储(见 12308)。
合规提醒
PocketBase 是你自己运营的后端服务,上面存储的用户注册信息、手机号、邮箱等属于《个人信息保护法》规定的个人信息,收集前需向用户明示并取得同意,不得擅自共享或出售。后台管理员账号等同于数据库最高权限,请妥善保管、不向他人泄露。不得利用本服务存储或分发违法不良信息。






