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, 事件管理, 危机响应, 域名配置, 安全, 实时仪表盘, 审计日志, 平台, 库, 应急响应, 数据库, 机器人防护, 状态跟踪, 监控, 移动端适配, 程序员工具, 管理门户, 自定义脚本, 超时处理, 部署指南, 零成本基础设施, 静态网站