indicaindependent/straittracker

GitHub: indicaindependent/straittracker

该项目是一个基于 Cloudflare 边缘架构的霍尔木兹海峡实时地缘政治情报追踪仪表板,解决区域态势信息聚合与可视化呈现的问题。

Stars: 0 | Forks: 0

# ⚡ StraitTracker **实时霍尔木兹海峡地缘政治情报 —— 运行于 Cloudflare 边缘** [![实时](https://img.shields.io/badge/LIVE-tracker.warheatmap.app-EF4444?style=for-the-badge&logo=firefoxbrowser&logoColor=white)](https://tracker.warheatmap.app) [![Cloudflare Workers](https://img.shields.io/badge/Cloudflare_Workers-F38020?style=for-the-badge&logo=cloudflare&logoColor=white)](https://workers.cloudflare.com) [![License: MIT](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)
## 这是什么 StraitTracker 监控**霍尔木兹海峡** —— 全球最关键的石油咽喉要道 —— 汇总来自新闻来源的实时情报,并将其呈现在简洁的实时仪表板中。 两个专门构建的界面共享一个实时数据源: - **桌面端** (`tracker.warheatmap.app`) —— 宽屏 SVG 态势地图 + 情报侧栏 - **移动端** (`mobile.tracker.warheatmap.app`) —— 360px 优先的 Leaflet 地图 + 抽屉式 UI ## 功能 - 📡 **实时情报源** —— Claude + NewsAPI 聚合,持久化存储于 KV 中,通过 Cron Trigger 每 30 分钟重新生成一次 - 🗺️ **交互式地图** —— Leaflet(移动端)+ 无依赖的 SVG(桌面端),展示海峡地理、航道、布雷区及爆发点 - 📊 **状态仪表板** —— 威胁等级、停火/封锁状态、受困油轮、原油基准价格 - ⏱️ **自动相对日期** —— 每个日期都渲染为 `today` / `yesterday` / `3d ago`,因此仪表板永远不会显得过时 - 📱 **移动端优先** —— 渐进式抽屉、 peek/expand 状态、点击穿透标记弹窗 - ⚡ **边缘部署** —— Cloudflare Workers,全球 CDN,零冷启动 - 🎞️ **近零带宽** —— UI 读取预聚合的数据源;无需繁重的客户端轮询 ## 架构 ``` ┌─────────────────────────────┐ Cron (*/30m) → │ news-worker (aggregator) │ │ Claude + NewsAPI → KV cache │ └──────────────┬──────────────┘ │ /intel (JSON, persisted) ┌───────────────┴───────────────┐ ▼ ▼ ┌──────────────────────────┐ ┌──────────────────────────┐ │ strait-tracker (desktop)│ │ strait-tracker-mobile │ │ SVG map + intel rail │ │ Leaflet map + drawer UI │ └──────────────────────────┘ └──────────────────────────┘ ``` **技术栈:** Cloudflare Workers · Cloudflare KV · Cron Triggers · Leaflet.js · NewsAPI · Claude · 原生 JS(零构建步骤) UI workers 是**无状态**的 —— 它们渲染由独立的聚合器 worker 生成并持久化的数据源。这使得前端保持快速,数据具有弹性(能够在上游中断时存活),且带宽接近于零。 ## 仓库结构 ``` src/ strait-tracker-desktop.js # Desktop worker — SVG map + intel rail strait-tracker-mobile.js # Mobile worker — Leaflet + drawer UI wrangler.toml.example # Copy → wrangler.toml, fill in your IDs ``` ## 自托管 ``` git clone https://github.com/indicaindependent/straittracker cd straittracker cp wrangler.toml.example wrangler.toml # 填写:CF account ID、KV namespace ID # 将 src/*.js 中的 INTEL_API 指向你自己的 news-feed worker 的 /intel endpoint # (搜索 YOUR-NEWS-WORKER 并替换) wrangler deploy ``` UI workers 本身不需要任何 API 密钥 —— 它们仅读取 JSON 数据源。密钥(NewsAPI、Claude)位于您独立的聚合器 worker 中。 ## License [MIT](LICENSE) —— 随意使用、复刻并在此基础上进行开发。
属于 WarHeatMap 情报栈的一部分 | 由 Indica Independent 构建
标签:程序员工具, 自定义脚本