【爆速】世界中の航空・船舶・衛星を1画面で監視!15のライブフィードを統合した最強OSINTダッシュボードを自作した
HNのみんな、調子はどう?世界で何かが起きるたびに、FlightradarやMarineTraffic、Twitter(現X)をあっちこっち行ったり来たりするのに疲れたから、全部ローカルで一元管理できるダッシュボードを作ってみた。その名も「Shadowbroker」だ。UIはちょっと「映画のハッカー」っぽさを意識しすぎた自覚はあるけど、バックエンドのパイプラインは本物だ。民間・軍用のADS-B、AISのWebSocketストリーム(約25,000隻以上の船舶)、N2YOの衛星テレメトリ、そしてGDELTの紛争データを一つのMapLibreインスタンスに流し込んでいる。一番苦労したのは、ブラウザをクラッシュさせずに動かすことだった。i5とRTX 3050のノートPCで開発してるんだけど、最初は3万件以上の動的なGeoJSONデータをマップにぶち込んだら、すべてがフリーズしてしまった。結局、かなり強力なビューポートカリング(画面外の描画抑制)を実装したり、状態更新をデバウンスしたり、FastAPIのペイロードを90%近く圧縮したりして、ようやく実用的なレベルまで持っていけた。個人的に気に入っているのは「シグナルレイヤー」だ。これは、上空を飛んでいる民間機の航法精度の低下(NAC-P)をリアルタイムに集計して、GPSジャミング(電波妨害)が発生しているゾーンを算出している。技術スタックはNext.jsとPython。とりあえず動かしてみたい人向けにリリースページにクイックスタート用スクリプトを用意したけど、バックエンドの中身を詳しく見たい人はリポジトリを覗いてみてくれ。MapLibreの実装で「ここがダメだ」という点があれば教えてほしい。レンダリングを最適化するアイデアは大歓迎だ。