victorycross/crisis-guardian

GitHub: victorycross/crisis-guardian

一个基于无服务器架构的事件管理与危机响应平台,解决低成本快速部署与实时协作问题。

Stars: 0 | Forks: 0

# Crisis Guardian 🚨 一个基于无服务器架构构建的专业事件管理和危机响应系统,实现零基础设施成本。 ## 功能 - **实时事件仪表板** - 所有事件的实时概览与状态跟踪 - **事件管理** - 创建、更新并跟踪事件生命周期 - **管理门户** - 安全的 API 密钥认证管理访问 - **审计日志** - 完整操作与变更审计追踪 - **移动响应式** - 在桌面和移动设备上无缝工作 - **机器人防护** - 可选的 Cloudflare Turnstile 集成用于公开提交 ## 架构 - **前端**:托管在 GitHub Pages 的静态站点 - **API**:Cloudflare Workers(无服务器) - **数据库**:Cloudflare D1(基于 SQLite) - **域名**:brightpathtechnology.io - **成本**:每月 $0(免费托管层) ## 在线演示 - **前端**:https://brightpathtechnology.io - **API**:https://api.brightpathtechnology.io ## 快速开始 ### 前置条件 - Node.js 18+ - Cloudflare 账户 - GitHub 账户 - 在 Cloudflare 中配置域名 ### 部署 请参阅完整的 [部署指南](docs/DEPLOYMENT.md) 获取详细设置说明。 ``` # 1. 克隆仓库 git clone https://github.com/victorycross/crisis-guardian.git cd crisis-guardian # 2. 设置 Cloudflare Workers cd api npm install wrangler login wrangler d1 create crisis_guardian # 在 wrangler.toml 中更新 database_id wrangler d1 execute crisis_guardian --file=schema.sql npm run deploy # 3. 在 Cloudflare 仪表板中配置环境变量 # - ALLOWED_ORIGIN: https://brightpathtechnology.io # - ADMIN_API_KEY: your-secure-api-key # 4. 为 api.brightpathtechnology.io 设置 DNS 记录 # 5. 为 brightpathtechnology.io 启用 GitHub Pages ``` ## API 端点 | 方法 | 端点 | 描述 | 访问权限 | |------|------|------|----------| | GET | `/` | 健康检查 | 公开 | | GET | `/incidents` | 列出所有事件 | 公开 | | GET | `/incidents/{id}` | 获取事件详情 | 公开 | | POST | `/incidents` | 创建新事件 | 管理员/验证码 | | PUT | `/incidents/{id}` | 更新事件 | 管理员 | | POST | `/incidents/{id}/notes` | 添加事件备注 | 管理员 | ## 数据库架构 ### 事件表 ``` CREATE TABLE incidents ( id TEXT PRIMARY KEY, title TEXT NOT NULL, description TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'open', created_at INTEGER NOT NULL, created_by TEXT ); ``` ### 事件备注表 ``` CREATE TABLE incident_notes ( id TEXT PRIMARY KEY, incident_id TEXT NOT NULL, note TEXT NOT NULL, created_at INTEGER NOT NULL, created_by TEXT, FOREIGN KEY (incident_id) REFERENCES incidents(id) ); ``` ### 审计日志表 ``` CREATE TABLE audit_log ( id TEXT PRIMARY KEY, action TEXT NOT NULL, actor TEXT, target TEXT, created_at INTEGER NOT NULL, detail TEXT ); ``` ## 用法 ### 公开访问 - 查看事件仪表板 - 查看实时统计数据 - 浏览事件历史记录 ### 管理访问 1. 点击前端的“管理模式” 2. 输入你的管理 API 密钥 3. 访问管理功能: - 创建事件 - 更新状态 - 添加备注 - 查看详细审计日志 ## 安全 - **CORS 保护**:API 限制在前端域名 - **承载令牌认证**:管理端点需要 API 密钥 - **审计日志**:所有操作均记录时间戳 - **速率限制**:Cloudflare 提供 DDoS 防护 - **机器人防护**:可选的 Turnstile 验证 ## 监控 ### 免费层限制 - **GitHub Pages**:每月 100 GB 带宽 - **Cloudflare Workers**:每日 100,000 次请求 - **D1 数据库**:500 MB 存储 ### 监控工具 - Cloudflare 仪表板用于 API 指标 - GitHub Pages 构建状态 - 实时日志:`wrangler tail` ## 开发 ### 本地开发 ``` # 本地启动 API cd api npm run dev # API 在 http://localhost:8787 可用 # 本地提供前端服务 cd web python -m http.server 8080 # 前端在 http://localhost:8080 可用 ``` ### 测试 ``` # 测试 API 健康状态 curl https://api.brightpathtechnology.io/ # 列出事件 curl https://api.brightpathtechnology.io/incidents # 创建事件(管理员) curl -X POST https://api.brightpathtechnology.io/incidents \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"title":"Test","description":"Test incident"}' ``` ## 许可证 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。 ## 支持 对于部署问题,请参阅 [部署指南](docs/DEPLOYMENT.md)。 对于功能请求或错误,请在 GitHub 上提交问题。 用心构建,专为危机管理和事件响应团队打造。
标签:API密钥认证, Cloudflare D1, Cloudflare Turnstile, GitHub Pages, MITM代理, serverless, SQLite, 事件管理, 危机响应, 域名配置, 安全, 实时仪表盘, 审计日志, 平台, 库, 应急响应, 数据库, 机器人防护, 状态跟踪, 监控, 移动端适配, 程序员工具, 管理门户, 自定义脚本, 超时处理, 部署指南, 零成本基础设施, 静态网站