masood1996-geo/OmniWatch
GitHub: masood1996-geo/OmniWatch
一个开源的全球 OSINT 与威胁情报平台,通过融合 48+ 数据源并以 AI 驱动关联,解决多源数据脱节与实时分析难题。
Stars: 0 | Forks: 0
## OmniWatch
emoji: 🌍
colorFrom: blue
colorTo: green
sdk: docker
app_port: 7860
pinned: false
**停止处理相互脱节的OSINT数据源。**
OmniWatch 将 USGS 地震、NASA 野火、军事飞机(ADS‑B)、海上船舶(AIS)、GDELT 冲突事件以及另外 43 个数据源融合到一个实时仪表盘中,并配备 AI 驱动的相关性引擎——全部可自托管、全部开源。
[](https://www.typescriptlang.org/)
[](https://nextjs.org/)
[](https://nodejs.org/)
[](LICENSE)
[]()
[]()
[](https://huggingface.co/spaces/masood1996/omniwatch)
```
██████╗ ███╗ ███╗███╗ ██╗██╗██╗ ██╗ █████╗ ████████╗██████╗ ██╗ ██╗
██╔═══██╗████╗ ████║████╗ ██║██║██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║
██║ ██║██╔████╔██║██╔██╗ ██║██║██║ █╗ ██║███████║ ██║ ██║ ███████║
██║ ██║██║╚██╔╝██║██║╚██╗██║██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║
╚██████╔╝██║ ╚═╝ ██║██║ ╚████║██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
Global Intelligence & Tracking Platform
```
## 🎮 实时体验
商业 OSINT 和威胁情报平台设有重重门槛,并对本应免费的功能收取企业费用。OmniWatch 的不同之处在于:
| 商业平台 | OmniWatch |
|---------------------|-----------|
| ❌ 昂贵的企业 API 许可 | ✅ **100% 免费** — AGPL-3.0 许可证 |
| ❌ 专有、封闭的数据 | ✅ 公开的政府与 OSINT API,完整透明 |
| ❌ 分散的专用工具 | ✅ **48 个来源统一** 在单一模式中 |
| ❌ 静态地理空间分析 | ✅ **实时追踪**(飞机与船舶 10 秒轮询) |
| ❌ 需要人工分析师进行关联 | ✅ **AI 驱动的 J.A.R.V.I.S** 自动关联数据 |
| ❌ 繁琐的企业部署 | ✅ **一条命令** 安装并运行 |
| ❌ 预设仪表盘 | ✅ **37 个可切换图层**,支持 5 种可视化模式 |
## ⚡ 一行命令安装
```
git clone https://github.com/masood1996-geo/OmniWatch.git && cd OmniWatch && npm install && npm run build
```
然后启动服务:
```
cd omniwatch-server && npm run start
```
## 🤖 地理科学 AI 助理
J.A.R.V.I.S 终端自动消化活跃威胁信号并提供关联响应:
-威胁综合** — 要求关联的 LLM 交叉引用多个 OSINT 流(例如比较航班改道与冲突区域)
- **回退引擎** — 若 Ollama 不可用,服务器保证基于规则的降级方案
- **自带模型** — 支持连接任意标准 API 格式(默认使用 `gemma3:27b`)
## 📂 项目结构
```
OmniWatch/
├── omniwatch-server/ # Express + TypeScript Backend
│ ├── src/
│ │ ├── clients/ # Data ingestion routines per source
│ │ ├── pipeline/ # Sweep orchestrators & AI agents
│ │ └── index.ts # SSE & Route Handling
├── omniwatch-client/ # Next.js 16 + React MapLibre GL
│ ├── src/app/
│ │ ├── page.tsx # Dashboard composition + Map interface
│ │ ├── globals.css # Thematic styles
│ └── next.config.ts # Static export configuration
├── Dockerfile # Unified container orchestration
├── publish_hf.py # Automated HuggingFace deployment
└── README.md
```
## ⚙️ 配置
| 变量 | 是否必需 | 默认值 | 描述 |
|----------|----------|---------|-------------|
| `PORT` | 否 | `4100` | 服务器监听端口 |
| `OLLAMA_HOST` | 否 | `http://localhost:11434` | 大语言模型端点 |
| `OLLAMA_MODEL` | 否 | `gemma3:27b` | 用于关联的标准推理模型 |
| `REFRESH_INTERVAL_MINUTES` | 否 | `15` | 静态数据轮询频率 |
## 🛡️ 安全性
由于 OmniWatch 聚合了高度敏感的 OSINT 数据,我们建议在私有网络中进行自托管。默认情况下:
- 后端路由为内部暴露的 API 层,仅限 Next.js 静态文件消费。
- `Dockerfile` 原生构建一个静态 UI 捆绑包,安全连接至同一容器运行时。
## 🔗 技术栈
| 层级 | 技术 |
|-------|-----------|
| 运行时 | Node.js 22 |
| 语言 | TypeScript(严格模式) |
| HTTP | Express.js 4.x |
| 前端 | Next.js 16(应用路由、静态导出) |
| 映射 | MapLibre GL + react-map-gl |
| 图标 | Lucide React |
| 人工智能 | Ollama |
| 部署 | Docker |
## 🗺️ 属于 Masood Sultan 生态系统
| 项目 | 描述 |
|---------|-------------|
| **[OmniWatch](https://github.com/masood1996-geo/OmniWatch)** | 全球情报平台(本仓库) |
| **[TerraMind Core](https://github.com/masood1996-geo/terramind-core)** | 以 TerraMind 为核心的全球灾害情报 |
| **[OpenHouse Bot](https://github.com/masood1996-geo/openhouse-bot)** | 基于 AI 的跨平台公寓搜索 |
| **[AI Scraper](https://github.com/masood1996-geo/ai-scraper)** | 自学习网络爬虫 |
手动设置与开发
``` git clone https://github.com/masood1996-geo/OmniWatch.git cd OmniWatch # 服务器 cd omniwatch-server npm install cp .env.template .env # Edit with your API keys for increased rate limits (optional) npx ts-node src/index.ts # 客户端 cd ../omniwatch-client npm install npm run dev # → http://localhost:3000 ``` ### 获取 API 密钥(可选) | 密钥 | 免费? | 链接 | 启用功能 | |-----|-------|------|-----------------| | **Ollama 本地/云端** | ✅ 免费 | [Ollama](https://ollama.com/) | 支持 J.A.R.V.I.S 终端 | | **OpenSky API** | ✅ 免费 | [OpenSky](https://opensky-network.org/) | 提高军用飞行追踪的速率限制 | | **Finnhub Key** | ✅ 免费层级 | [Finnhub](https://finnhub.io) | 市场波动与经济数据 | ## ✨ 功能特性 | 功能 | 描述 | |---------|-------------| | 🌍 **48 源聚合** | 合并 8 级情报:环境、军事、海事、经济、安全、健康、社交与 SIGINT。 | | 📊 **统一模式** | 将异构全球数据规范化为 `OmniEvent`,便于统一绘制与地图交互 | | 🔴 **实时流式传输** | 服务器发送事件(SSE)即时推送仪表盘更新,包括对飞机/船舶的高频轮询 | | 🤖 **J.A.R.V.I.S 终端** | 集成 Ollama 驱动的 AI 聊天代理,自动解析活跃关键信号 | | 🗺️ **交互式多模式地图** | React MapLibre GL 实例,支持 37 个可切换图层与 5 种地图样式(标准、卫星、FLIR、NVG、CRT) | | 📈 **增量情报** | 差异引擎计算 15 分钟轮询周期之间的新增、清除或升级内容 | | 🎨 **高级美学** | 真正的“影子经纪人”主题,支持玻璃拟态、动态风险仪表与原始追踪 | | 🔍 **定位过滤** | 即时搜索特定事件、来源或追踪向量 | ## 🏗️ 架构设计 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ Client (Browser) │ │ Next.js 16 · MapLibre GL · Layer Toggles · AI Chat · Live Vectors │ └────────────────────────────┬────────────────────────────────────────┘ │ HTTP / SSE ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ Express.js API Server │ │ │ │ /api/events ──────── Merged + filtered intelligence sweeps │ │ /api/live-tracking ─ Fast-polling (10s) objects (Flight/Vessel) │ │ /api/stream ──────── Server-Sent Events (real-time sweep push) │ │ /api/health ──────── Upstream status │ │ /api/delta ───────── Change detection (new/removed/escalated) │ │ /api/chat ────────── Geo-intelligence assistant (Ollama) │ │ /api/sweep ───────── Force a manual cycle │ │ │ │ Cross-Platform CORS · Rate Logic · Response Delta Tracking │ └────┬───────────┬───────────┬───────────┬────────────────────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────┐┌─────────┐┌─────────┐┌──────────────┐┌──────────────┐ │ Tier 1 ││ Tier 2 ││ Tier 3 ││ Tier 4 ││ Tier 5-8 │ │ Hazards ││ Military││Aviation ││ Economics ││ SIGINT │ │ (8) ││ (7) ││ (5) ││ (11) ││ (17) │ └────┬────┘└────┬────┘└────┬────┘└──────┬───────┘└──────┬───────┘ │ │ │ │ │ └──────────┴──────────┴────────────┴───────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ Normalization Pipeline │ │ Multi-format parsing → Severity mapping → Extractor │ │ → OmniEvent JSON → Diff/Correlations │ └─────────────────────────────────────────────────────────────────────┘ ``` ## 📡 数据来源 OmniWatch 遍历 48 个外部情报 API,按 8 个层级分组: | 层级 | 类别 | 来源 | 示例 | |------|----------|---------|----------| | **T1** | 环境与风险 | 8 | USGS、FIRMS、NOAA、Safecast | | **T2** | 军事与冲突 | 7 | ADS‑B、GDELT、DeepState、ACLED | | **T3** | 航空与海事 | 5 | OpenSky、AIS、Fishing Watch | | **T4** | 经济与市场 | 11 | FRED、雅虎财经、Polymarket | | **T5** | 网络与安全 | 4 | CISA KEV、Cloudflare Radar | | **T6** | 健康与人道主义 | 3 | WHO、ReliefWeb、EPA RadNet | | **T7** | 社交情报 | 2 | Reddit、Bluesky OSINT | | **T8** | SIGINT 与基础设施 | 8 | SatNOGS、TinyGS、KiwiSDR | ## 🔌 API 参考 | 方法 | 路径 | 描述 | |--------|------|-------------| | `GET` | `/api/events` | 合并后的情报事件 | | `GET` | `/api/events?source=usgs` | 按数据源筛选 | | `GET` | `/api/events?severity=critical` | 按严重性筛选(`minor`、`moderate`、`major`、`critical`) | | `GET` | `/api/events?timeRange=week` | 标准时间窗口(`hour`、`day`、`week`) | | `GET` | `/api/live-tracking` | 动态资产(飞机、船舶)的 10 秒轮询缓存 | | `GET` | `/api/stream` | 服务器发送事件 — 实时轮询更新 | | `GET` | `/api/health` | 健康检查与上游来源状态 | | `GET` | `/api/delta` | 自上次情报轮询以来的变更 | | `POST` | `/api/chat` | 地理科学 AI 关联助理 | ## 📏 严重性分类 OmniWatch 自动将来源特定的威胁等级映射为四种统一状态:地震(USGS)
| 震级 | 严重性 | |-----------|----------| | < 3.0 | `minor` | | 3.0 – 4.9 | `moderate` | | 5.0 – 6.9 | `major` | | ≥ 7.0 | `critical` |经济 / VIX 恐慌指数
| VIX 水平 | 严重性 | |------------|----------| | < 15 | `minor` | | 15 – 20 | `moderate` | | 20 – 30 | `major` | | ≥ 30 | `critical` |空间天气(Kp 指数)
| Kp 指数 | 严重性 | |-----------|----------| | 0 – 3 | `minor` | | 4 | `moderate` | | 5 – 6 | `major` | | ≥ 7 | `critical` |
**诞生于 OSINT、地理科学与人工智能的交汇点 🌍**
*AGPL-3.0 License · 由 [@calesthio](https://github.com/calesthio) & [@masood1996-geo](https://github.com/masood1996-geo) 构建*
标签:AI关联引擎, AI终端, AI风险缓解, AI驱动, Apex, Docker, ESC4, GDELT, GNU通用公共许可证, MITM代理, NASA火灾, Node.js, OSINT, TypeScript, USGS地震, 仪表盘, 全球威胁情报, 军事ADS-B, 多源数据, 多源融合, 威胁可视化, 安全插件, 安全研发, 安全运营, 安全防御评估, 实时数据, 开源情报平台, 情报聚合, 扫描框架, 数据融合, 机器学习, 海事AIS, 网络情报, 自动化攻击, 自托管, 请求拦截