
iNTERCEPT, 최고의 신호 정보 도구를 단일하고 접근 가능한 인터페이스로 통합하는 무료 오픈 소스 플랫폼.
이 오픈 소스 프로젝트의 개발자를 지원해 주세요
신호 정보 플랫폼
소프트웨어 정의 라디오 도구를 위한 웹 기반 인터페이스입니다.
git clone https://github.com/smittix/intercept.git
cd intercept
./setup.sh # 대화형 메뉴 (첫 실행 시 설정 마법사 실행)
sudo ./start.sh
첫 실행 시 setup.sh는 안내 마법사를 실행합니다. OS를 감지하고 설치 프로필을 선택할 수 있게 하며, Python 환경을 설정하고, 필요 시 환경 변수와 PostgreSQL을 구성할 수 있습니다.
이후 실행 시에는 대화형 메뉴가 열립니다.
INTERCEPT Setup Menu
════════════════════════════════════════
1) Install / Add Modules
2) System Health Check
3) Database Setup (ADS-B History)
4) Update Tools
5) Environment Configurator
6) Uninstall / Cleanup
7) View Status
0) Exit
운영 서버 vs 개발 서버:
start.sh는 gunicorn + gevent를 자동 감지하여 협력 그린릿(cooperative greenlets)을 사용하는 운영 서버를 실행합니다. 여러 SSE/WebSocket 클라이언트를 차단 없이 처리합니다. gunicorn이 설치되지 않은 경우 Flask 개발 서버로 대체됩니다. 빠른 로컬 개발을 위해서는sudo -E venv/bin/python intercept.py를 직접 사용할 수도 있습니다.
마법사 또는 메뉴 옵션 1에서 설치할 항목을 선택하세요.
여러 프로필을 조합할 수 있습니다 (예: 1 3 입력 시 핵심 + 기상).
./setup.sh --non-interactive # 무인 전체 설치 (기존 동작과 동일)
./setup.sh --profile=core,weather # 특정 프로필 설치
./setup.sh --health-check # 시스템 상태 확인 후 종료
./setup.sh --postgres-setup # PostgreSQL 설정 후 종료
./setup.sh --menu # 대화형 메뉴 강제 실행
git clone https://github.com/smittix/intercept.git
cd intercept
docker compose --profile basic up -d --build
참고: Docker는 USB SDR 접근을 위해 권한 모드(privileged mode)가 필요합니다. SDR 장치는
/dev/bus/usb를 통해 전달됩니다.
다중 아키텍처 빌드(amd64 + arm64 for Raspberry Pi)는 build-multiarch.sh를 참조하세요. 크로스 컴파일과 레지스트리 푸시를 한 번에 처리합니다.
환경 구성기(메뉴 옵션 5)를 사용하여 INTERCEPT_* 변수를 대화형으로 설정할 수 있습니다. 설정은 .env 파일에 저장되며, start.sh가 시작 시 자동으로 불러옵니다.
.env를 수동으로 생성하거나 편집할 수도 있습니다.
# .env (start.sh에 의해 자동 로드)
INTERCEPT_PORT=5050
INTERCEPT_ADSB_AUTO_START=true
INTERCEPT_DEFAULT_LAT=51.5074
INTERCEPT_DEFAULT_LON=-0.1278
ADS‑B 기록 기능은 항공기 메시지를 PostgreSQL에 저장하여 장기 분석을 가능하게 합니다.
로컬 설치 시 자동 설정:
./setup.sh --postgres-setup
# 또는 메뉴 옵션 3: Database Setup 사용
필요 시 PostgreSQL을 설치하고, 데이터베이스/사용자/테이블을 생성하며, 연결 설정을 .env에 기록합니다.
Docker:
docker compose --profile history up -d
다음 환경 변수를 .env에 설정합니다.
INTERCEPT_ADSB_HISTORY_ENABLED=true
INTERCEPT_ADSB_DB_HOST=adsb_db
INTERCEPT_ADSB_DB_PORT=5432
INTERCEPT_ADSB_DB_NAME=intercept_adsb
INTERCEPT_ADSB_DB_USER=intercept
INTERCEPT_ADSB_DB_PASSWORD=intercept
Postgres 데이터를 외부 저장소에 저장하려면 PGDATA_PATH를 설정합니다 (기본값 ./pgdata).
PGDATA_PATH=/mnt/usbpi1/intercept/pgdata
그런 다음 보고 대시보드를 위해 /adsb/history를 여세요.
설치가 완료되고 정상 작동하는지 확인합니다.
./setup.sh --health-check
# 또는 메뉴 옵션 2 사용
설치된 도구, SDR 장치, 포트 가용성, 권한, Python 가상 환경, .env 설정, PostgreSQL 연결 등을 확인합니다.
시작한 후 브라우저에서 **http://localhost:5050**을 여세요.
기본 자격 증명: admin / admin — 애플리케이션을 네트워크에 노출하기 전에 config.py의 ADMIN_USERNAME / ADMIN_PASSWORD를 변경하세요.
대부분의 기능은 기본 RTL‑SDR 동글(RTL2832U + R820T2)로 작동합니다.
| ❗ RTL‑SDR 장치를 사용하지 않나요? |
|---|
| Intercept는 SoapySDR이 지원하는 모든 장치에서 작동합니다. 단, 장치에 맞는 모듈이 설치되어 있어야 합니다! 예를 들어 SDRPlay 장치가 있다면 soapysdr‑module‑sdrplay를 설치해야 합니다. |
| ❗ GPS 사용 |
|---|
| 실시간 위치를 위해서는 gpsd가 필요합니다. Intercept는 지도가 렌더링될 때 백그라운드에서 gpsd가 실행 중인지 자동으로 확인합니다. |
이 프로젝트는 AI를 코딩 파트너로 사용하여 개발되었습니다. 인간의 방향성과 AI 지원 구현이 결합되었습니다. 목표: 일반적인 SDR 도구를 위한 깔끔하고 통일된 인터페이스를 제공하여 소프트웨어 정의 라디오에 대한 접근성을 높이는 것입니다.
이 소프트웨어는 교육 및 승인된 테스트 목적으로만 사용하십시오.
Apache 2.0 라이선스 - LICENSE 참조
smittix - GitHub
rtl-sdr | multimon-ng | rtl_433 | dump1090 | AIS-catcher | acarsdec | direwolf | rtlamr | dumpvdl2 | aircrack-ng | Leaflet.js | SatDump | Celestrak | Priyom.org
| # | 프로필 | 도구 |
|---|
| 1 | 핵심 SIGINT | rtl_sdr, multimon‑ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd |
| 2 | 해양 및 라디오 | AIS‑catcher, direwolf |
| 3 | 기상 및 우주 | SatDump, radiosonde_auto_rx |
| 4 | RF 보안 | aircrack‑ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR |
| 5 | 전체 SIGINT | 위 모든 도구 |
| 6 | 사용자 정의 | 도구별 체크리스트 |
| 하드웨어 | 용도 | 가격 |
|---|
| RTL-SDR | 모든 SDR 기능에 필요 | ~$25–35 |
| WiFi 어댑터 | 무차별(모니터) 모드를 지원해야 함 | ~$20–40 |
| 블루투스 어댑터 | 장치 스캐닝 (보통 내장) | - |
| GPS | Linux에서 지원되는 모든 GPS 장치 | ~$10 |