diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..c5f3519 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,17 @@ +title: INTERCEPT +description: Signal Intelligence Platform - A web-based interface for software-defined radio tools +url: https://smittix.github.io +baseurl: /intercept + +# Build settings +include: + - _headers + +# Exclude files from build +exclude: + - README.md + - SECURITY.md + - TROUBLESHOOTING.md + - USAGE.md + - FEATURES.md + - HARDWARE.md diff --git a/docs/images/intercept-main.png b/docs/images/intercept-main.png new file mode 100644 index 0000000..4abe043 Binary files /dev/null and b/docs/images/intercept-main.png differ diff --git a/docs/images/screenshot_radar.png b/docs/images/screenshot_radar.png new file mode 100644 index 0000000..dea4b1f Binary files /dev/null and b/docs/images/screenshot_radar.png differ diff --git a/docs/images/screenshot_sat.png b/docs/images/screenshot_sat.png new file mode 100644 index 0000000..f53c22c Binary files /dev/null and b/docs/images/screenshot_sat.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..cd6b0fd --- /dev/null +++ b/docs/index.html @@ -0,0 +1,230 @@ + + + + + + INTERCEPT - Signal Intelligence Platform + + + + + + + + + +
+
+
Open Source SIGINT Platform
+

INTERCEPT

+

A unified web interface for software-defined radio tools. Monitor pagers, track aircraft, scan WiFi networks, and more โ€” all from your browser.

+ +
+
+ 8+ + SDR Modes +
+
+ 200+ + Protocols +
+
+ $25 + Min Hardware +
+
+
+
+ INTERCEPT Dashboard +
+
+ +
+
+

Capabilities

+

Everything you need for signal intelligence in one interface

+ +
+
+
๐Ÿ“Ÿ
+

Pager Decoding

+

Decode POCSAG and FLEX pager messages using rtl_fm and multimon-ng. Monitor emergency services and legacy paging systems.

+
+ +
+
โœˆ๏ธ
+

Aircraft Tracking

+

Real-time ADS-B tracking with interactive maps, aircraft photos, emergency squawk detection, and range visualization.

+
+ +
+
๐Ÿ“ก
+

433MHz Sensors

+

Decode 200+ protocols including weather stations, TPMS, smart home devices, and IoT sensors via rtl_433.

+
+ +
+
๐Ÿ“ป
+

Listening Post

+

Frequency scanner with real-time audio monitoring, fine-tuning controls, and customizable frequency presets.

+
+ +
+
๐Ÿ›ฐ๏ธ
+

Satellite Tracking

+

Track satellites with TLE data, sky plots, ground track visualization, and pass predictions for your location.

+
+ +
+
๐Ÿ“ถ
+

WiFi Scanning

+

Monitor mode reconnaissance via aircrack-ng. Network discovery, client tracking, and handshake capture.

+
+ +
+
๐Ÿ”ต
+

Bluetooth Scanning

+

Device discovery with tracker detection for AirTags, Tile, Samsung SmartTag, and other Bluetooth devices.

+
+ +
+
๐Ÿ›ก๏ธ
+

TSCM

+

Counter-surveillance with baseline recording, threat detection, device correlation, and risk scoring.

+
+
+
+
+ +
+
+

See It In Action

+

A clean, modern interface for complex RF operations

+ +
+
+ Main Dashboard + Dashboard +
+
+ Aircraft Radar + Aircraft Radar +
+
+ Satellite Tracking + Satellite Tracking +
+
+
+
+ +
+
+

Quick Start

+

Get up and running in minutes

+ +
+
+

Standard Installation

+
+
git clone https://github.com/smittix/intercept.git
+cd intercept
+./setup.sh
+sudo -E venv/bin/python intercept.py
+
+

Requires Python 3.9+ and RTL-SDR drivers

+
+ +
+

Docker

+
+
git clone https://github.com/smittix/intercept.git
+cd intercept
+docker compose up -d
+
+

Requires privileged mode for USB SDR access

+
+
+ +
+

After starting, open http://localhost:5050 in your browser.

+

Default credentials: admin / admin

+
+
+
+ +
+
+

Hardware

+

Minimal hardware, maximum capability

+ +
+
+
Required
+

RTL-SDR

+

Core SDR functionality for all radio features

+ ~$25-35 +
+
+
Optional
+

WiFi Adapter

+

Monitor mode support for WiFi scanning

+ ~$20-40 +
+
+
Optional
+

GPS Receiver

+

Real-time location for mapping features

+ ~$10 +
+
+ +

INTERCEPT also supports HackRF, LimeSDR, Airspy, and SDRplay via SoapySDR

+
+
+ +
+
+

Ready to start intercepting?

+

Join the community and start exploring the RF spectrum

+ +
+
+ + + + diff --git a/docs/style.css b/docs/style.css new file mode 100644 index 0000000..c45e156 --- /dev/null +++ b/docs/style.css @@ -0,0 +1,629 @@ +/* INTERCEPT GitHub Pages - Dark Theme */ + +:root { + --bg-primary: #0a0a0f; + --bg-secondary: #12121a; + --bg-card: #1a1a24; + --bg-card-hover: #22222e; + --text-primary: #f0f0f5; + --text-secondary: #8888a0; + --text-muted: #5c5c70; + --accent: #00d4aa; + --accent-hover: #00f0c0; + --accent-glow: rgba(0, 212, 170, 0.2); + --border: #2a2a38; + --code-bg: #0d0d14; + --gradient-start: #00d4aa; + --gradient-end: #0088ff; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; + background: var(--bg-primary); + color: var(--text-primary); + line-height: 1.6; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 24px; +} + +/* Navigation */ +.navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + background: rgba(10, 10, 15, 0.9); + backdrop-filter: blur(12px); + border-bottom: 1px solid var(--border); +} + +.nav-container { + max-width: 1200px; + margin: 0 auto; + padding: 16px 24px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo { + font-family: 'JetBrains Mono', monospace; + font-size: 1.25rem; + font-weight: 600; + color: var(--accent); + text-decoration: none; + letter-spacing: 2px; +} + +.nav-links { + display: flex; + align-items: center; + gap: 32px; +} + +.nav-links a { + color: var(--text-secondary); + text-decoration: none; + font-size: 0.9rem; + font-weight: 500; + transition: color 0.2s; +} + +.nav-links a:hover { + color: var(--text-primary); +} + +.nav-btn { + background: var(--accent); + color: var(--bg-primary) !important; + padding: 8px 20px; + border-radius: 6px; + font-weight: 600; +} + +.nav-btn:hover { + background: var(--accent-hover); +} + +/* Hero */ +.hero { + min-height: 100vh; + display: grid; + grid-template-columns: 1fr 1fr; + align-items: center; + gap: 60px; + padding: 120px 24px 80px; + max-width: 1400px; + margin: 0 auto; +} + +.hero-badge { + display: inline-block; + font-family: 'JetBrains Mono', monospace; + font-size: 0.75rem; + color: var(--accent); + background: var(--accent-glow); + padding: 6px 14px; + border-radius: 20px; + border: 1px solid var(--accent); + margin-bottom: 24px; + letter-spacing: 1px; + text-transform: uppercase; +} + +.hero h1 { + font-family: 'JetBrains Mono', monospace; + font-size: 4.5rem; + font-weight: 700; + letter-spacing: 8px; + margin-bottom: 24px; + background: linear-gradient(135deg, var(--gradient-start), var(--gradient-end)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-subtitle { + font-size: 1.25rem; + color: var(--text-secondary); + margin-bottom: 40px; + max-width: 500px; + line-height: 1.8; +} + +.hero-buttons { + display: flex; + gap: 16px; + margin-bottom: 60px; +} + +.btn { + display: inline-block; + padding: 14px 32px; + border-radius: 8px; + font-weight: 600; + text-decoration: none; + transition: all 0.2s; + font-size: 0.95rem; +} + +.btn-primary { + background: var(--accent); + color: var(--bg-primary); +} + +.btn-primary:hover { + background: var(--accent-hover); + transform: translateY(-2px); + box-shadow: 0 8px 30px var(--accent-glow); +} + +.btn-secondary { + background: transparent; + color: var(--text-primary); + border: 1px solid var(--border); +} + +.btn-secondary:hover { + border-color: var(--text-secondary); + background: var(--bg-card); +} + +.hero-stats { + display: flex; + gap: 48px; +} + +.stat { + display: flex; + flex-direction: column; +} + +.stat-value { + font-family: 'JetBrains Mono', monospace; + font-size: 2rem; + font-weight: 600; + color: var(--accent); +} + +.stat-label { + font-size: 0.85rem; + color: var(--text-muted); + text-transform: uppercase; + letter-spacing: 1px; +} + +.hero-image { + position: relative; +} + +.hero-image img { + width: 100%; + border-radius: 12px; + border: 1px solid var(--border); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); +} + +/* Sections */ +section { + padding: 100px 0; +} + +section h2 { + font-family: 'JetBrains Mono', monospace; + font-size: 2.5rem; + font-weight: 600; + text-align: center; + margin-bottom: 16px; + letter-spacing: 2px; +} + +.section-subtitle { + text-align: center; + color: var(--text-secondary); + font-size: 1.1rem; + margin-bottom: 60px; +} + +/* Features */ +.features { + background: var(--bg-secondary); +} + +.features-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 24px; +} + +.feature-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 12px; + padding: 32px 24px; + transition: all 0.3s; +} + +.feature-card:hover { + background: var(--bg-card-hover); + border-color: var(--accent); + transform: translateY(-4px); +} + +.feature-icon { + font-size: 2rem; + margin-bottom: 16px; +} + +.feature-card h3 { + font-size: 1.1rem; + font-weight: 600; + margin-bottom: 12px; + color: var(--text-primary); +} + +.feature-card p { + font-size: 0.9rem; + color: var(--text-secondary); + line-height: 1.7; +} + +/* Screenshots */ +.screenshot-grid { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + gap: 24px; +} + +.screenshot-card { + position: relative; + border-radius: 12px; + overflow: hidden; + border: 1px solid var(--border); + transition: all 0.3s; +} + +.screenshot-card:hover { + border-color: var(--accent); + transform: scale(1.02); +} + +.screenshot-card.main { + grid-row: span 2; +} + +.screenshot-card img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +.screenshot-label { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 12px 16px; + background: linear-gradient(transparent, rgba(0, 0, 0, 0.8)); + font-size: 0.85rem; + color: var(--text-primary); + font-weight: 500; +} + +/* Installation */ +.installation { + background: var(--bg-secondary); +} + +.install-options { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 32px; + margin-bottom: 48px; +} + +.install-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 12px; + padding: 32px; +} + +.install-card h3 { + font-size: 1.2rem; + margin-bottom: 20px; + color: var(--text-primary); +} + +.code-block { + background: var(--code-bg); + border-radius: 8px; + padding: 20px; + overflow-x: auto; + margin-bottom: 16px; +} + +.code-block pre { + margin: 0; +} + +.code-block code { + font-family: 'JetBrains Mono', monospace; + font-size: 0.85rem; + color: var(--accent); + line-height: 1.8; +} + +.install-note { + font-size: 0.85rem; + color: var(--text-muted); +} + +.post-install { + text-align: center; + padding: 32px; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 12px; +} + +.post-install p { + margin-bottom: 8px; + color: var(--text-secondary); +} + +.post-install code { + font-family: 'JetBrains Mono', monospace; + background: var(--code-bg); + padding: 4px 10px; + border-radius: 4px; + color: var(--accent); +} + +/* Hardware */ +.hardware-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 24px; + margin-bottom: 32px; +} + +.hardware-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: 12px; + padding: 32px; + text-align: center; + position: relative; +} + +.hardware-tag { + position: absolute; + top: 16px; + right: 16px; + font-size: 0.7rem; + padding: 4px 10px; + border-radius: 12px; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 600; +} + +.hardware-card.required .hardware-tag { + background: var(--accent-glow); + color: var(--accent); + border: 1px solid var(--accent); +} + +.hardware-card.optional .hardware-tag { + background: rgba(136, 136, 160, 0.1); + color: var(--text-secondary); + border: 1px solid var(--border); +} + +.hardware-card h3 { + font-size: 1.2rem; + margin-bottom: 12px; + margin-top: 8px; +} + +.hardware-card p { + font-size: 0.9rem; + color: var(--text-secondary); + margin-bottom: 16px; +} + +.hardware-card .price { + font-family: 'JetBrains Mono', monospace; + font-size: 1.5rem; + color: var(--accent); + font-weight: 600; +} + +.hardware-note { + text-align: center; + color: var(--text-muted); + font-size: 0.9rem; +} + +/* CTA */ +.cta { + background: linear-gradient(135deg, rgba(0, 212, 170, 0.1), rgba(0, 136, 255, 0.1)); + text-align: center; + border-top: 1px solid var(--border); + border-bottom: 1px solid var(--border); +} + +.cta h2 { + margin-bottom: 16px; +} + +.cta p { + color: var(--text-secondary); + margin-bottom: 32px; +} + +.cta-buttons { + display: flex; + justify-content: center; + gap: 16px; +} + +/* Footer */ +.footer { + background: var(--bg-secondary); + padding: 60px 0 32px; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 32px; + border-bottom: 1px solid var(--border); + margin-bottom: 32px; +} + +.footer-logo { + font-family: 'JetBrains Mono', monospace; + font-size: 1.25rem; + font-weight: 600; + color: var(--accent); + letter-spacing: 2px; +} + +.footer-brand p { + color: var(--text-muted); + font-size: 0.9rem; + margin-top: 8px; +} + +.footer-links { + display: flex; + gap: 32px; +} + +.footer-links a { + color: var(--text-secondary); + text-decoration: none; + font-size: 0.9rem; + transition: color 0.2s; +} + +.footer-links a:hover { + color: var(--accent); +} + +.footer-bottom { + text-align: center; +} + +.footer-bottom p { + color: var(--text-muted); + font-size: 0.85rem; + margin-bottom: 8px; +} + +.footer-bottom a { + color: var(--accent); + text-decoration: none; +} + +.disclaimer { + font-style: italic; + opacity: 0.7; +} + +/* Responsive */ +@media (max-width: 1024px) { + .hero { + grid-template-columns: 1fr; + text-align: center; + padding-top: 100px; + } + + .hero-subtitle { + max-width: 100%; + } + + .hero-buttons { + justify-content: center; + } + + .hero-stats { + justify-content: center; + } + + .hero-image { + order: -1; + max-width: 600px; + margin: 0 auto; + } + + .features-grid { + grid-template-columns: repeat(2, 1fr); + } + + .screenshot-grid { + grid-template-columns: 1fr; + } + + .screenshot-card.main { + grid-row: auto; + } + + .install-options { + grid-template-columns: 1fr; + } + + .hardware-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 640px) { + .hero h1 { + font-size: 2.5rem; + letter-spacing: 4px; + } + + .hero-stats { + flex-direction: column; + gap: 24px; + } + + .features-grid { + grid-template-columns: 1fr; + } + + .nav-links { + display: none; + } + + .footer-content { + flex-direction: column; + gap: 24px; + text-align: center; + } + + .cta-buttons { + flex-direction: column; + align-items: center; + } +}