8일 전 등장 → 1.1k stars · 211 forks. "오픈소스 Palantir 대안"으로 X(Twitter)·Reddit에서 바이럴. Next.js 16 + MapLibre GL + WebGL. 1만+ 실시간 항공기, 2000+ 위성·ISS, 1400+ CCTV 라이브 스트림, 지진·산불·원전·기상 모니터링, GDELT 분쟁 지역, 24/7 뉴스 라이브. "브라우저 안에 내장된 RECON Toolkit": 포트 스캔·DNS·WHOIS·SSL·IP intel·CVE 매칭까지.
왜 "오픈소스 Palantir 대안"이라는 한 문장이 — 8일에 1.1k stars를 모았나.
Palantir Technologies는 — 미국 정부·정보기관·군이 쓰는 데이터 분석 플랫폼을 만드는 회사. 2003년 페이팔 마피아 출신 Peter Thiel이 창업. CIA·FBI·국방부·이민세관집행국(ICE)이 — 자기 다양한 데이터를 한 지도·대시보드에 합쳐 "이 사람·이 차량·이 화물"을 추적하는 도구. "국가의 감시 도구의 정수"로 종종 비판 대상.
OSIRIS는 — "그 Palantir 스타일 대시보드를 — 오픈소스로 만든다"는 도전. 단, 정부 데이터를 쓸 수 없으니 — 공개된 OSINT(Open-Source Intelligence) 데이터만 사용. 1만+ 항공기는 ADS-B(공개 항공기 트랜스폰더), 위성은 NORAD(공개), CCTV는 인터넷에 공개된 스트림, 지진은 USGS, 분쟁은 GDELT. 모두 — 합법적이고 공개된 데이터 소스의 통합.
그 결과 — 한 WebGL 지도에 — 거의 신처럼 위에서 내려다보는 대시보드. X(Twitter)에서 한 사용자가 "CIA 도구처럼 보인다"고 트윗 → 바이럴 → 8일 만에 1.1k stars. "누구나 가질 수 있는 감시 능력"이라는 — 강력하고 양면적인 매혹.
flightradar24·FlightAware의 데이터 원천. OSIRIS도 ADS-B Exchange 같은 데이터 소스에서 가져옴./api/gdelt 엔드포인트가 이 데이터 노출.전체 글의 핵심 메시지.
이 레포의 본질은 — 새 데이터 소스가 아니다. 항공·위성·CCTV·뉴스 데이터는 — 다 이전부터 있었다. 오로지 — "한 화면에 합쳐 보는 경험"이 새롭다. Palantir의 가치도 거기 있다 — 데이터 자체보다, 그것을 한 시야에 모으는 디자인.
그래서 8일 만에 1.1k stars는 — "이런 게 누구나 만들 수 있다는 깨달음"의 폭발. 정부 만의 권력이 — 한 명의 인디 개발자에 의해 — 오픈소스로 풀어진 듯한 인상. 양면적이지만 — 강력하다.
바이럴 폭발의 정확한 메커니즘.
① "오픈소스 Palantir"라는 한 문장. 트위터 헤드라인용으로 — 완벽. "Palantir가 뭔지" 모르는 사람도 "정부가 쓰는 무서운 거"라는 직감. 즉시 클릭. 영어·중국어 양쪽에서 폭발. "미국 시뮬레이션을 한 명이 만들었다"의 서사.
② 시각적 충격. 1만+ 항공기가 — 실시간 3D 지구본에. 2000+ 위성 + ISS. 1400+ CCTV 라이브. 첫 30초 데모만 봐도 — "이게 정부 도구 아니야?"의 의심. "마우스를 비행기에 호버하면 — 어떤 회사·어떤 노선"도 다 나온다.
③ RECON Toolkit의 추가 magic. 단순 시각화가 아니라 — 브라우저 안에서 — 포트 스캔·DNS·WHOIS·SSL·CVE 매칭까지. "정보 수집 → 공격 가능성 평가"를 한 도구로. "Kali Linux의 핵심 기능들이 — 우아한 UI로".
④ 빠른 fork 확산 = 트래픽 신호. 211 forks · 1.1k stars 비율은 — 보통 0.05 이하인데 OSIRIS는 0.19. "코드를 자기 노트북에 받아 돌려보고 싶다"의 강한 욕구. fork 클론도 — stepw66/Clone-osiris, inde5media/osiris-Palantir 등 — 다수 등장.
⑤ 도덕적 논쟁의 양면성. "감시 도구의 민주화 → 시민 무기"라는 긍정 시각 + "스토커·범죄자에게 무기" 부정 시각이 동시. 어느 쪽 진영이든 — "빠르게 글을 써야 한다". 토론은 별을 만든다.
강력해 보이는 것에 비해 — 부품은 일반 모던 웹.
Next.js 16 (App Router·React Server Components·Server Actions), TypeScript, MapLibre GL JS(지도 렌더링), WebGL(GPU 가속), Custom CSS Design System, Tailwind CSS v4(스타일), Framer Motion(애니메이션), Lucide React(아이콘). "2026년 모던 웹 풀스택의 기본 구성".
모든 데이터는 — Next.js의 /api/* 라우트로 노출. 10+ 엔드포인트:
/api/flights 항공기 위치 (ADS-B 기반) /api/satellites 위성 위치 (NORAD TLE 계산) /api/earthquakes 지진 모니터링 (USGS) /api/cctv 공개 CCTV 스트림 디렉토리 /api/news 뉴스 라이브 스트림 /api/fires 산불·열대저기압 (NASA FIRMS) /api/maritime 선박 추적 (AIS) /api/gdelt 분쟁·시위 (GDELT) /api/weather 극단 기상 (NOAA·OpenWeather) /api/scanner 포트 스캔·DNS·WHOIS·CVE 매칭 (서버 측)
이 부분이 — "단순 시각화" vs "능동 정찰 도구"의 경계선. 포트 스캔(Nmap 호환 시도), DNS 조회, WHOIS, SSL/TLS 인증서 검사, IP 인텔, CVE(공개 취약점) 매칭 — 다 서버에서 실행. "브라우저 UI지만 — 실제로는 정찰 작업"이 일어난다. 사용자 도메인·IP를 입력하면 — "공격 가능성을 평가하는 데 쓸 수도 있다"는 점.
ADS-B Exchange / OpenSky Network(항공), CelesTrak(위성 TLE), USGS(지진), NASA FIRMS(산불), GDELT(분쟁), 다양한 CCTV 디렉토리 사이트. 모두 공개 API이지만 — rate limit·키 필요·ToS 제약이 따로따로. 운영은 — 매우 복잡한 작업.
"많은 데이터 소스를 — 한 WebGL 지도로"의 디자인 패턴.
[클라이언트 (브라우저)] │ React + MapLibre GL + WebGL │ - HUD 패널 (레이어 토글: 항공·위성·CCTV·지진·...) │ - RECON Toolkit (도메인·IP 입력) │ │ Server Actions / fetch ▼ [Next.js Server (Vercel deploy)] │ │ ┌─── 캐싱 / Rate-limit / WebSocket? ▼ ▼ [API Routes — 10+ 데이터 소스 어댑터] │ ├─→ ADS-B Exchange API (항공) ├─→ CelesTrak (위성 TLE) ├─→ USGS Earthquake API ├─→ NASA FIRMS (산불) ├─→ GDELT (분쟁) ├─→ Public CCTV directories ├─→ News stream APIs └─→ ... 등 [RECON Toolkit 백엔드] ├─→ Port scanner (TCP scan) ├─→ DNS resolver ├─→ WHOIS lookup ├─→ SSL/TLS inspector ├─→ IP geolocation └─→ CVE database (NVD)
일반 지도 라이브러리(예: Leaflet)는 — DOM 마커 1000개부터 버벅. MapLibre GL은 — 마커를 GPU 셰이더로 그린다. 1만+ 항공기가 — 60fps 유지. "왜 OSIRIS가 빠르게 보이나"의 핵심 답.
각 데이터 소스는 — /api/<source>/route.ts 한 파일. 외부 API의 다른 인증·포맷·rate-limit을 — Next.js 라우트 안에서 흡수. 클라이언트는 — 통일된 GeoJSON 또는 JSON 응답만 받는다. "외부 API 변경 시 — 한 파일만 수정".
전통 대시보드(좌측 사이드바·상단 헤더) X. 대신 — 지도 위에 떠 있는 반투명 패널들(HUD). 게임 인터페이스 느낌. 레이어 토글, 검색, RECON 도구 — 다 떠 있는 위젯. "시각적 충격"의 큰 부분.
포트 스캔·DNS·WHOIS — 클라이언트가 직접 못 한다(CORS·브라우저 제약). 그래서 — 서버에서 대리 실행. 이건 위험: ① 사용자가 — 자기가 권한 없는 IP를 스캔 가능 ② 서버 운영자는 — 대량 스캔의 책임자가 됨. "오픈소스로 배포 = 책임도 분산"이라는 입장이지만 — 법적 회색지대.
표준 Next.js 16 + 명확한 레이어 분리.
osiris/ ├── src/ ← 소스 루트 │ ├── app/ ← Next.js 16 App Router │ │ ├── api/ ← 데이터 어댑터 (10+) │ │ │ ├── flights/route.ts │ │ │ ├── satellites/route.ts │ │ │ ├── earthquakes/route.ts │ │ │ ├── cctv/route.ts │ │ │ ├── news/route.ts │ │ │ ├── fires/route.ts │ │ │ ├── maritime/route.ts │ │ │ ├── gdelt/route.ts │ │ │ ├── weather/route.ts │ │ │ └── scanner/route.ts ← RECON 도구 │ │ ├── layout.tsx │ │ └── page.tsx ← 메인 지도 UI │ ├── components/ ← UI 컴포넌트 (평면 배치) │ │ ├── OsirisMap.tsx - MapLibre 지도 컨테이너 │ │ ├── LayerPanel.tsx - 레이어 토글 패널 │ │ ├── OsintPanel.tsx - OSINT 정보 패널 │ │ ├── IntelFeed.tsx - 인텔 피드 │ │ └── SearchBar.tsx - 검색 UI │ └── lib/ ← 비즈니스 로직 │ ├── ai-engine.ts - AI 분석 엔진 │ ├── osint-utils.ts - OSINT 유틸리티 │ ├── sanctions.ts - 제재 목록 조회 │ ├── stealthFetch.ts - 스텔스 fetch 래퍼 │ ├── ssrf-guard.ts - SSRF 방어 │ └── sdk/ - 외부 서비스 SDK 래퍼 ├── public/ ← 정적 자원 ├── Dockerfile ← 자체 호스팅용 (node:22-alpine) ├── docker-compose.yml ├── next.config.ts ├── tsconfig.json ├── package.json └── README.md
주목할 점: Dockerfile + docker-compose이 있다 — Vercel 없이 — 자기 서버·NAS에서 그대로 자체 호스팅 가능. "우리 회사 사내 OSINT 도구"로 변신할 수 있다는 가능성.
기술적 가치와 — 무엇을 만들 것인가의 질문.
10+ 외부 API를 — 통일된 GeoJSON으로 변환. 각 라우트의 코드가 — "한 파일에 한 어댑터"의 모범 답안. 외부 API 변경 시 — 그 파일만 수정. 자기 대시보드 프로젝트(Slack·Linear·GitHub 등 통합)에 그대로 적용 가능.
1만+ 마커가 — 60fps. 어떻게? WebGL 셰이더로 GPU에 일임. 이게 — "DOM 기반 차트"에서 "GPU 기반 시각화"로의 다리. 자기 회사의 대량 데이터 대시보드(IoT 센서 1만+ 추적, 큰 그래프 시각화)에 그대로 응용.
이 레포는 — 2026 Next.js 16의 거의 모든 최신 기능을 사용. App Router, Server Components, Server Actions, Edge Runtime. "한 풀스택 프로젝트의 살아있는 베스트 프랙티스"를 — 한 곳에서.
OSINT는 — 저널리스트·연구자·법무·인권 단체에 가치 있는 합법 기술. 우크라이나 전쟁 — Bellingcat의 OSINT 분석이 — 정부보다 빠르게 진실을 폭로. OSIRIS의 코드를 정독하면 — 합법 OSINT 도구를 — 어떻게 만드는지의 청사진. 자기가 — 좋은 목적의 OSINT(예: 환경 감시·인권 감시) 도구를 만들 수 있다.
RECON Toolkit은 — "양면적 도구"의 정확한 사례. 자기 서버 보안 점검에는 합법·필요. 그러나 — 다른 사람 서버 스캔은 — 사법 영역(컴퓨터 보안법). 이 레포가 — 그 경계에 너무 가깝다. "오픈소스로 만들면 — 누가 쓸지 통제 못 한다"의 책임 문제. 자기 도구를 만들 때 — 이 트레이드오프를 의식할 시각을 얻는다.
실행 환경 + 운영 비용.
Node.js 22+ + npm/pnpm. npm run dev → localhost:3000. 첫 실행 시 — 각 데이터 소스 API에 한 번씩 요청 → 캐시 채움. 각 API 키 발급 필요(OpenSky, OpenWeather, NASA FIRMS 등 — 대부분 무료).
docker compose up -d로 — 한 박스에서. Vercel 무료 티어로 — 개인 데모는 충분. 트래픽이 늘면 — VPS 또는 자체 NAS. 대량 API 호출이 발생하므로 — 각 외부 API의 rate limit 주의.
자기 서버에 — RECON 활성으로 노출하면 — 익명의 누군가가 자기 서버를 통해 — 다른 서버를 스캔한다. 법적 책임이 운영자에게. macOS 컴퓨터 보안법 / 한국 정보통신망법 위반 가능. 데모를 — 자기 인증된 IP/도메인만 입력 가능하게 제한 — 또는 — RECON 기능을 끄고 호스팅.
난이도별 4개. 윤리적 고려 포함.
저자가 운영하는 — 공식 데모 사이트에서. 항공·위성·CCTV 레이어를 켜고 — 자기 도시 위에 무엇이 있는지. 이미 5분이면 — "와, 우리 동네 위로 매일 비행기 50대가 지나가는구나"의 깨달음. 로컬 설치 없이 — UI/UX 체험만.
레포 fork → 로컬 실행. app/api/flights/route.ts 또는 app/api/earthquakes/route.ts를 — 한 줄씩 정독. 외부 API 호출 → 변환 → 클라이언트 응답의 흐름이 — 어떻게 한 50줄로 구현되는지. 자기 도메인에 — 같은 패턴 적용 가능.
예: 한국 한정 — "실시간 미세먼지", "한강 수위", "지하철 운행 현황", "공공 와이파이". 새 /api/<source> 라우트 추가. MapLibre 레이어로 — 시각화. HUD에 토글. "우리 동네 버전 OSIRIS"가 완성. 포트폴리오에 강력.
OSIRIS의 코드를 베이스로 — 의식적으로 "좋은 목적의 OSINT 도구"를 만든다. 예: "전 세계 산림 벌채 실시간 추적"(Global Forest Watch API), "권위주의 정부의 시위 진압 추적"(GDELT 필터링), "기후 위기 가시화"(NASA·NOAA 통합). "감시 도구 vs 시민 도구"의 차이는 — 누가·왜 만드느냐".
기술 + OSINT + 책임감 있는 도구 만들기.
MapLibre의 — 커스텀 셰이더, layer 시스템, 카메라 컨트롤. deck.gl(Uber 산하) — 같은 영역의 React 친화 라이브러리. "1만+ 데이터 포인트의 60fps 시각화"가 자기 손에. IoT·금융 대시보드 시장의 핵심 기술.
OSIRIS는 — 2026 Next.js의 거의 모든 최신 기능을 활용. 한 줄씩 정독하면 — "풀스택 Next.js의 베스트 프랙티스"를 흡수.
Bellingcat은 — 세계 1순위 OSINT 단체. 그들의 공개 가이드·강의를 정독. "합법적이고 윤리적인 OSINT의 방법". OSINT Framework(osintframework.com)에서 — 도구 카탈로그. "수상한 도구 vs 시민 도구"의 차이를 — 실무 사례로.
자기가 만드는 도구가 — 어떻게 stalker·범죄·국가 감시에 쓰일 수 있는지. "악용 시나리오 매트릭스"를 디자인 단계에 작성. mitigation 설계. "한 명의 개발자가 사회에 미치는 영향"을 — OSIRIS의 케이스로 깊이 체감.
OSINT·감시·기술 용어.
/api/maritime가 — 이 데이터 통합. "전 세계 화물선·유조선·요트의 실시간 지도".레포·관련 자료·윤리 자료.
레포 본체: github.com/simplifaisoul/osiris
공식 데모: osirisai.live
TrendShift: trendshift.io/repositories/30463
OSINT 학습: Bellingcat 가이드 · OSINT Framework
데이터 소스: OpenSky Network(항공), CelesTrak(위성), GDELT(분쟁).