LightningFast012/cyber-dashboard

GitHub: LightningFast012/cyber-dashboard

自托管的网络威胁情报 RSS 仪表板,聚合安全新闻源并自动提取 CVE 与关键词,支持实时告警和团队协作。

Stars: 0 | Forks: 0

# Cyber Dashboard **版本 1.6.2** (Dash Prototype) — 一个可用于生产环境的、自托管的网络威胁情报仪表板,用于监控来自网络安全新闻源的 RSS feed。使用 FastAPI、Next.js、PostgreSQL 和 Docker 构建。 **仓库:** [github.com/LightningFast012/cyber-dashboard](https://github.com/LightningFast012/cyber-dashboard) ## 功能 ### 核心 - **RSS Feed 聚合** — 添加、管理和轮询网络安全新闻 feed,支持可配置的刷新间隔 - **Feed 库** — 一键安装流行的网络安全 RSS feed - **每日 Feed** — 今天的天气、实时时钟,以及按当天过滤的网络新闻 - **书签** — 保存文章并在专门的书签页面查看 - **文章情报** — 自动提取 CVE、严重性分类和关键词高亮 ### Dash Prototype (v1.6.2) - **服务选择器** — 登录后选择 Cyber、Tech 或 Game Dash(Cyber Dash 已上线;其他即将推出) - **切换仪表板** — 无需登出即可返回选择器 ### 管理 (v1.6.1) - **GitHub 更新** — 管理页面会检查 GitHub Releases 并支持一键 Docker 重建 - **集中式版本控制** — 单一的 `VERSION` 文件驱动 API、UI 和备份 ### 主题 (v1.6) - **6 种内置预设** — 基础颜色、咖啡、拟物化、霓虹、终端、午夜 - **设置 → 主题标签页** — 预设画廊、颜色模式、强调色选择器、侧边栏布局、自定义 CSS - **按用户区分的主题** — 偏好设置按账户存储;在登出和 Docker 重建后依然保留 - **自定义 CSS** — 经过净化的主题叠加层,支持导入/导出 ([主题开发指南](docs/theme-development.md)) ### 改进 (v1.5.1) - **文章来源过滤器** — 按 RSS 来源过滤文章 feed - **天气预报** — 天气组件中包含当前天气和未来 5 小时展望 - **RSS feed 编辑** — 安装后更新名称、URL 和刷新间隔 - **日历组件** — 更大、更易读的日期显示 - **自定义 favicon** — 浏览器标签页中的 CD 徽标 ### 移动端 (v1.5) - **底部导航** — 仪表板、每日 Feed、书签和设置始终一键直达 - **可展开标签网格** — 折叠箭头可显示所有板块(Feed、通知、管理) - **移动端搜索** — 手机上的全屏搜索覆盖层 - **触控友好的布局** — 移动端隐藏侧边栏;内容上方根据底部导航留白 - **只读组件网格** — 触摸设备上禁用拖拽/调整大小 ### 仪表板 - **组件系统** — 具有自动配置和简化的“添加组件”流程的按用户划分仪表板 - **拖放布局** — 使用 React Grid Layout 重新定位和调整组件大小(桌面端) - **15 个内置组件** — 天气、时钟、系统状态、网络信息、笔记、Markdown 等 - **每日 Feed 同步** — 时钟和天气组件与每日 Feed 共享相同的实时卡片 - **类别选择器** — 组件按信息、系统、网络和实用工具分组 - **可扩展框架** — 添加自定义组件 ([组件开发指南](docs/widget-development.md)) ### 搜索与过滤 - **全局搜索** — 从页眉搜索文章、feed 和组件 - **搜索操作** — 跳转到仪表板上的某篇文章(带高亮显示)或打开全屏文章预览 - **高级过滤器** — 按严重性、CVE 存在情况和关键词关注列表复选框进行过滤 ### 安全与访问 - **JWT 身份验证** — 用户名/邮箱和密码登录 - **Passkey (WebAuthn) 支持** — 在设置中注册 Passkey;在 Cloudflare 和反向代理后支持感知 HTTPS - **基于角色的访问控制** — 管理员、用户和只读角色 - **管理员用户管理** — 从管理页面创建、编辑和删除用户 ### 通知 (v1.3) - **实时关键词警报** — RSS 导入在关键词匹配时向配置的频道发送通知 - **测试通知** — 在正式上线前从设置中验证 webhook/邮件频道 - **通知频道** — 每个用户支持 Discord、Slack、电子邮件、webhook 或 Matrix - **紧急关键词** — 将关键词分类为紧急(红色轮廓 + 优先警报)或普通 ### 关键词监控 - **关键词关注列表** — 监控术语(CVE、勒索软件、零日漏洞等),并带有紧急/普通分类 - **视觉高亮** — 紧急匹配使用红色卡片轮廓;普通匹配使用强调色高亮 - **过滤复选框** — 按关注列表中的关键词过滤文章 feed ### 自定义与数据 - **主题引擎 (v1.6)** — 六种预设、按用户区分的偏好设置、自定义 CSS,可通过 设置 → 主题 导入/导出 - **备份系统** — 将配置和数据以 JSON/ZIP 格式导出到项目的 `backups/` 文件夹 - **文章保留** — 管理员可配置的自动清理,并受书签保护 ### API - **REST API** — 完整的 OpenAPI/Swagger 文档位于 `/docs` - **仪表板 API** — `GET /api/dashboard`、`POST /api/dashboard/widgets` 及相关 endpoint ## 快速开始 ### 前置条件 - Docker 和 Docker Compose v2+ - 最低 2 GB 内存(推荐 4 GB) - 端口 **3012** (Web) 和 **8095** (API) 可用 ### 安装说明 ``` git clone https://github.com/LightningFast012/cyber-dashboard.git cd cyber-dashboard cp .env.example .env # 编辑 .env — 设置 SECRET_KEY、JWT_SECRET_KEY、POSTGRES_PASSWORD 和 ADMIN_* 值 docker compose up -d --build docker compose logs -f ``` 首次启动需要 2–5 分钟,用于构建镜像和初始化数据库。 ### 访问 | 服务 | URL | 备注 | |---------|-----|-------| | **仪表板** | http://localhost:3012 | 主要入口点 (nginx) | | **API** | http://localhost:8095 | 直接 API 访问 | | **Swagger 文档** | http://localhost:3012/docs | 也可通过 `:8095/docs` 访问 | | **健康检查** | http://localhost:8095/health | 后端健康 endpoint | ### 登录 凭据通过 `.env` 中的 `ADMIN_EMAIL`、`ADMIN_USERNAME` 和 `ADMIN_PASSWORD` 设置。在每次后端重启时,管理员账户都会同步为这些值。 登录后可以在 **设置 → Passkeys** 下注册 Passkey。 ## 架构 ``` ┌─────────────┐ Browser :3012 ──▶ │ Nginx │ └──────┬──────┘ │ ┌────────────┴────────────┐ ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ Frontend │ │ Backend │ │ Next.js │ │ FastAPI │ │ :3000 │ │ :8000 │ └─────────────┘ └──────┬──────┘ │ ┌──────▼──────┐ ┌──────────────┐ │ Worker │────▶│ PostgreSQL │ │ RSS Scheduler│ └──────────────┘ └──────┬──────┘ │ ┌──────▼──────┐ │ Redis │ └─────────────┘ ``` Nginx 将 `/` 路由到前端,将 `/api`、`/docs` 和 `/health` 路由到后端。在开发过程中直接访问时,前端也会代理 API 调用。 ## 服务 | 容器 | 描述 | |-----------|-------------| | `cyberdash-nginx` | 反向代理 — 公共入口端口 3012 | | `cyberdash-frontend` | Next.js React 仪表板(内部) | | `cyberdash-backend` | FastAPI REST API | | `cyberdash-worker` | 后台 RSS feed 轮询器 | | `cyberdash-postgres` | PostgreSQL 数据库 | | `cyberdash-redis` | Redis 缓存/队列 | ## 导航 | 标签页 | 描述 | |-----|-------------| | 仪表板 | 组件网格和最新情报 feed | | 每日 Feed | 天气、时钟和当天的网络新闻 | | RSS Feed | 管理、批量编辑和安装 feed | | 书签 | 仅显示保存的文章 | | 通知 | 活动警报频道概览 | | 设置 | 主题、Passkey、通知频道、关键词 | | 管理 | 用户管理(仅限管理员) | 在移动端上,底部栏显示仪表板、每日 Feed、书签和设置。点击 **更多** 展开完整的标签网格。 ## 文档 - [安装指南](docs/installation.md) - [Docker 部署指南](docs/docker-deployment.md) - [配置指南](docs/configuration.md) - [CasaOS 与 Portainer 指南](docs/casaos-portainer.md) - [组件开发指南](docs/widget-development.md) - [更新日志](docs/CHANGELOG.md) ## 开发 ### 后端 ``` cd backend python -m venv .venv source .venv/bin/activate pip install -r requirements.txt uvicorn app.main:app --reload --port 8095 ``` ### 前端 ``` cd frontend npm install NEXT_PUBLIC_API_URL=http://localhost:8095 npm run dev ``` ### 测试 ``` cd backend && pytest cd frontend && npm test ``` ## 反向代理 兼容 Traefik、Nginx Proxy Manager、Caddy 和 Cloudflare。当 `FRONTEND_URL` 设置为您的公共 HTTPS URL 时,WebAuthn 和 HTTPS 来源检测即可正常工作。请参阅 [Docker 部署指南](docs/docker-deployment.md)。 ## 发布到 GitHub 推送更改时,**请务必同时推送分支、标签和 GitHub Release** — 管理员更新检查器读取的是 Release,而不仅仅是 commit。请参阅 **[发布指南](docs/releasing.md)** 或运行: ``` ./scripts/publish-github.sh ``` ## 安全 - 在生产部署之前更改所有默认密码和密钥 - 带有可配置过期时间的 JWT 身份验证 - 支持在反向代理后进行自动域名和 HTTPS 检测的 WebAuthn/Passkey - 速率限制(默认 60 请求/分钟) - HTML 净化和 XSS 保护 - RSS feed 的 URL 验证 - 安全的 HTTP 标头 ## 许可证 MIT
标签:AV绕过, Docker, FastAPI, RSS聚合, 威胁情报, 安全资讯监控, 安全防御评估, 开发者工具, 搜索引擎查询, 测试用例, 自动化攻击, 请求拦截