pocketbase/pocketbase
GitHub: pocketbase/pocketbase
单文件部署的开源实时后端,集成 SQLite 数据库、用户管理、文件存储和管理后台,适合快速搭建小型应用的 Backend as a Service 方案。
Stars: 56969 | Forks: 3194
[PocketBase](https://pocketbase.io) 是一个开源的 Go 后端,包括:
- 嵌入式数据库 (_SQLite_),支持 **实时订阅**
- 内置 **文件和用户管理**
- 便捷的 **Admin dashboard UI**
- 以及简单的 **REST-ish API**
**有关文档和示例,请访问 https://pocketbase.io/docs。**
## API SDK 客户端
与 PocketBase Web API 交互的最简单方法是使用官方 SDK 客户端之一:
- **JavaScript - [pocketbase/js-sdk](https://github.com/pocketbase/js-sdk)** (_Browser, Node.js, React Native_)
- **Dart - [pocketbase/dart-sdk](https://github.com/pocketbase/dart-sdk)** (_Web, Mobile, Desktop, CLI_)
您也可以查看 https://pocketbase.io/docs/how-to-use/ 中的建议。
## 概述
### 作为独立应用使用
您可以从 [Releases 页面](https://github.com/pocketbase/pocketbase/releases) 下载适用于您平台的预构建可执行文件。
下载后,解压归档文件并在解压目录中运行 `./pocketbase serve`。
预构建的可执行文件基于 [`examples/base/main.go` 文件](https://github.com/pocketbase/pocketbase/blob/master/examples/base/main.go),并默认启用了 JS VM 插件,允许使用 JavaScript 扩展 PocketBase(_有关更多详细信息,请参阅 [使用 JavaScript 扩展](https://pocketbase.io/docs/js-overview/)_)。
### 作为 Go 框架/工具包使用
PocketBase 作为常规 Go 库包分发,允许您构建
您自己的自定义应用特定业务逻辑,并且最终仍能拥有一个单一的可移植可执行文件。
这是一个最小示例:
0. [安装 Go 1.25+](https://go.dev/doc/install)(_如果您尚未安装_)
1. 创建一个新的项目目录,并在其中包含以下 `main.go` 文件:
package main
import (
"log"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
)
func main() {
app := pocketbase.New()
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
// registers new "GET /hello" route
se.Router.GET("/hello", func(re *core.RequestEvent) error {
return re.String(200, "Hello world!")
})
return se.Next()
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
2. 要初始化依赖项,请运行 `go mod init myapp && go mod tidy`。
3. 要启动应用程序,请运行 `go run main.go serve`。
4. 要构建静态链接的可执行文件,您可以运行 `CGO_ENABLED=0 go build`,然后使用 `./myapp serve` 启动创建的可执行文件。
_有关更多详细信息,请参阅 [使用 Go 扩展](https://pocketbase.io/docs/go-overview/)。_
### 构建和运行仓库 main.go 示例
要构建最小的独立可执行文件,就像 Releases 页面中预构建的那样,您只需在 `examples/base` 目录中运行 `go build`:
0. [安装 Go 1.25+](https://go.dev/doc/install)(_如果您尚未安装_)
1. 克隆/下载仓库
2. 导航到 `examples/base`
3. 运行 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build`
(_https://go.dev/doc/install/source#environment_)
4. 通过运行 `./base serve` 启动创建的可执行文件。
请注意,目前纯 Go SQLite 驱动程序支持的构建目标包括:
```
darwin amd64
darwin arm64
freebsd amd64
freebsd arm64
linux 386
linux amd64
linux arm
linux arm64
linux loong64
linux ppc64le
linux riscv64
linux s390x
windows 386
windows amd64
windows arm64
```
### 测试
PocketBase 包含各种单元测试和集成测试。
要运行它们,请使用标准的 `go test` 命令:
```
go test ./...
```
另请查看 [测试指南](http://pocketbase.io/docs/testing) 以了解如何编写您自己的自定义应用程序测试。
## 安全性
如果您在 PocketBase 中发现安全漏洞,请发送电子邮件至 **support at pocketbase.io**。
所有报告都将得到及时处理,您将在修复版本的说明中获得致谢。
标签:Admin仪表盘, BaaS, CMS, Dart SDK, EVTX分析, Golang, Go语言, JavaScript SDK, PocketBase, RESTful API, SQLite, 低代码, 单文件应用, 后端即服务, 后端框架, 安全编程, 实时后端, 实时数据库, 实时订阅, 嵌入式数据库, 开源后端, 提示词优化, 数据可视化, 文件管理, 无服务器, 日志审计, 用户管理, 移动开发, 程序破解, 轻量级后端