World Monitor は、地政学・軍事・金融・エネルギー・災害・サイバー・航空・海運などの情報を1枚の画面に束ねる「リアルタイム世界監視ダッシュボード」の SPA(TypeScript 製)+ デスクトップアプリ(Tauri 2)のモノレポ。
主な構成:
globe.gl(Three.js ベース 3D 地球儀)と deck.gl + MapLibre GL(WebGL 平面地図)のデュアルマップ、86 クラス以上の Panel コンポーネント。api/ 配下、自己完結 JS)、Railway 上の AIS WebSocket リレー、Upstash Redis の 3 段キャッシュ、Convex(問い合わせ/waitlist)。@xenova/transformers(ONNX, MiniLM など)を Web Worker で走らせるブラウザ内推論(埋め込み、感情、要約、NER、ベクトル検索)。world / tech / finance / commodity / happy の 5 サイトを生成(ホスト名や VITE_VARIANT で切替)。21 言語・RTL 対応。worldmonitor.app)、Tauri 2 デスクトップ(macOS arm64/x64, Windows, Linux AppImage, Node.js サイドカー同梱)、Docker(GHCR マルチアーチ)、PWA。| 比較対象 | World Monitor の優位点 |
|---|---|
| Bloomberg Terminal / Refinitiv | 金融だけでなく軍事・災害・サイバー・航空までクロスドメイン相関(escalation signal convergence)を行う。無償で自己ホスト可能。 |
| Flightradar24 / MarineTraffic / ACLED 個別サイト | AIS・ADS-B・紛争・気象・為替・ニュースを1つの地球儀/マップに 45 レイヤとして統合。横断 API を叩き分ける必要がない。 |
| Google News / Feedly などのニュースアグリゲータ | 500 フィードを AI が要約・ジャンル横断でクラスタリングし、Country Intelligence Index(12 カテゴリのコンポジットリスクスコア)まで付与。 |
| 一般的な OSS ダッシュボード(Grafana 等) | 最初から地政学インテリジェンス用にチューニングされた Panel / Map / AI 要約 が揃っており、自前でパイプラインを組む必要なし。Tauri 版でローカル常駐も可能。 |
| SaaS 型 OSINT ツール | Ollama によるローカル AI で API キー不要運用が可能、Edge Functions + Upstash で低レイテンシ、AGPL で透明性あり。 |
要するに「1画面で世界を把握する」を既製品に頼らずセルフホスト可能な形で実装しており、無料〜API 無しでも動かせる点が独自性。
git clone https://github.com/koala73/worldmonitor.git
cd worldmonitor && npm install && npm run dev
# → http://localhost:5173 (環境変数なしで基本動作)
バリアントを切り替えるなら npm run dev:tech / dev:finance / dev:commodity / dev:happy。
設定(必要に応じて) .env.example を .env にコピーし、Finnhub・Groq・Ollama・Upstash・Sentry など使いたい外部サービスのキーを埋める(未設定でも多くのパネルは graceful degradation)。
デスクトップアプリ(常駐用途)
worldmonitor.app/api/download?platform=… から .exe / .dmg / .AppImage を入手、または npm run desktop:dev / desktop:build:full。Node.js サイドカーが同梱され、ローカル API として動作。
vercel.json 済み、Edge Functions そのまま。docker-compose.yml または GHCR の nginx イメージ。scripts/ais-relay.cjs を AIS リレー + シードループとして常駐。SELF_HOSTING.md と DEPLOYMENT-PLAN.md。npm run typecheck / npm run build:full / npm run test:data / Playwright E2E / npm run lint を通し、CONTRIBUTING.md と AGENTS.md のガイドに従って PR。API 層は api/ 配下のみ、src/ や server/ から import しない等、境界ルールが lint で強制されている。