18 điểm bởi GN⁺ 2026-03-10 | 5 bình luận | Chia sẻ qua WhatsApp
  • Tích hợp nhiều loại dữ liệu thời gian thực như máy bay, tàu thuyền, vệ tinh, động đất, xung đột, CCTV, gây nhiễu GPS vào một giao diện dựa trên thông tin địa lý duy nhất
  • Được xây dựng bằng Next.js, MapLibre GL, FastAPI, Python, cho phép nhà phân tích và nhà nghiên cứu trực quan hóa hoạt động trên quy mô toàn cầu trên một màn hình duy nhất
  • Cung cấp các tính năng theo dõi chi tiết trong 6 lĩnh vực chính gồm hàng không, hàng hải, không gian, địa chính trị, giám sát, tình báo tín hiệu, và có thể điều khiển từng lớp riêng lẻ
  • Triển khai dễ dàng dựa trên Docker/Podmantự động hóa tích hợp API, giúp đơn giản hóa việc tự host và thiết lập môi trường phát triển
  • Nêu rõ rằng toàn bộ dữ liệu được thu thập từ nguồn OSINT công khai và chỉ được phép dùng cho mục đích giáo dục và nghiên cứu

Tổng quan

  • ShadowBroker là bảng điều khiển thông tin nguồn mở thời gian thực đa miền (Real-Time OSINT), tích hợp hàng chục luồng dữ liệu công khai và hiển thị chúng trên một giao diện bản đồ tối duy nhất
    • Theo dõi theo thời gian thực máy bay, tàu thuyền, vệ tinh, động đất, khu vực xung đột, mạng CCTV, gây nhiễu GPS, các sự kiện địa chính trị, v.v.
  • Được cấu thành từ Next.js, MapLibre GL, FastAPI, Python, và được thiết kế như một công cụ trực quan hóa dành cho nhà phân tích, nhà nghiên cứu và người yêu thích OSINT

Các trường hợp sử dụng chính

  • Theo dõi máy bay riêng của giới tỷ phú
  • Giám sát lượt bay qua quỹ đạo của vệ tinh
  • Theo dõi giao thông hàng hải toàn cầu
  • Phát hiện khu vực bị gây nhiễu GPS
  • Quan sát theo thời gian thực động đất và thảm họa

Tóm tắt tính năng

🛩️ Theo dõi hàng không (Aviation Tracking)

  • Hiển thị vị trí thời gian thực của hơn khoảng 5.000 máy bay thương mại thông qua OpenSky Network
  • Phân loại riêng máy bay tư nhân và quân sự và theo dõi phi cơ thương gia kèm thông tin chủ sở hữu
  • Hỗ trợ các tính năng chi tiết như tích lũy quỹ đạo bay, phát hiện vòng lượn, hiển thị trạng thái mặt đất
  • Cung cấp biểu tượng SVG chính xác theo từng loại máy bay

🚢 Theo dõi hàng hải (Maritime Tracking)

  • Dữ liệu thời gian thực của hơn 25.000 tàu thuyền qua aisstream.io WebSocket
  • Phân màu theo loại tàu (tàu hàng, tàu chở dầu, tàu khách, tàu chiến, v.v.)
  • Ước tính vị trí dựa trên OSINT của 11 tàu sân bay Hải quân Mỹtự động hóa scraping tin tức GDELT
  • Hỗ trợ lớp riêng cho tàu du lịch và tàu khách, hiển thị cụm theo mức zoom

🛰️ Không gian & vệ tinh (Space & Satellites)

  • Hiển thị quỹ đạo thời gian thực của hơn 2.000 vệ tinh dựa trên CelesTrak TLE + SGP4
  • Phân màu theo loại nhiệm vụ: trinh sát quân sự (đỏ), SAR (xanh ngọc), SIGINT (trắng), dẫn đường (xanh dương), cảnh báo sớm (hồng tím), ảnh thương mại (xanh lá), trạm vũ trụ (vàng kim)

🌍 Địa chính trị & xung đột (Geopolitics & Conflict)

  • Tổng hợp khoảng 1.000 sự kiện xung đột trong vòng 8 giờ gần nhất dựa trên GDELT
  • Dữ liệu thời gian thực về tiền tuyến Ukraine từ DeepState Map
  • Cung cấp luồng tin tức SIGINT/RISINTbảng thông tin khu vực
    • Bao gồm dân số, thủ đô, ngôn ngữ, tiền tệ, diện tích, hình thức chính phủ, thông tin nguyên thủ quốc gia (Wikidata), tóm tắt Wikipedia

📷 Giám sát (Surveillance)

  • Tích hợp luồng trực tiếp từ hơn 2.000 camera CCTV giao thông
    • London (TfL), Austin (TxDOT), New York (NYC DOT), Singapore (LTA), v.v.
  • Hỗ trợ tự động phát hiện và render luồng, hiển thị cụm theo mức zoom

📡 Tình báo tín hiệu (Signal Intelligence)

  • Phát hiện gây nhiễu GPS: trực quan hóa khu vực bị can nhiễu bằng cách phân tích giá trị NAC-P của máy bay
  • Bảng chặn thu vô tuyến: cung cấp UI kiểu nghe lén liên lạc vô tuyến

🌐 Các lớp bổ sung

  • Bao gồm dữ liệu động đất USGS (24 giờ), hiển thị ranh giới ngày/đêm, chỉ số thị trường tài chính thời gian thực, công cụ đo khoảng cách/phương vị

Kiến trúc hệ thống

  • Frontend (Next.js): bản đồ WebGL 2D dựa trên MapLibre GL, luồng tin SIGINT, bảng điều khiển, mô-đun thị trường và radio
  • Backend (FastAPI): thu thập định kỳ từ nhiều nguồn dữ liệu (OpenSky, adsb.lol, CelesTrak, USGS, GDELT, CCTV, v.v.)
  • Truyền dữ liệu tới frontend qua REST API theo chu kỳ 60~120 giây

Nguồn dữ liệu và API

Nguồn Dữ liệu Chu kỳ cập nhật API key
OpenSky Network Máy bay thương mại/cá nhân khoảng 60 giây Tùy chọn
adsb.lol Máy bay quân sự khoảng 60 giây Không cần
aisstream.io Vị trí tàu thuyền Thời gian thực Bắt buộc
CelesTrak Quỹ đạo vệ tinh khoảng 60 giây Không cần
USGS Động đất khoảng 60 giây Không cần
GDELT Sự kiện xung đột khoảng 6 giờ Không cần
DeepState Map Tiền tuyến Ukraine khoảng 30 phút Không cần
TfL, TxDOT, NYC DOT, LTA CCTV giao thông khoảng 5 phút Một phần bắt buộc
RestCountries, Wikidata, Wikipedia Thông tin quốc gia/bản đồ Khi có yêu cầu Không cần

Cài đặt và chạy

Dựa trên Docker/Podman

  • Sau git clone, chạy tự động bằng lệnh ./compose.sh up -d
  • Cổng mặc định: frontend 3000, backend 8000
  • Có thể đặt lại cổng qua biến môi trường NEXT_PUBLIC_API_URL

Môi trường phát triển để chỉnh sửa mã

  • Cần Node.js 18+, Python 3.10~3.12
  • Bắt buộc có API key aisstream.io, key OpenSky, LTA là tùy chọn
  • Chạy đồng thời frontend và backend bằng npm run dev

Điều khiển lớp dữ liệu

  • Có thể bật/tắt riêng tất cả các lớp như máy bay, vệ tinh, tàu thuyền, động đất, CCTV, xung đột, gây nhiễu GPS, v.v.
  • Mặc định bật: máy bay thương mại/quân sự, vệ tinh, tàu sân bay, động đất, xung đột, gây nhiễu GPS, ranh giới ngày/đêm

Tối ưu hiệu năng

  • Tối ưu xử lý dữ liệu thời gian thực quy mô lớn bằng nén Gzip (92%), ETag caching, viewport culling, cluster rendering, giảm độ chính xác tọa độ (5 chữ số thập phân)
  • Giảm tải render tối đa nhờ áp dụng React.memodebounce (300ms)

Biến môi trường

  • Bắt buộc: AIS_API_KEY
  • Tùy chọn: OPENSKY_CLIENT_ID, OPENSKY_CLIENT_SECRET, LTA_ACCOUNT_KEY

Miễn trừ trách nhiệm và giấy phép

  • Toàn bộ dữ liệu đều dựa trên nguồn OSINT công khai, không sử dụng thông tin riêng tư hoặc mật
  • Cấm sử dụng cho mục đích quân sự hoặc tình báo, chỉ giới hạn cho giáo dục và nghiên cứu
  • Cần tuân thủ điều khoản sử dụng của từng nhà cung cấp API

Cấu trúc dự án

  • backend/: ứng dụng FastAPI, scheduler thu thập dữ liệu, xử lý dữ liệu CCTV/tàu sân bay/xung đột
  • frontend/: các thành phần bản đồ, bảng điều khiển, bộ lọc, tin tức, thị trường, radio dựa trên Next.js
  • Bao gồm script triển khai tự động như docker-compose.yml, compose.sh

Tóm tắt

  • ShadowBroker là nền tảng mã nguồn mở trực quan hóa tích hợp dữ liệu OSINT thời gian thực toàn cầu
  • Có thể phân tích nhiều lĩnh vực như hàng không, hàng hải, không gian, địa chính trị, giám sát, tín hiệu trên một bản đồ duy nhất
  • Triển khai dễ dàng bằng Docker, render hiệu năng cao, chỉ sử dụng dữ liệu công khai
  • Là công cụ tình báo thời gian thực hữu ích cho nhà nghiên cứu phân tích an ninh/thông tin và kỹ sư dữ liệu tại startup

5 bình luận

 
ryudaewan 2026-03-10

Shadow Broker! Lâu rồi mới lại nhớ đến Mass Effect 2. https://masseffect.fandom.com/wiki/Shadow_Broker_(enemy)

 
xguru 2026-03-10

Đọc bình luận trên Hacker News mà cười xỉu luôn.

"Trong commit đầu tiên, ./frontend/.env.local./backend/.env bên trong file zip đã bị lộ"

"Vì thế nên nó mới có tên là OSINT (Open Source Intelligence). Mọi thứ đều được công khai"

 
girr311 2026-03-10

Tải về thử thì đúng là có thật.

 
zihado 2026-03-10

Haha, cái này hơi buồn cười thật đấy haha

 
GN⁺ 2026-03-10
Ý kiến trên Hacker News
  • Tò mò không biết việc nhận thức quá mức về dữ liệu như thế này, trong khi thực tế không thể thực hiện bất kỳ hành động nào, có thực sự đáng mong muốn hay chỉ là con đường dẫn tới căng thẳng và suy giảm cảm giác hiệu quả bản thân

  • Việc tối ưu một số geojson thành tile thời gian thực đúng là một dự án rất thú vị và cuốn hút
    Không biết bạn đã xem những dự án này chưa → PMTiles, Martin

    • Tôi đều rất thích cả hai dự án. Hiện tại ShadowBroker được tối ưu cho theo dõi radar thời gian thực (streaming GeoJSON từ backend FastAPI sang MapLibre mỗi 60 giây)
      Nhờ vậy, trên bản đồ có được chuyển động mượt gần như ở mức animation 60fps
      Sau này nếu lưu trữ dữ liệu hàng không và AIS dựa trên PostGIS thì chuyển sang Martin sẽ hợp lý hơn, nhưng vì mục tiêu thời gian thực nên hiện tại sẽ phải liên tục vô hiệu hóa tile cache, thành ra là lựa chọn hơi quá mức
    • Protomaps cũng hữu ích khi cần cung cấp bản đồ ở cấp quốc gia một cách đơn giản. CLI gần như có sẵn mọi thứ cần thiết → Tài liệu Protomaps CLI
      Trước đây tôi đã thiết lập nó cho một dự án nông nghiệp và dùng rất ổn
  • Dự án này trông giống monitor-the-situation.com

  • Mô tả “ShadowBroker is a real-time, full-spectrum geospatial intelligence dashboard” có vẻ hơi cường điệu
    Có lẽ cách diễn đạt như “Air and Space domain awareness” sẽ chính xác hơn
    Geospatial intelligence thường mang nghĩa thu thập thông tin dựa trên ảnh vệ tinh, còn “spectrum” trong nhiều trường hợp lại chỉ phổ ánh sáng

  • Trong ShadowBroker_v0.1.zip của commit đầu tiên, ./frontend/.env.local./backend/.env đã bị lộ

    • Nên nó mới có tên là OSINT (Open Source Intelligence). Mọi thứ đều công khai
    • Đùa rằng OSINT thật sự nằm trong phần bình luận
    • Tò mò không biết vì sao lại đi kiểm tra cái đó
  • Dự án này rất ngầu. Nó làm tôi nhớ tới liên kết này

    • Tôi cũng từng làm một thứ tương tự → dự án cimple-gis
      Phải hoàn thiện nó thôi mà vẫn chưa có thời gian
    • Trông có vẻ nguy hiểm để bấm vào nhưng thực ra vẫn ổn
  • Phần tổng hợp dữ liệu rất tuyệt. Tuy vậy, sẽ tốt hơn nếu thêm tín hiệu độ cũ của dữ liệu vào pipeline của các feed
    Một số nguồn (đặc biệt là threat feed) không cập nhật theo giây mà theo hàng giờ, nên nếu hiển thị thời điểm cập nhật cuối cùng của từng nguồn thì sẽ giúp đánh giá độ mới của dữ liệu tốt hơn

  • Thật sự rất tuyệt. Cảm ơn vì đã chia sẻ.
    Tôi tò mò nếu chạy vài giờ mỗi ngày trong khoảng một tháng thì chi phí API sẽ vào khoảng bao nhiêu. Muốn biết liệu có ở mức chấp nhận được không

    • Tất cả đều miễn phí
  • Dự án rất ấn tượng. Tuy nhiên, xét về tổng thể từ ý tưởng, feed cho tới thiết kế, nó gợi nhớ khá nhiều tới worldmonitor.app
    Xin lưu ý là bên đó cũng đã được triển khai thành dịch vụ chạy thật rồi