indicaindependent/warheatmap
GitHub: indicaindependent/warheatmap
开源实时全球冲突情报平台,在交互式地图上汇聚多地缘冲突热点,提供海军 OSINT 追踪、冲突升级指数和自动情报分发能力。
Stars: 0 | Forks: 0

# 🌍 WarHeatMap
### *实时全球冲突情报平台*
[](https://warheatmap.app)
[](https://tracker.warheatmap.app)
[](https://osintnet.uk)
[](LICENSE)











## 📋 更新日志
### v6.1 — 2026 年 5 月 9 日 *(最新)*
- 🔧 **CORS 修复** — 从浏览器 fetch 中移除了 `User-Agent`;在 strait-news-worker 中添加了 `Access-Control-Allow-Headers: *`
- 🔧 **修复了 `updateWarDay` / `forceRefresh` / `refreshPrices`** — 这些函数在启动时被调用但从未被定义(导致整个 UI 冻结)
- 💰 **每日价格缓存** — Brent/WTI/BTC 现在通过 `localStorage` TTL(24小时)每天摄入一次,而不是每次访问页面时摄入
- ⚡ **`applyPrices()`** — 统一的价格渲染函数,消除了重复的 DOM 更新
- 🔄 **`autoRefresh()`** — 5分钟后台刷新遵循每日价格缓存
- ✅ **NOW 按钮** — `forceRefresh()` 清除价格缓存,重新获取所有实时数据,并在 UI 上显示闪烁确认
### v6.0 — 2026 年 5 月 7 日
- 🗺️ 完整的 SVG 地图重建 — 无需外部 Leaflet 依赖(兼容 WARP)
- 📰 实时情报简报面板 — 自动从 strait-news-worker 填充数据
- 🎯 IRGCN 资产位置 + 美国海军航母战斗群叠加层
- ⚓ 雷区 / 封锁区图层
- 📅 战争日计数器(自 2026 年 2 月 27 日算起)
- 🔴 威胁等级徽章 — 从情报 API 状态对象中提取
### strait-news-worker v3.1 — 2026 年 5 月 9 日
- 🔧 **CORS 修复** — 在所有响应及预检请求中添加了 `Access-Control-Allow-Headers: *`
- ✅ `/oil-live` 端点已确认可运行
- ✅ 所有密钥已恢复:NEWSAPI, ANTHROPIC, GEMINI, TELEGRAM, AISSTREAM, ALPHA_VANTAGE, FINNHUB
## 🔍 什么是 WarHeatMap?
**WarHeatMap** 是一个免费、开源的实时冲突情报平台,它可以汇聚地缘政治冲突爆发点,将其叠加在交互式世界地图上,并通过 AT Protocol 自动将情报主题帖发布到 **Bluesky** —— 所有这一切都运行在 **Cloudflare Workers** 的边缘计算节点上。
专为研究人员、记者、活动家以及任何追踪全球局势动荡(要求实时且无付费墙、无登录墙、无企业偏见)的人士而构建。
## ⚡ 功能特性
| 功能 | 描述 |
|---|---|
| 🌍 **交互式热力图** | 带有实时冲突区域和严重性叠加层的 Leaflet.js 世界地图 |
| ⚓ **海峡追踪器** | 专门的霍尔木兹海峡/海军 OSINT 子仪表板 |
| 📡 **Bluesky 自动发帖** | 情报主题帖通过 AT Protocol 发送至 Bluesky |
| 🔴 **热点区域检测** | 算法化的严重性分类(RED/ORANGE/YELLOW) |
| 📰 **情报源** | 跨所有活跃战场的实时新闻聚合 |
| 💾 **事件档案** | 存储所有已追踪事件的 D1 SQLite 数据库 |
| 📊 **冲突升级指数** | 每个冲突区域的实时紧张局势评分 |
| 🚢 **海军 OSINT** | 船只追踪、封锁状态、油轮事件日志 |
| ₿ **BTC 支持** | 匿名提供资金支持 — 链上交易,无需账户 |
| 📱 **移动端优先** | 具有专用移动端 worker 的完全响应式布局 |
## 🗺️ 追踪的冲突区域
```
🇮🇷 Strait of Hormuz — BLOCKADE ACTIVE | Naval interdiction | IRGC incidents
🇺🇦 Ukraine — Front line updates | ISW-sourced | Daily briefings
🇵🇸 Gaza / West Bank — IDF operations | Casualty tracking | Ceasefire status
🇸🇩 Sudan — RSF vs SAF | Humanitarian corridor status
🇨🇩 DRC / M23 — Eastern Congo offensive tracking
🇲🇲 Myanmar — Junta vs. resistance | KIO/KNLA operations
🌍 + 9 more active zones
```
## 🛠️ 技术栈
```
Frontend: Leaflet.js · Vanilla JS · CSS Grid · WebSocket
Backend: Cloudflare Workers (Edge Runtime, v8 isolates)
Database: Cloudflare D1 (SQLite at the edge)
Cache: Cloudflare KV (analytics + event cache)
Storage: Cloudflare R2 (media assets)
Social: AT Protocol → Bluesky (auto campaign drip)
CDN: Cloudflare Global Network (330+ PoPs)
Mobile: Dedicated mobile Worker with adaptive layout
```
## 🏗️ 架构
```
News Sources → Cloudflare Worker (strait-news-worker)
→ D1 Database (event log)
→ KV Cache (analytics)
→ Warheatmap Frontend (warheatmap-worker)
↓
Leaflet.js Interactive Map
↓
AT Protocol Publisher → Bluesky Thread
```
## 📁 仓库结构
```
/
├── workers/
│ ├── warheatmap-worker.js # Main frontend + map (CF Worker)
│ ├── strait-tracker-worker.js # Naval OSINT dashboard (CF Worker)
│ └── credit-tracker.js # Credit/usage tracking (CF Worker)
├── wrangler.toml.example # Deploy config template
├── LICENSE # MIT
└── README.md
```
## 🚀 部署你自己的实例
```
# Clone
git clone https://github.com/indicaindependent/warheatmap
cd warheatmap
# 安装 Wrangler
npm install -g wrangler
# 复制 config
cp wrangler.toml.example wrangler.toml
# 编辑 wrangler.toml — 添加你的 D1 binding、KV namespace IDs
# 创建 D1 database
wrangler d1 create warheatmap-db
# 部署 main worker
wrangler deploy workers/warheatmap-worker.js
# 部署 strait tracker
wrangler deploy workers/strait-tracker-worker.js
```
## 🌐 数据来源
- 📋 **ISW (战争研究所)** — 每日乌克兰/冲突评估
- 🛢️ **MarineTraffic / VesselFinder** — 实时 AIS 船舶定位
- 📰 **路透社、美联社、半岛电视台** — 突发新闻聚合
- 🔓 **FOIA / 开源** — 政府采购与军事合同
- 🌊 **USNI 新闻** — 美国海军学会冲突报道
- 📡 **OSINT 社区** — 经过验证的开源情报
## 🤝 参与贡献
欢迎提交 Pull Requests。如果您发现我们遗漏了某个冲突区域或某个数据源失效 —— [请提交 Issue](https://github.com/indicaindependent/warheatmap/issues)。
**由 [Indica Independent Media](https://osintnet.uk) · [VPDLNY](https://osintnet.uk) · 纽约州斯塔滕岛 构建**
*世界正在燃烧。总得有人将其绘制成图。*
[](https://bsky.app/profile/indicaindependent.bsky.social)
[](https://github.com/indicaindependent/faceheatmap)
[](https://github.com/indicaindependent/sentinel)
标签:AT Protocol, Bluesky, CMS安全, D1, ESC4, GIS, HTTP/HTTPS抓包, JavaScript, Leaflet.js, OSINT, Serverless, 全球冲突, 军事追踪, 国际局势, 地理信息系统, 地缘政治, 实时处理, 态势感知, 情报分析, 战争地图, 数据可视化, 海洋追踪, 热力图, 程序员工具, 网络诊断, 自动化发布, 自定义脚本