lucamocerino/vigilus-icb

GitHub: lucamocerino/vigilus-icb

针对意大利国家安全的实时 OSINT 情报仪表板,通过语义 NLP 分类聚合多源公开数据,提供六维度安全指数和作战地图可视化。

Stars: 0 | Forks: 0

VIGILUS Logo

VIGILUS — 意大利危机看板

面向意大利国家安全的实时 OSINT 情报仪表板

Live Demo

License Python React API Tests Coverage

VIGILUS Dashboard

[🇮🇹 Italiano](#italiano) · [🇬🇧 English](#english) ## 🇮🇹 意大利语 用于监控意大利国家安全的开源 OSINT 仪表板。采用 Bloomberg 终端风格的布局,配备作战地图和情报面板。完全基于公开数据。 ### 技术栈 | 层级 | 技术 | |---|---| | Backend | Python 3.12, FastAPI, SQLAlchemy 2.0, APScheduler, spaCy, sentence-transformers, Alembic | | Frontend | React 18, Vite, Recharts, Leaflet, Tailwind CSS | | Database | SQLite (开发) / PostgreSQL 16 (生产,通过 Supabase/Render) | | Infra | Render, Docker Compose, Caddy HTTPS, GitHub Actions CI/CD | | 安全 | API key auth, rate limiting, CORS, security headers, Sentry | | Intelligence | 语义 NLP 分类器 (sentence-transformers), 浏览器端 ML (威胁 + 情感), Headline Memory RAG (IndexedDB) | | 监控 | Prometheus `/metrics`, 结构化 JSON 日志 | ### 功能特性 **Bloomberg 终端布局** - 左侧作战地图 (60%),支持 6 个数据层切换和拖拽调整大小 - 右侧情报面板 (40%),可滚动 - 滚动新闻条,聚合 50+ 个意大利 RSS 源 - 分数条,显示综合指数 + 6 个实时维度 **分数与维度** - 综合指数 0–100 — 基于 90 天基准线通过 z-score 加权平均 6 个维度 - 地缘政治 (25%) · 恐怖主义 (20%) · 网络 (15%) · 颠覆 (15%) · 军事 (15%) · 社会 (10%) - 🟢 平静 · 🔵 正常 · 🟡 注意 · 🟠 高度 · 🔴 危机 **作战地图 — 6 个图层** - 通过 spaCy NER 进行地理标记的事件 - 14 个北约/美国军事基地 (Aviano, Sigonella, Ghedi, Camp Darby...) - 18 个关键基础设施 (港口, 机场, 发电站, 海底电缆, TAP) - INGV 过去 7 天的地震 (M2+) - 军事航班 ADS-B (OpenSky Network) - 多维度地理聚合 **浏览器端情报** - Headline Memory (RAG) — IndexedDB 中存储 5,000 条标题,支持语义搜索 - ML 分类器 — 在 Web Worker 中进行威胁检测 + 情感分析 - 关键词监控 — 可通过 localStorage 自定义警报 - 热门关键词 — 基于 z-score 的峰值检测 (2小时滚动 vs 7天基准线) **OSINT & 数据 — 8 个收集器 + 50+ RSS** - ANSA, AGI, Adnkronos, Repubblica, Corriere, Sole24Ore, Difesa Online, Formiche, CSIRT, Red Hot Cyber, Reuters, BBC... - GDELT, CSIRT Italia, Google Trends, ACLED, OpenSky ADS-B, INGV - **语义 NLP 分类** — sentence-transformers (paraphrase-multilingual-MiniLM-L12-v2) 使用余弦相似度按维度分类,针对恐怖主义/网络内容快速通过关键词,自动过滤无关新闻 (八卦, 体育, 娱乐),每篇文章置信度得分 0–1 - 热点升级及 48 小时趋势 - 跨流关联 (Pearson) + 同步峰值警报 - 区域简报 (14 个意大利大区) - 预测市场 (8 个地缘政治场景) - 故障监控 (TIM, Vodafone, Enel, SPID...) - 自动每日 24 小时摘要 **工具** - ⌘K 命令面板 — 模糊搜索 - 深色/浅色主题,带玻璃拟态效果 - IT/EN 语言切换 - 时段对比 (周/月/季) - 导出 CSV/报告 - 分享至 Twitter, Telegram, WhatsApp - TG 直播 (Sky TG24, Rai News 24, TGCOM24) - AI 叙事 (Claude, 可选) - WebSocket 实时 + URL 状态共享 - 可安装 PWA + 可调整面板大小 ### 快速开始 ``` # Backend cd backend python -m venv .venv && source .venv/bin/activate pip install ".[dev]" python -m spacy download it_core_news_sm uvicorn sentinella.main:app --reload # http://localhost:8000 # Frontend cd frontend npm install && npm run dev # http://localhost:3000 # Docker (全部集成) cp .env.example .env && docker compose up -d ``` ### 测试 ``` cd backend python -m pytest tests/ -v --cov=sentinella # 176 个测试 · 69% 覆盖率 · 0 个 lint 错误 ``` ### 数据来源 | 来源 | 数据 | 缓存 | |---|---|---| | **Mega RSS** (50+ 源) | 通讯社, 日报, 国防, 网络, 地缘政治 — 语义 NLP 分类 | 15分钟 | | GDELT Project | 国际文章, 负面情绪 | 1小时 | | CSIRT Italia | 网络公告, CVE, 基础设施 | 30分钟 | | Google Trends | 意大利关键词 | 24小时 | | ACLED | 意大利抗议与冲突 | 7天 | | OpenSky Network | 5 个 ADS-B 基地的军事航班 | 1小时 | | INGV | 过去 7 天 M2+ 地震 | 30分钟 | ### API (32 个端点)
完整端点列表 ``` GET /api/score/current score + dimensioni + confidence GET /api/score/history storico (?days=30) GET /api/score/anomalies proxy con |z| >= 1.5σ GET /api/score/compare confronto periodi GET /api/score/correlations correlazioni cross-stream GET /api/score/narrative sintesi AI POST /api/score/trigger forza ricalcolo (solo debug) GET /api/dimension/{name} dettaglio dimensione GET /api/dimension/{name}/history storico dimensione GET /api/events/latest eventi classificati GET /api/events/search full-text search GET /api/headlines titoli ticker (50+ fonti) GET /api/trending keywords spike detection GET /api/hotspots escalation per dimensione GET /api/predictions prediction markets GET /api/outages stato infrastrutture digitali GET /api/digest/daily riepilogo 24h GET /api/earthquakes terremoti INGV GET /api/flights voli militari ADS-B GET /api/region/{name} dossier regionale GET /api/map/events eventi geo-taggati NER GET /api/map/regional breakdown Nord/Centro/Sud GET /api/map/convergence convergenza multi-dimensione GET /api/layers/military GeoJSON 14 basi NATO GET /api/layers/infrastructure GeoJSON 18 infrastrutture GET /api/layers/all tutti i data layer GET /api/export/csv download CSV GET /api/export/report report JSON GET /api/sources/status stato fonti GET /api/cache/status cache collector GET /api/methodology documentazione GET /health health check GET /metrics Prometheus metrics WS /ws/score WebSocket real-time ```
### 部署 项目部署在 **Render** (backend + frontend) 上,使用 **PostgreSQL** (Render 免费数据库)。 ``` # 使用 Docker Self-hosted cp .env.production.example .env docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d docker compose exec backend alembic upgrade head ``` ## 🇬🇧 英语 用于监控意大利国家安全的开源 OSINT 仪表板。采用 Bloomberg 终端风格的布局,配备作战地图和情报面板。完全基于公开数据。 ### 功能特性 - **综合评分 0–100**,覆盖 6 个安全维度,采用 z-score 归一化 - **作战地图**,包含 6 个可切换数据层 (北约基地, 基础设施, 地震, 航班, 聚合) - **50+ 个意大利 RSS 源**,支持 NLP 语义分类和热门关键词峰值检测 - **智能新闻分类器** — sentence-transformers 结合余弦相似度,自动过滤无关内容,提供置信度分数 - **浏览器端 ML** — 在 Web Worker 中进行威胁分类 + 情感分析 - **Headline Memory RAG** — IndexedDB 中索引 5,000 条标题以进行语义搜索 - **跨流关联** — 跨维度 Pearson 关联,同步峰值警报 - **区域简报**,覆盖 14 个意大利大区 - **直播 TV** — Sky TG24, Rai News 24, TGCOM24 - **⌘K 命令面板**, 深色/浅色主题, IT/EN, PWA, 可调整面板 - **32 个 API 端点**, 176 个测试, 69% 覆盖率 ### 数据来源 8 个收集器 + 50+ 个 RSS 源:GDELT, CSIRT Italia, ACLED, Google Trends, OpenSky ADS-B, INGV 地震, ANSA, AGI, Adnkronos, Repubblica, Corriere, 国防与网络专业源。新闻通过 NLP 语义嵌入进行分类,并自动过滤无关内容。 ### 快速开始 ``` cd backend && python -m venv .venv && source .venv/bin/activate pip install ".[dev]" && python -m spacy download it_core_news_sm uvicorn sentinella.main:app --reload cd frontend && npm install && npm run dev ``` ### 技术栈 FastAPI · React 18 · SQLAlchemy 2.0 · sentence-transformers · Leaflet · Tailwind CSS · PostgreSQL · Render · GitHub Actions ### 许可证 AGPL-3.0
标签:AV绕过, Docker, ESC4, FastAPI, Full Stack, HTTP/HTTPS抓包, Leaflet, NATO, NLP, OSINT, PostgreSQL, Python, RAG, React, RSS聚合, Sentence Transformers, Sentiment Analysis, SQLite, Syscalls, Tailwind CSS, Vite, 军事基地, 危机管理, 国家安全, 威胁情报, 安全评分, 安全防御评估, 实时处理, 密码管理, 开发者工具, 态势感知, 情感分析, 情报仪表盘, 意大利, 无后门, 测试用例, 请求拦截, 逆向工具, 速率限制