cloudflarebase/cloudflarebase
GitHub: cloudflarebase/cloudflarebase
一个完全运行在 Cloudflare 账户上的开源 Firebase 替代方案,当前提供基于 Durable Object 的身份验证服务和配套管理仪表盘。
Stars: 46 | Forks: 5
实时演示 ·
部署你自己的实例 ·
贡献指南
一个完全运行在您的 Cloudflare 账户上的开源 Firebase 替代方案。
每个项目都会获得一个独立的 Durable Object,在内置的 SQLite 上运行 Better Auth,
此外还配备了一个包含实时计数器、数据分析、AI 助手以及生成的 API 参考文档的仪表盘。
身份验证是第一个基础组件。数据库、存储及其他功能将遵循相同的架构进行开发。
## 在本地运行
```
git clone https://github.com/cloudflarebase/cloudflarebase.git
cd cloudflarebase
npm install
npm run dev
```
打开
。无需设置任何密钥。本地开发环境以
demo 模式运行,因此您无需登录即可获得一个一次性的测试项目。
## 部署你自己的实例
需要部署两个 Worker。Agent 需要先部署,因为仪表盘会通过名称绑定到它
(Cloudflare 的部署按钮每次点击只能部署一个 Worker)。
1. Agent: [](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflarebase/cloudflarebase/tree/main/agents/auth)
2. 仪表盘: [](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflarebase/cloudflarebase)
或者通过克隆仓库运行:`npm run deploy:all`。
然后打开仪表盘并创建第一个账户。该账户将成为控制台的所有者,
随后注册通道将自动关闭。您的实例默认是私有的。
部署后会自动信任其自身的来源(origin),因此部署完成后无需任何配置即可直接登录。
如果您从其他域名提供控制台服务,或从其他应用调用 API,请将这些来源添加到
`TRUSTED_ORIGINS`(CSRF 白名单)中,或者在项目设置的 Settings 中逐项目添加。
可选的附加功能,在配置前均为关闭状态:Google/GitHub 登录、邮件发送、
Sentry,以及用于读取分析的 SQL 查询(需要 `CF_ACCOUNT_ID` +
具有 Account Analytics Read 权限的 `CF_ANALYTICS_API_TOKEN`)。
## 将身份验证添加到现有的 Worker 中
控制台是可选的。Agent 是一个标准的 npm 包,CLI 可以将其
集成到现有的 Worker 项目中:
```
npm install -g @cloudflarebase/cli
cloudflarebase init my-backend # or `cloudflarebase add auth` in an existing project
cd my-backend
npx wrangler login
cloudflarebase deploy # sign-in works right away
```
`add` 命令会将 Agent 的 wrangler 配置合并到您的配置中,而不会覆盖
您已设置的任何内容,同时会从您的入口文件导出 Durable Object 类,
并添加类型断言,这样如果缺少绑定,在编译时就会因显示其名称而报错。
## 在您的应用中使用它
API 使用的是 Better Auth,因此其客户端可以直接开箱即用:
```
import { createAuthClient } from 'better-auth/client';
const authClient = createAuthClient({
baseURL: 'https://your-dashboard.workers.dev/api/projects/my-app/auth'
});
await authClient.signUp.email({ name, email, password });
```
浏览器会使用 cookie;其他客户端则使用 `set-auth-token` bearer token。
请先在项目的 Settings 标签页下添加您应用的来源(origin)。每个项目还
会在 `/api/projects//openapi.json` 路径下提供 OpenAPI 3.1 文档,
该文档会在仪表盘的 API Reference 下渲染展示。
## 检查
```
npm run check # svelte-check
npm run lint # prettier + eslint
npm test # Playwright against real workerd
```
## 安全性
请通过 [SECURITY.md](SECURITY.md) 私下报告漏洞。在有真实用户的任何环境中,请保持
`DEMO_MODE` 处于未设置状态。
## 许可证
[Apache-2.0](LICENSE)。Cloudflarebase 是一个独立的项目,不隶属于
Cloudflare, Inc.,也未获得其认可。详情请参阅 [NOTICE](NOTICE)。标签:BaaS, Cloudflare, MITRE ATT&CK, Serverless, Syscall, Web开发, 后端服务, 暗色界面, 特征检测, 程序员工具, 脚本检测