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 驱动的相关性引擎——全部可自托管、全部开源。 [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178c6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![Next.js](https://img.shields.io/badge/Next.js-16.x-000000?style=for-the-badge&logo=next.js&logoColor=white)](https://nextjs.org/) [![Node.js](https://img.shields.io/badge/Node.js-22+-339933?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/) [![License](https://img.shields.io/badge/License-AGPL--3.0-green?style=for-the-badge)](LICENSE) [![AI Powered](https://img.shields.io/badge/J.A.R.V.I.S-AI%20Terminal-FF6F00?style=for-the-badge&logo=ollama&logoColor=white)]() [![Data Sources](https://img.shields.io/badge/Sources-48%20Data%20APIs-blueviolet?style=for-the-badge)]() [![Live Demo](https://img.shields.io/badge/%F0%9F%A4%97_Demo-Live_on_HuggingFace-orange?style=for-the-badge)](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 ```
手动设置与开发 ``` 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` |
## 🤖 地理科学 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)** | 自学习网络爬虫 |
**诞生于 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, 网络情报, 自动化攻击, 自托管, 请求拦截