
iNTERCEPT, a free and open-source platform that unites the best signal intelligence tools into a single, accessible interface.
Soutenez le développeur de ce projet open-source
Plateforme de renseignement sur les signaux
Une interface web pour les outils de radio logicielle.
git clone https://github.com/smittix/intercept.git
cd intercept
./setup.sh # Menu interactif (premier lancement : assistant de configuration)
sudo ./start.sh
Lors du premier lancement, setup.sh exécute un assistant guidé qui détecte votre OS, vous permet de choisir des profils d'installation, configure l'environnement Python et, optionnellement, les variables d'environnement et PostgreSQL.
Lors des lancements ultérieurs, il ouvre un menu interactif :
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
Serveur de production vs développement :
start.shdétecte automatiquement gunicorn + gevent et lance un serveur de production avec greenlets coopératifs — gère plusieurs clients SSE/WebSocket sans blocage. Repli sur le serveur de développement Flask si gunicorn n'est pas installé. Pour un développement local rapide, vous pouvez toujours utilisersudo -E venv/bin/python intercept.pydirectement.
Choisissez ce qu'il faut installer pendant l'assistant ou via l'option de menu 1 :
Plusieurs profils peuvent être combinés (ex. entrez 1 3 pour Core + Météo).
./setup.sh --non-interactive # Installation complète sans interaction (identique au comportement précédent)
./setup.sh --profile=core,weather # Installer des profils spécifiques
./setup.sh --health-check # Vérifier l'état du système et quitter
./setup.sh --postgres-setup # Exécuter la configuration PostgreSQL et quitter
./setup.sh --menu # Forcer le menu interactif
git clone https://github.com/smittix/intercept.git
cd intercept
docker compose --profile basic up -d --build
Remarque : Docker nécessite le mode privilégié pour l'accès USB aux SDR. Les périphériques SDR sont passés via
/dev/bus/usb.
Pour les constructions multi-architecture (amd64 + arm64 pour Raspberry Pi), consultez build-multiarch.sh — il gère la compilation croisée et le push vers le registre en une seule étape.
Utilisez le Configurateur d'environnement (option de menu 5) pour définir interactivement toute variable INTERCEPT_*. Les paramètres sont sauvegardés dans un fichier .env que start.sh charge automatiquement au démarrage.
Vous pouvez aussi créer ou modifier .env manuellement :
# .env (auto-chargé par start.sh)
INTERCEPT_PORT=5050
INTERCEPT_ADSB_AUTO_START=true
INTERCEPT_DEFAULT_LAT=51.5074
INTERCEPT_DEFAULT_LON=-0.1278
La fonctionnalité d'historique ADS-B conserve les messages des aéronefs dans PostgreSQL pour une analyse à long terme.
Configuration automatisée (installation locale) :
./setup.sh --postgres-setup
# Ou utilisez l'option de menu 3 : Database Setup
Cela installera PostgreSQL si nécessaire, créera la base de données/utilisateur/tables et écrira les paramètres de connexion dans .env.
Docker :
docker compose --profile history up -d
Définissez les variables d'environnement suivantes (dans .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
Pour stocker les données Postgres sur un stockage externe, définissez PGDATA_PATH (par défaut ./pgdata) :
PGDATA_PATH=/mnt/usbpi1/intercept/pgdata
Ouvrez ensuite /adsb/history pour le tableau de bord de reporting.
Vérifiez que votre installation est complète et fonctionne :
./setup.sh --health-check
# Ou utilisez l'option de menu 2
Vérifie les outils installés, les périphériques SDR, la disponibilité des ports, les permissions, l'environnement virtuel Python, la configuration .env et la connectivité PostgreSQL.
Après le démarrage, ouvrez http://localhost:5050 dans votre navigateur.
Identifiants par défaut : admin / admin — modifiez-les dans config.py (ADMIN_USERNAME / ADMIN_PASSWORD) avant d'exposer l'application sur un réseau.
La plupart des fonctionnalités fonctionnent avec un dongle RTL-SDR de base (RTL2832U + R820T2).
| ❗ Vous n'utilisez pas un périphérique RTL-SDR ? |
|---|
| Intercept supporte tout périphérique pris en charge par SoapySDR. Vous devez cependant avoir le module approprié pour votre périphérique installé ! Par exemple, si vous avez un périphérique SDRPlay, vous devez installer soapysdr-module-sdrplay. |
| ❗ Utilisation du GPS |
|---|
| gpsd est nécessaire pour la localisation en temps réel. Intercept vérifie automatiquement si gpsd tourne en arrière-plan lorsqu'une carte est affichée. |
Ce projet a été développé en utilisant l'IA comme partenaire de codage, combinant la direction humaine avec une implémentation assistée par IA. L'objectif : rendre la radio logicielle plus accessible en fournissant une interface propre et unifiée pour les outils SDR courants.
Ce logiciel est destiné uniquement à des fins éducatives et de test autorisé.
Licence Apache 2.0 - voir LICENSE
Créé par smittix - GitHub
rtl-sdr | multimon-ng | rtl_433 | dump1090 | AIS-catcher | acarsdec | direwolf | rtlamr | dumpvdl2 | aircrack-ng | Leaflet.js | SatDump | Celestrak | Priyom.org
| # | Profil | Outils |
|---|
| 1 | SIGINT de base | rtl_sdr, multimon-ng, rtl_433, dump1090, acarsdec, dumpvdl2, ffmpeg, gpsd |
| 2 | Maritime et Radio | AIS-catcher, direwolf |
| 3 | Météo et Espace | SatDump, radiosonde_auto_rx |
| 4 | Sécurité RF | aircrack-ng, HackRF, BlueZ, hcxtools, Ubertooth, SoapySDR |
| 5 | SIGINT complet | Tous les outils ci-dessus |
| 6 | Personnalisé | Liste de sélection par outil |
| Matériel | Objectif | Prix |
|---|
| RTL-SDR | Requis pour toutes les fonctionnalités SDR | ~25-35 $ |
| Adaptateur WiFi | Doit supporter le mode promiscuité (monitor) | ~20-40 $ |
| Adaptateur Bluetooth | Scan de périphériques (généralement intégré) | - |
| GPS | Tout module GPS supporté par Linux | ~10 $ |