LeonKohli/prebetter
GitHub: LeonKohli/prebetter
一个为 Prelude IDS 提供现代化 Web 界面的仪表盘,用 Nuxt 4 和 FastAPI 构建更好的告警浏览和分析体验。
Stars: 0 | Forks: 0
# Prebetter
一个用于 [Prelude IDS](https://www.prelude-siem.org/) 的 Web 仪表盘。通过现代化界面浏览、过滤和分析安全告警,以替代 Prelude 的默认工具。
## 这是什么?
Prebetter 直接连接到 Prelude 的 MySQL 数据库,并在此基础上提供 Web UI。你可以获得告警过滤、时间轴统计、心跳监控、CSV 导出以及基于角色的用户管理功能。
Prelude IDS 是一个开源的入侵检测系统。它的默认界面……不尽如人意。这个项目之所以存在,是因为我们需要更好的工具。
## 架构
```
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Browser │────▶│ Frontend │────▶│ Backend API │
│ │ │ (Nuxt 4) │ │ (FastAPI) │
└─────────────┘ └──────────────┘ └────────┬────────┘
│
┌───────┴─────────┐
│ │
┌─────▼──────┐ ┌──────▼───────┐
│ Prelude DB │ │ Prebetter DB │
│ (read-only │ │ (users) │
└────────────┘ └──────────────┘
```
前端是 Nuxt 4 / Vue 3 SPA(使用 shadcn-vue、Tailwind CSS、支持深色/浅色模式)。后端是带有 JWT 认证的 FastAPI REST API。使用两个 MySQL 数据库:Prelude 现有的数据库(只读)和一个用于用户管理的独立数据库。
## 快速开始
### 前置条件
- Python 3.13+
- Node.js 20+
- MySQL 5.7+
- uv (Python 包管理器)
- Bun (JavaScript 包管理器)
### 安装说明
1. **克隆仓库:**
git clone https://github.com/LeonKohli/prebetter.git
cd prebetter
2. **设置后端:**
cd backend
uv sync
cp .env.example .env
# 使用你的数据库凭据编辑 .env
fastapi dev
3. **设置前端:**
cd frontend
bun install
bun run dev
4. **访问应用:**
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API 文档: http://localhost:8000/api/v1/docs
## 功能
- 告警浏览,支持按严重程度、分类、IP、日期范围过滤
- 按源/目标 IP 对告警进行分组
- 心跳监控(查看哪些 Agent 在线,哪些已掉线)
- 时间轴和摘要统计
- CSV 导出
- JWT 认证,支持超级用户/普通用户角色
- 深色/浅色模式
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| 前端 | Nuxt 4, Vue 3, TypeScript, Tailwind CSS v4, shadcn-vue |
| 后端 | FastAPI, SQLAlchemy, Pydantic, PyJWT |
| 数据库 | MySQL 5.7+ (Prelude DB + 用户管理 DB) |
| 包管理器 | [uv](https://docs.astral.sh/uv/) (Python), [Bun](https://bun.sh/) (JS) |
## 文档
- [后端 README](./backend/README.md) — API 端点、数据库 Schema、设置详情
- [前端 README](./frontend/README.md) — 组件结构、认证流程、样式
- [API 文档](http://localhost:8000/api/v1/docs) — 交互式 Swagger UI(运行时可用)
## 动机
Prelude IDS 本身工作得很好,但用于查看其收集数据的现有工具并没有跟上步伐。我们需要一种方法来快速浏览告警,了解网络中发生的事情,并且在此过程中不与 UI 较劲。所以我们构建了一个。
## 贡献
1. Fork 本仓库
2. 从 `dev` 创建一个功能分支
3. 进行彻底测试
4. 提交 Pull Request
## 许可证
[GPL-3.0](./LICENSE)
标签:AV绕过, FastAPI, HTTP/HTTPS抓包, JWT认证, Mutation, Nuxt4, PB级数据处理, Prelude, Python, Python后端, Tailwind CSS, Vue3, Web界面, 代码示例, 仪表盘, 入侵检测系统, 可视化, 安全告警, 安全数据湖, 安全运维, 开源, 态势感知, 数据分析, 无后门, 监控, 网络安全, 角色权限管理, 隐私保护