aakif-abrar/pulseops-cloud

GitHub: aakif-abrar/pulseops-cloud

一个开源的可用性监控与事件响应平台,提供真实 HTTP 探测、自动化事件管理、公共状态页和多角色权限控制。

Stars: 0 | Forks: 0

PulseOps Cloud

# PulseOps Cloud 开源的可用性监控、事件响应和公共状态页平台。 ## 项目状态 积极维护的作品集项目。核心监控、事件自动化、RBAC 以及公共状态页均已实现并完成测试。 ## 功能亮点 - 由后台 worker 执行的真实 HTTP 监控(非模拟),具备防范 SSRF 的 URL 验证。 - 自动化事件生命周期:连续 N 次失败后开启,连续 N 次恢复后解决,无重复的活动事件。 - 公共免登录状态页,提供 90 天的可用性百分比。 - 四角色 RBAC(Owner、Admin、Responder、Viewer),在每次变更时均由服务端强制执行。 - Webhook 通知发送,并保留持久化的投递历史记录。 - 组织范围的审计日志。 ## 截图 / 产品预览 营销页 (`/`) 包含一个基于实际 UI 组件实时渲染的仪表盘预览。在本地运行应用(见下文)以查看完整的仪表盘、监控详情图表和公共状态页。 ## 技术栈 **前端**:Next.js (App Router)、TypeScript、Tailwind CSS、TanStack Query、React Hook Form、Zod、Recharts、Headless UI。 **后端**:FastAPI、SQLAlchemy 2.x、Alembic、Pydantic、PostgreSQL、Argon2 密码哈希、通过 HTTP-only cookies 实现的 JWT。 **Worker**:独立 Python 进程,使用 HTTPX 进行出站检查。 **基础设施**:Docker Compose、GitHub Actions CI。 ## 架构 请参阅 [docs/architecture.md](docs/architecture.md) 获取完整的剖析以及请求流程的 Mermaid 图表。 ## 仓库结构 ``` pulseops-cloud/ ├── apps/web/ Next.js frontend ├── services/api/ FastAPI backend + Alembic migrations ├── services/worker/ Background monitoring worker ├── docs/ Architecture, demo guide, cover image ├── docker-compose.yml └── .github/workflows/ci.yml ``` ## 本地设置 ### 使用 Docker(推荐) ``` docker compose up -d ``` 这将构建所有服务,等待 PostgreSQL 变得健康,应用数据库迁移,填充演示数据,并启动 API、worker 和 Web 应用。 - Web: http://localhost:3000 - API: http://localhost:8000/api/v1 - API 健康检查: http://localhost:8000/api/v1/health ### 不使用 Docker **API** ``` cd services/api python -m venv .venv && source .venv/bin/activate # .venv\Scripts\activate on Windows pip install -r requirements-dev.txt cp .env.example .env # edit DATABASE_URL / JWT_SECRET python -m alembic upgrade head python -m app.db.seed uvicorn app.main:app --reload ``` **Worker** ``` cd services/worker python -m venv .venv && source .venv/bin/activate pip install -r requirements-dev.txt cp .env.example .env python -m worker.main ``` **Web** ``` cd apps/web npm install cp .env.example .env.local npm run dev ``` ## 环境变量 请参阅仓库根目录下的 `.env.example` 以及 `services/api`、`services/worker` 和 `apps/web` 中的对应文件,获取带有本地开发占位符的完整变量列表。未提交任何真实的密钥。 ## 数据库设置 PostgreSQL 迁移使用 Alembic (`services/api/alembic`) 进行管理。在设置 `DATABASE_URL` 后,从 `services/api` 目录下运行 `python -m alembic upgrade head`。 ## 使用 Docker 运行 ``` docker compose up -d # start everything docker compose logs -f # follow logs docker compose down # stop docker compose down -v # stop and delete the Postgres volume ``` ## 演示账号 | 角色 | 邮箱 | 密码 | | --------- | ------------------------- | ------------ | | Owner | owner@pulseops.local | DemoPass123! | | Responder | responder@pulseops.local | DemoPass123! | 仅供本地开发使用。请参阅 [docs/demo-guide.md](docs/demo-guide.md) 获取引导式演练。 ## 测试命令 ``` # API cd services/api && pytest -q # Worker cd services/worker && pytest -q # Web cd apps/web && npx vitest run ``` ## API 文档 当 API 运行时,FastAPI 会在 `/docs` (Swagger UI) 和 `/redoc` 提供交互式 OpenAPI 文档。完整的路由列表记录在 [docs/architecture.md](docs/architecture.md) 中。 ## 安全说明 请参阅 [SECURITY.md](SECURITY.md) 了解报告流程和已知限制(SSRF 缓解范围、限流器范围、演示凭证)。 ## 未来改进 - 多区域检查 worker。 - 在通用 webhooks 之外提供 Slack/PagerDuty 原生通知渠道。 - 可暂停事件自动化的维护窗口。 ## 作者 **Aakif Abrar** - GitHub: [@aakif-abrar](https://github.com/aakif-abrar) - 邮箱: aakifabrar74@gmail.com - Treemate US 软件开发人员 - FAST NUCES 计算机科学专业本科生 ## 许可证 [MIT](LICENSE)
标签:AV绕过, FastAPI, PostgreSQL, 可用性监控, 告警系统, 搜索引擎查询, 测试用例, 状态页, 请求拦截, 运维监控, 逆向工具