概要
ShadowBroker は、リアルタイム地政学・地理情報を統合表示する ダッシュボード 航空機・船舶・衛星・地震・紛争・CCTV等を 一画面で可視化 Next.js・MapLibre GL・FastAPI・Python で構築 Docker・ZIP版・ソースからの起動 が可能 分析・研究・趣味用途に最適な グローバル監視ツール
ShadowBroker — リアルタイム地政学インテリジェンスダッシュボード
- 複数のOSINTフィード を統合し、 ダークオプス風マップUI で可視化
- 航空機・船舶・衛星・地震・紛争・CCTV・GPS妨害・金融指標 をリアルタイム追跡
- 分析者・研究者・愛好者 向けの「シングルペイン」世界監視環境
主なユースケース
- 億万長者のプライベートジェット 追跡
- 上空を通過する衛星 の監視
- 世界中の海上交通 の把握
- GPSジャミング発生エリア の検出
- 地震・災害 の即時追跡
クイックスタート(Docker)
- リポジトリのクローン
git clone https://github.com/BigBodyCobain/Shadowbroker.git - ディレクトリ移動
cd Shadowbroker - Docker Composeで起動
docker-compose up -d - http://localhost:3000 でダッシュボード閲覧(Docker必須)
主な機能一覧
🛩️ 航空機トラッキング
- 商用・プライベート・軍用機 のリアルタイム追跡
- OpenSky Network (5,000+機)・ adsb.lol (軍用機)利用
- 航空機分類・SVGアイコン表示
- ホールディングパターン自動検出
- 飛行経路トレイル・地上判定
🚢 海上トラッキング
- AIS WebSocket(aisstream.io) で25,000+隻をリアルタイム追跡
- 船種分類・色分けアイコン
- 米海軍空母打撃群 のOSINT推定位置自動追跡
- クラスター表示・地域別マッピング
🛰️ 衛星トラッキング
- CelesTrak TLE・SGP4 による2,000+衛星の位置推定
- 任務タイプ別カラー分類 (偵察・SAR・SIGINT・航法・早期警戒・商用・宇宙ステーション)
🌍 地政学・紛争
- GDELT による世界の紛争・事件速報(直近8時間・約1,000件)
- ウクライナ戦線 (DeepState Map連携)
- SIGINT/RISINTニュースフィード (複数RSS集約)
- 地域ドシエ :地図右クリックで国情報・首脳・Wikipedia要約
📷 監視カメラネットワーク
- 2,000+台のライブCCTV (ロンドン・オースティン・NYC・シンガポール等)
- 自動フィード検出・動画/画像/タイル対応
- クラスター表示
📡 シグナルインテリジェンス
- GPSジャミング検出 :航空機NAC-P値のリアルタイム分析
- グリッド集約・ジャミング強度表示
- ラジオインターセプトパネル :通信傍受UI
🌐 追加レイヤー
- 地震情報(USGS)
- 昼夜サイクル表示
- グローバル金融指標ティッカー
- 距離・方位測定ツール
システムアーキテクチャ
- フロントエンド :Next.js + MapLibre GL(2Dマップ描画・パネル・フィルタ)
- バックエンド :FastAPI(データ取得・スケジューリング・API提供)
- 主要データソース :OpenSky・adsb.lol・aisstream.io・CelesTrak・USGS・GDELT・DeepState Map・各種CCTV API
- キャッシュ・自動更新 :各種データは適宜キャッシュ&定期更新
データソースとAPI
- OpenSky Network :商用・プライベート航空機(60秒更新・匿名利用可)
- adsb.lol :軍用航空機(60秒・APIキー不要)
- aisstream.io :AIS船舶位置(リアルタイム・APIキー必須)
- CelesTrak :衛星軌道(60秒・APIキー不要)
- USGS :地震(60秒・APIキー不要)
- GDELT :世界紛争(6時間・APIキー不要)
- DeepState Map :ウクライナ前線(30分・APIキー不要)
- 各都市CCTV :5分更新(一部APIキー必要)
- RestCountries・Wikidata・Wikipedia :国情報・画像(オンデマンド)
起動方法
🐳 Docker利用(推奨)
- docker-compose.yml作成 (公式イメージ利用)
- .envファイル にAPIキー記載
docker-compose up -dで起動し、 http://localhost:3000 へアクセス
📦 クイックスタート(ノーコード)
- GitHubのReleasesタブ から ShadowBroker_v0.3.zip ダウンロード
- 解凍後、 Windowsはstart.bat、Mac/Linuxはstart.sh 実行
- 自動インストール&ダッシュボード起動
💻 開発者向けセットアップ
- Node.js 18+・Python 3.10+・npm/pip 必須
- aisstream.io(必須)・opensky-network.org(任意)・lta.gov.sg(任意) APIキー取得
- リポジトリクローン・backend/frontendセットアップ
- npm run dev でフロント・バックエンド同時起動
- Next.js (http://localhost:3000)
- FastAPI (http://localhost:8000)
データレイヤー(左パネルでON/OFF可)
- 商用・プライベート・軍用機・高額ジェット・特定航空機
- 衛星・空母/軍用/貨物船・民間船舶・クルーズ/旅客船
- 地震・CCTV・ウクライナ前線・世界紛争・GPSジャミング・昼夜サイクル
パフォーマンス最適化
- Gzip圧縮 :APIペイロード約92%圧縮
- ETagキャッシュ :304レスポンスでJSONパース回避
- ビューポートカリング :表示範囲+20%のみ描画
- クラスター描画 :船舶・CCTV・地震で機能
- デバウンス更新 :300ms遅延でGeoJSON再構築抑制
- 位置補間 :10秒アニメーションでスムーズ表示
- React.memo :不要な再レンダリング防止
- 座標精度 :小数点5桁(約1m)でJSONサイズ削減
プロジェクト構成
- backend/ :FastAPI本体・データ取得・API管理
- services/ :各種データ取得・キャッシュ・解析モジュール
- frontend/src/ :Next.jsアプリ・MapLibre・各種パネル・UIコンポーネント
- .env :APIキー管理
環境変数例(backend/.env)
- AIS_API_KEY =your_aisstream_key
- OPENSKY_CLIENT_ID =your_opensky_client_id
- OPENSKY_CLIENT_SECRET =your_opensky_secret
補足・開発裏話
- Flightradar・MarineTraffic・Twitter 等を横断しなくて済む統合ダッシュボードとして開発
- 映画ハッカー風UI だが、 実際のOSINTパイプライン を構築
- GeoJSON大量描画 によるブラウザ負荷対策(カリング・圧縮・デバウンス等)
- リアルタイムGPSジャミング検出 は特にユニークな機能
- 最適化・MapLibre改善案 歓迎
まとめ
- ShadowBroker はグローバルなリアルタイム地政学・地理情報を 一元集約
- 自己ホスト・カスタマイズ・拡張性 に優れた オープンソースOSINTプラットフォーム
- 分析・研究・危機管理・趣味 など多様な用途に活用可能