cloudflarebase/cloudflarebase

GitHub: cloudflarebase/cloudflarebase

一个完全运行在 Cloudflare 账户上的开源 Firebase 替代方案,当前提供基于 Durable Object 的身份验证服务和配套管理仪表盘。

Stars: 46 | Forks: 5

Cloudflarebase

实时演示 · 部署你自己的实例 · 贡献指南

License: Apache-2.0 Quality E2E

一个完全运行在您的 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: [![部署到 Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflarebase/cloudflarebase/tree/main/agents/auth) 2. 仪表盘: [![部署到 Cloudflare](https://deploy.workers.cloudflare.com/button)](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开发, 后端服务, 暗色界面, 特征检测, 程序员工具, 脚本检测