r13xr13/conflict-globe.gl
GitHub: r13xr13/conflict-globe.gl
实时聚合多源 OSINT 数据的全球冲突与地缘政治事件 3D 可视化平台
Stars: 0 | Forks: 0
# Conflict Globe
**一个用于全球冲突和地缘政治事件的实时 3D OSINT 可视化平台**
[](https://opensource.org/licenses/MIT)
[](https://github.com/r13xr13/conflict-globe.gl/releases)
[](https://www.typescriptlang.org/)
[](https://hub.docker.com/)
[](CONTRIBUTING.md)
[演示](#demo) · [快速开始](#quick-start) · [文档](#architecture) · [贡献](#contributing)

## 概述
Conflict Globe 是一个开源情报 (OSINT) 平台,可在交互式 3D 地球上实时聚合并可视化全球冲突、海事、航空、网络和地缘政治事件。它专为需要高信噪比、低延迟全球事件视图的分析师、研究人员和记者而设计。
## 功能特性
### 实时数据管道
- 来自多个独立来源的实时 OSINT feed 聚合
- WebSocket (Socket.io) 推送更新 —— 客户端无需轮询
- 可针对每个来源配置自动刷新间隔
### 可视化图层
| 图层 | 描述 |
|---|---|
| **Points** | 具有按类别颜色编码的单个事件标记 |
| **HexBins** | 用于密度分析的六边形空间聚类 |
| **Heatmap** | 基于事件分布的连续密度表面 |
| **Rings** | 活动事件位置的动画脉冲环 |
| **Arcs** | 相关事件之间的方向性连接 |
| **Paths** | 移动和轨迹追踪 |
| **Polygons** | 区域边界和聚合叠加层 |
### 地球控件
- 一键切换深色 / 浅色主题
- 大气辉光、云层和凹凸贴图地形
- 经纬网格叠加层
- 自动旋转,支持拖动暂停
- 客户端点聚类,确保大规模数据下的流畅性能
### 交互与过滤
- 点击任意标记查看完整的事件详情面板
- 悬停工具提示用于快速预览
- 用于时间过滤的时间轴滑块
- 类别过滤器开关
- 对所有已加载事件进行全文搜索
- 导出为 **JSON**、**GeoJSON** 或 **CSV**
### 事件类别
`Conflict` · `Maritime` · `Air` · `Cyber` · `Land` · `Space` · `Radio` · `Weather` · `Earthquakes` · `Social Media`
## 快速开始
### Docker (推荐)
在本地运行 Conflict Globe 的最快方式。需要 [Docker](https://docs.docker.com/get-docker/) 和 Docker Compose。
```
git clone https://github.com/r13xr13/conflict-globe.gl.git
cd conflict-globe.gl
docker compose up -d
# 应用程序将位于:
open http://localhost:8080
```
### 本地开发
需要 Node.js ≥ 18。
```
# Clone the repository
git clone https://github.com/r13xr13/conflict-globe.gl.git
cd conflict-globe.gl
# Install dependencies for both packages
cd client-3d && npm install
cd ../server && npm install
# Start the backend (Terminal 1)
cd server && npm run dev
# Start the frontend (Terminal 2)
cd client-3d && npm run dev
```
开发客户端将在文件更改时热重载。服务器使用 `ts-node-dev` 运行以支持 TypeScript 重载。
## 配置
### 环境变量
在 `server/` 目录中创建一个 `.env` 文件。所有 API 密钥均为可选 —— 许多数据源无需身份验证即可使用。
```
# ── API Keys (可选) ─────────────────────────────────────────────────────
NEWS_API_KEY=your_key_here
GDELT_KEY=your_key_here
# ── Server ───────────────────────────────────────────────────────────────────
PORT=8080
NODE_ENV=development
```
### 数据来源
服务器服务层聚合来自以下 OSINT 提供商的数据:
| 来源 | 领域 |
|---|---|
| [GDELT Project](https://www.gdeltproject.org/) | 全球事件与媒体 |
| [UCDP Armed Conflict](https://ucdp.uu.se/) | 冲突数据集 |
| MarineTraffic | 海事船舶追踪 |
| ADS-B Exchange | 实时飞机位置 |
| Satellite tracking feeds | 太空领域感知 |
| RSS news aggregation | 开源媒体源 |
## 架构
```
conflict-globe.gl/
├── client-3d/ # React + Vite frontend (TypeScript)
│ ├── src/
│ │ └── App.tsx # Root globe component & state management
│ └── package.json
│
├── server/ # Express + TypeScript backend
│ ├── src/
│ │ ├── index.ts # Server entry point & Socket.io setup
│ │ ├── routes/ # REST API endpoint definitions
│ │ └── services/ # Per-source OSINT data fetchers
│ └── package.json
│
├── globe.gl/ # Vendored / custom globe.gl build (optional)
├── Dockerfile
└── docker-compose.yml
```
**数据流:** OSINT 服务 → Express REST & Socket.io → React 客户端 → globe.gl WebGL 渲染器
## 技术栈
| 层级 | 技术 |
|---|---|
| **Frontend** | React, Vite, react-globe.gl, Three.js, TypeScript |
| **Backend** | Node.js, Express, TypeScript, Socket.io |
| **Data** | Axios, RSS parsers, REST OSINT APIs |
| **Infrastructure** | Docker, Docker Compose |
## 性能
- 客户端点聚类确保在事件量巨大时渲染时间保持稳定
- 可配置的最大点数 (50–500) 以匹配硬件能力
- 自动刷新节流防止数据源的速率限制耗尽
- Memoized 数据处理避免冗余的 React 渲染
- 代码分割懒加载减少初始包大小
## 键盘快捷键
| 按键 | 操作 |
|---|---|
| `R` | 强制数据刷新 |
| `F` | 切换侧边栏 |
| `H` | 切换深色 / 浅色主题 |
## 许可证
根据 [MIT License](LICENSE) 分发。
## 致谢
- [globe.gl](https://github.com/vasturiano/globe.gl) — 由 Vasco Asturiano 开发的 WebGL 地球渲染库
- [three-globe](https://github.com/vasturiano/three-globe) — Three.js 地球插件
- [GDELT Project](https://www.gdeltproject.org/) — 主要开源事件数据提供商
标签:3D可视化, deck.gl, DFIR, Docker, ESC4, HTTP/HTTPS抓包, MapboxGL, MITM代理, OSINT, React, Socket.io, Syscalls, TypeScript, WebGL, 全球冲突, 地缘政治, 威胁情报, 安全插件, 安全防御评估, 库, 应急响应, 开发者工具, 态势感知, 情报分析, 数据聚合, 新闻监控, 海事监控, 热力图, 空间分析, 网络安全, 网络战, 网络诊断, 自动化攻击, 航空监控, 请求拦截, 隐私保护