docs: Add Remote Agents documentation and updated screenshots

- Update dashboard screenshot to v2.10.0
- Add Remote Agents screenshot to docs gallery
- Add Remote Agents feature card to GitHub Pages
- Add navigation links to DISTRIBUTED_AGENTS.md
- Add Remote Agents section to FEATURES.md and USAGE.md
- Link distributed agents docs from main README

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-01-27 22:32:28 +00:00
parent 0cc4e49f45
commit 39714e38e4
7 changed files with 149 additions and 53 deletions
+2
View File
@@ -37,6 +37,7 @@ Support the developer of this open-source project
- **WiFi Scanning** - Monitor mode reconnaissance via aircrack-ng - **WiFi Scanning** - Monitor mode reconnaissance via aircrack-ng
- **Bluetooth Scanning** - Device discovery and tracker detection - **Bluetooth Scanning** - Device discovery and tracker detection
- **Spy Stations** - Number stations and diplomatic HF network database - **Spy Stations** - Number stations and diplomatic HF network database
- **Remote Agents** - Distributed SIGINT with remote sensor nodes
--- ---
@@ -114,6 +115,7 @@ Most features work with a basic RTL-SDR dongle (RTL2832U + R820T2).
## Documentation ## Documentation
- [Usage Guide](docs/USAGE.md) - Detailed instructions for each mode - [Usage Guide](docs/USAGE.md) - Detailed instructions for each mode
- [Distributed Agents](docs/DISTRIBUTED_AGENTS.md) - Remote sensor node deployment
- [Hardware Guide](docs/HARDWARE.md) - SDR hardware and advanced setup - [Hardware Guide](docs/HARDWARE.md) - SDR hardware and advanced setup
- [Troubleshooting](docs/TROUBLESHOOTING.md) - Common issues and solutions - [Troubleshooting](docs/TROUBLESHOOTING.md) - Common issues and solutions
- [Security](docs/SECURITY.md) - Network security and best practices - [Security](docs/SECURITY.md) - Network security and best practices
+45 -16
View File
@@ -38,22 +38,22 @@ Complete feature list for all modules.
- **Source links** - references to priyom.org for detailed information - **Source links** - references to priyom.org for detailed information
- **Famous stations** - UVB-76 "The Buzzer", Cuban HM01, Israeli E17z - **Famous stations** - UVB-76 "The Buzzer", Cuban HM01, Israeli E17z
## ADS-B Aircraft Tracking ## ADS-B Aircraft Tracking
- **Real-time aircraft tracking** via dump1090 or rtl_adsb - **Real-time aircraft tracking** via dump1090 or rtl_adsb
- **Full-screen dashboard** - dedicated popout with virtual radar scope - **Full-screen dashboard** - dedicated popout with virtual radar scope
- **Interactive Leaflet map** with OpenStreetMap tiles (dark-themed) - **Interactive Leaflet map** with OpenStreetMap tiles (dark-themed)
- **Aircraft trails** - optional flight path history visualization - **Aircraft trails** - optional flight path history visualization
- **Range rings** - distance reference circles from observer position - **Range rings** - distance reference circles from observer position
- **Aircraft filtering** - show all, military only, civil only, or emergency only - **Aircraft filtering** - show all, military only, civil only, or emergency only
- **Marker clustering** - group nearby aircraft at lower zoom levels - **Marker clustering** - group nearby aircraft at lower zoom levels
- **Reception statistics** - max range, message rate, busiest hour, total seen - **Reception statistics** - max range, message rate, busiest hour, total seen
- **Persistent ADS-B history** - optional Postgres-backed message and snapshot storage - **Persistent ADS-B history** - optional Postgres-backed message and snapshot storage
- **History reporting dashboard** - session controls, aircraft timelines, and detail modal - **History reporting dashboard** - session controls, aircraft timelines, and detail modal
- **Observer location** - manual input or GPS geolocation - **Observer location** - manual input or GPS geolocation
- **Audio alerts** - notifications for military and emergency aircraft - **Audio alerts** - notifications for military and emergency aircraft
- **Emergency squawk highlighting** - visual alerts for 7500/7600/7700 - **Emergency squawk highlighting** - visual alerts for 7500/7600/7700
- **Aircraft details popup** - callsign, altitude, speed, heading, squawk, ICAO - **Aircraft details popup** - callsign, altitude, speed, heading, squawk, ICAO
<p align="center"> <p align="center">
<img src="/static/images/screenshots/screenshot_radar.png" alt="Screenshot"> <img src="/static/images/screenshots/screenshot_radar.png" alt="Screenshot">
@@ -165,6 +165,35 @@ Technical Surveillance Countermeasures (TSCM) screening for detecting wireless s
- No cryptographic de-randomization - No cryptographic de-randomization
- Passive screening only (no active probing by default) - Passive screening only (no active probing by default)
## Remote Agents (Distributed SIGINT)
Deploy lightweight sensor nodes across multiple locations and aggregate data to a central controller.
### Architecture
- **Hub-and-spoke model** - Central controller with multiple remote agents
- **Push and Pull modes** - Agents can push data automatically or respond to on-demand requests
- **API key authentication** - Secure communication between agents and controller
### Agent Features
- **Standalone deployment** - Run on Raspberry Pi, mini PCs, or any Linux device with SDR
- **All modes supported** - Pager, sensor, ADS-B, AIS, WiFi, Bluetooth, and more
- **GPS integration** - Automatic location tagging from USB GPS receivers
- **Multi-SDR support** - Run multiple modes simultaneously on agents with multiple SDRs
- **Capability discovery** - Controller auto-detects available modes and devices
### Controller Features
- **Agent management UI** - Register, test, and remove agents from `/controller/manage`
- **Real-time status** - Health monitoring with online/offline indicators
- **Unified data stream** - Aggregate data from all agents via SSE
- **Dashboard integration** - Agent selector in ADS-B, AIS, and main dashboards
- **Device conflict detection** - Smart warnings when SDR is in use
### Use Cases
- **Wide-area monitoring** - Cover larger geographic areas with distributed sensors
- **Remote installations** - Deploy sensors in locations without direct access
- **Redundancy** - Multiple nodes for reliable coverage
- **Triangulation** - Use multiple GPS-enabled agents for signal location
## User Interface ## User Interface
- **Mode-specific header stats** - real-time badges showing key metrics per mode - **Mode-specific header stats** - real-time badges showing key metrics per mode
+88 -36
View File
@@ -74,42 +74,42 @@ INTERCEPT automatically detects known trackers:
### Emergency Squawks ### Emergency Squawks
The system highlights aircraft transmitting emergency squawks: The system highlights aircraft transmitting emergency squawks:
- **7500** - Hijack - **7500** - Hijack
- **7600** - Radio failure - **7600** - Radio failure
- **7700** - General emergency - **7700** - General emergency
## ADS-B History (Optional) ## ADS-B History (Optional)
The history dashboard persists aircraft messages and per-aircraft snapshots to Postgres for long-running tracking and reporting. The history dashboard persists aircraft messages and per-aircraft snapshots to Postgres for long-running tracking and reporting.
### Enable History ### Enable History
Set the following environment variables (Docker recommended): Set the following environment variables (Docker recommended):
| Variable | Default | Description | | Variable | Default | Description |
|----------|---------|-------------| |----------|---------|-------------|
| `INTERCEPT_ADSB_HISTORY_ENABLED` | `false` | Enables history storage and reporting | | `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_HOST` | `localhost` | Postgres host (use `adsb_db` in Docker) |
| `INTERCEPT_ADSB_DB_PORT` | `5432` | Postgres port | | `INTERCEPT_ADSB_DB_PORT` | `5432` | Postgres port |
| `INTERCEPT_ADSB_DB_NAME` | `intercept_adsb` | Database name | | `INTERCEPT_ADSB_DB_NAME` | `intercept_adsb` | Database name |
| `INTERCEPT_ADSB_DB_USER` | `intercept` | Database user | | `INTERCEPT_ADSB_DB_USER` | `intercept` | Database user |
| `INTERCEPT_ADSB_DB_PASSWORD` | `intercept` | Database password | | `INTERCEPT_ADSB_DB_PASSWORD` | `intercept` | Database password |
### Docker Setup ### Docker Setup
`docker-compose.yml` includes an `adsb_db` service and a persistent volume for history storage: `docker-compose.yml` includes an `adsb_db` service and a persistent volume for history storage:
```bash ```bash
docker compose up -d docker compose up -d
``` ```
### Using the History Dashboard ### Using the History Dashboard
1. Open **/adsb/history** 1. Open **/adsb/history**
2. Use **Start Tracking** to run ADS-B in headless mode 2. Use **Start Tracking** to run ADS-B in headless mode
3. View aircraft history and timelines 3. View aircraft history and timelines
4. Stop tracking when desired (session history is recorded) 4. Stop tracking when desired (session history is recorded)
## Satellite Mode ## Satellite Mode
@@ -130,6 +130,58 @@ docker compose up -d
3. Choose a category (Amateur, Weather, ISS, Starlink, etc.) 3. Choose a category (Amateur, Weather, ISS, Starlink, etc.)
4. Select satellites to add 4. 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
1. **Install INTERCEPT** on the remote machine
2. **Create config file** (`intercept_agent.cfg`):
```ini
[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
```
3. **Start the agent**:
```bash
python intercept_agent.py --config intercept_agent.cfg
```
### Registering Agents in the Controller
1. Navigate to `/controller/manage` in the main INTERCEPT instance
2. 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
3. Click "Register Agent"
4. Use "Test" to verify connectivity
### Using Remote Agents
Once registered, agents appear in mode dropdowns:
1. **Select agent** from the dropdown in supported modes
2. **Start mode** - Commands are proxied to the remote agent
3. **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](DISTRIBUTED_AGENTS.md).
## Configuration ## Configuration
INTERCEPT can be configured via environment variables: INTERCEPT can be configured via environment variables:
+1
View File
@@ -15,3 +15,4 @@ exclude:
- USAGE.md - USAGE.md
- FEATURES.md - FEATURES.md
- HARDWARE.md - HARDWARE.md
- DISTRIBUTED_AGENTS.md
Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 KiB

After

Width:  |  Height:  |  Size: 645 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

+13 -1
View File
@@ -18,6 +18,7 @@
<a href="#features">Features</a> <a href="#features">Features</a>
<a href="#screenshots">Screenshots</a> <a href="#screenshots">Screenshots</a>
<a href="#installation">Install</a> <a href="#installation">Install</a>
<a href="https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md">Remote Agents</a>
<a href="https://github.com/smittix/intercept" class="nav-btn" target="_blank">GitHub</a> <a href="https://github.com/smittix/intercept" class="nav-btn" target="_blank">GitHub</a>
</div> </div>
</div> </div>
@@ -123,6 +124,12 @@
<h3>Spy Stations</h3> <h3>Spy Stations</h3>
<p>Number stations and diplomatic HF network database. Frequencies, schedules, and background info from priyom.org.</p> <p>Number stations and diplomatic HF network database. Frequencies, schedules, and background info from priyom.org.</p>
</div> </div>
<div class="feature-card">
<div class="feature-icon">🌐</div>
<h3>Remote Agents</h3>
<p>Distributed signal intelligence with remote sensor nodes. Deploy agents across multiple locations and aggregate data to a central controller.</p>
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -161,6 +168,10 @@
<img src="images/tscm-detail.png" alt="Device Detail Dialog"> <img src="images/tscm-detail.png" alt="Device Detail Dialog">
<span class="screenshot-label">Device Analysis</span> <span class="screenshot-label">Device Analysis</span>
</div> </div>
<div class="screenshot-item">
<img src="images/remote-agents.png" alt="Remote Agents Management">
<span class="screenshot-label">Remote Agents</span>
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -255,7 +266,8 @@ docker compose up -d</code></pre>
<div class="footer-links"> <div class="footer-links">
<a href="https://github.com/smittix/intercept" target="_blank">GitHub</a> <a href="https://github.com/smittix/intercept" target="_blank">GitHub</a>
<a href="https://discord.gg/EyeksEJmWE" target="_blank">Discord</a> <a href="https://discord.gg/EyeksEJmWE" target="_blank">Discord</a>
<a href="USAGE.html">Documentation</a> <a href="https://github.com/smittix/intercept/blob/main/docs/USAGE.md">Documentation</a>
<a href="https://github.com/smittix/intercept/blob/main/docs/DISTRIBUTED_AGENTS.md">Remote Agents</a>
</div> </div>
</div> </div>
<div class="footer-bottom"> <div class="footer-bottom">