8.2 KiB
INTERCEPT Usage Guide
Detailed instructions for each mode.
Pager Mode
- Select Hardware - Choose your SDR type (RTL-SDR, LimeSDR, or HackRF)
- Select Device - Choose your SDR device from the dropdown
- Set Frequency - Enter a frequency in MHz or use a preset
- Choose Protocols - Select which protocols to decode (POCSAG/FLEX)
- Adjust Settings - Set gain, squelch, and PPM correction as needed
- Start Decoding - Click the green "Start Decoding" button
Frequency Presets
- Click a preset button to quickly set a frequency
- Add custom presets using the input field and "Add" button
- Right-click a preset to remove it
- Click "Reset to Defaults" to restore default frequencies
433MHz Sensor Mode
- Select Hardware - Choose your SDR type
- Select Device - Choose your SDR device
- Start Decoding - Click "Start Decoding"
- View Sensors - Decoded sensor data appears in real-time
Supports 200+ protocols including weather stations, TPMS, doorbells, and IoT devices.
WiFi Mode
- Select Interface - Choose a WiFi adapter capable of monitor mode
- Enable Monitor Mode - Click "Enable Monitor" (uncheck "Kill processes" to preserve other connections)
- Start Scanning - Click "Start Scanning" to begin
- View Networks - Networks appear in the output panel with signal strength
- Track Devices - Click the chart icon on any network to track its signal over time
- Capture Handshakes - Click "Capture" on a network to start handshake capture
Tips
- Run with
sudofor monitor mode to work - Check your adapter supports monitor mode:
iw list | grep monitor - Use "Kill processes" option if NetworkManager interferes
Bluetooth Mode
- Select Interface - Choose your Bluetooth adapter
- Choose Mode - Select scan mode (hcitool, bluetoothctl)
- Start Scanning - Click "Start Scanning"
- View Devices - Devices appear with name, address, and classification
Tracker Detection
INTERCEPT automatically detects known trackers:
- Apple AirTag
- Tile
- Samsung SmartTag
- Chipolo
Aircraft Mode (ADS-B)
- Select Hardware - Choose your SDR type (RTL-SDR uses dump1090, others use readsb)
- Check Tools - Ensure dump1090 or readsb is installed
- Set Location - Choose location source:
- Manual Entry - Type coordinates directly
- Browser GPS - Use browser's built-in geolocation (requires HTTPS)
- USB GPS Dongle - Connect a USB GPS receiver for continuous updates
- Shared Location - By default, the observer location is shared across modules
(disable with
INTERCEPT_SHARED_OBSERVER_LOCATION=false)
- Start Tracking - Click "Start Tracking" to begin ADS-B reception
- View Map - Aircraft appear on the interactive Leaflet map
- Click Aircraft - Click markers for detailed information
- Display Options - Toggle callsigns, altitude, trails, range rings, clustering
- Filter Aircraft - Use dropdown to show all, military, civil, or emergency only
- Full Dashboard - Click "Full Screen Dashboard" for dedicated radar view
Note: ADS-B auto-start is disabled by default. To enable auto-start on dashboard load, set
INTERCEPT_ADSB_AUTO_START=true.
Emergency Squawks
The system highlights aircraft transmitting emergency squawks:
- 7500 - Hijack
- 7600 - Radio failure
- 7700 - General emergency
ADS-B History (Optional)
The history dashboard persists aircraft messages and per-aircraft snapshots to Postgres for long-running tracking and reporting.
Enable History
Set the following environment variables (Docker recommended):
| Variable | Default | Description |
|---|---|---|
INTERCEPT_ADSB_HISTORY_ENABLED |
false |
Enables history storage and reporting |
INTERCEPT_ADSB_DB_HOST |
localhost |
Postgres host (use adsb_db in Docker) |
INTERCEPT_ADSB_DB_PORT |
5432 |
Postgres port |
INTERCEPT_ADSB_DB_NAME |
intercept_adsb |
Database name |
INTERCEPT_ADSB_DB_USER |
intercept |
Database user |
INTERCEPT_ADSB_DB_PASSWORD |
intercept |
Database password |
Other ADS-B Settings
| Variable | Default | Description |
|---|---|---|
INTERCEPT_ADSB_AUTO_START |
false |
Auto-start ADS-B tracking when the dashboard loads |
INTERCEPT_SHARED_OBSERVER_LOCATION |
true |
Share observer location across ADS-B/AIS/SSTV/Satellite modules |
Local install example
INTERCEPT_ADSB_AUTO_START=true \
INTERCEPT_SHARED_OBSERVER_LOCATION=false \
python app.py
Docker example (.env)
INTERCEPT_ADSB_AUTO_START=true
INTERCEPT_SHARED_OBSERVER_LOCATION=false
Docker Setup
docker-compose.yml includes an adsb_db service and a persistent volume for history storage:
docker compose --profile history up -d
To store Postgres data on external storage, set PGDATA_PATH (defaults to ./pgdata):
PGDATA_PATH=/mnt/usbpi1/intercept/pgdata
Using the History Dashboard
- Open /adsb/history
- Use Start Tracking to run ADS-B in headless mode
- View aircraft history and timelines
- Stop tracking when desired (session history is recorded)
Satellite Mode
- Set Location - Choose location source:
- Manual Entry - Type coordinates directly
- Browser GPS - Use browser's built-in geolocation
- USB GPS Dongle - Connect a USB GPS receiver for continuous updates
- Add Satellites - Click "Add Satellite" to enter TLE data or fetch from Celestrak
- Calculate Passes - Click "Calculate Passes" to predict upcoming passes
- View Sky Plot - Polar plot shows satellite positions in real-time
- Ground Track - Map displays satellite orbit path and current position
- Full Dashboard - Click "Full Screen Dashboard" for dedicated satellite view
Adding Satellites from Celestrak
- Click "Add Satellite"
- Select "Fetch from Celestrak"
- Choose a category (Amateur, Weather, ISS, Starlink, etc.)
- Select satellites to add
Remote Agents (Distributed SIGINT)
Deploy lightweight sensor nodes across multiple locations and aggregate data to a central controller.
Setting Up an Agent
- Install INTERCEPT on the remote machine
- Create config file (
intercept_agent.cfg):[agent] name = sensor-node-1 port = 8020 [controller] url = http://192.168.1.100:5050 api_key = your-secret-key push_enabled = true [modes] pager = true sensor = true adsb = true - Start the agent:
python intercept_agent.py --config intercept_agent.cfg
Registering Agents in the Controller
- Navigate to
/controller/managein the main INTERCEPT instance - Enter agent details:
- Name: Must match config file (e.g.,
sensor-node-1) - Base URL: Agent address (e.g.,
http://192.168.1.50:8020) - API Key: Must match config file
- Name: Must match config file (e.g.,
- Click "Register Agent"
- Use "Test" to verify connectivity
Using Remote Agents
Once registered, agents appear in mode dropdowns:
- Select agent from the dropdown in supported modes
- Start mode - Commands are proxied to the remote agent
- View data - Data streams back to your browser via SSE
Multi-Agent Streaming
Enable "Show All Agents" to aggregate data from all registered agents simultaneously.
For complete documentation, see Distributed Agents Guide.
Configuration
INTERCEPT can be configured via environment variables:
| Variable | Default | Description |
|---|---|---|
INTERCEPT_HOST |
0.0.0.0 |
Server bind address |
INTERCEPT_PORT |
5050 |
Server port |
INTERCEPT_DEBUG |
false |
Enable debug mode |
INTERCEPT_LOG_LEVEL |
WARNING |
Log level (DEBUG, INFO, WARNING, ERROR) |
INTERCEPT_DEFAULT_GAIN |
40 |
Default RTL-SDR gain |
Example: INTERCEPT_PORT=8080 sudo -E venv/bin/python intercept.py
Command-line Options
python3 intercept.py --help
-p, --port PORT Port to run server on (default: 5050)
-H, --host HOST Host to bind to (default: 0.0.0.0)
-d, --debug Enable debug mode
--check-deps Check dependencies and exit