Overview

Introduction to SkySpy, a real-time ADS-B aircraft tracking and monitoring system.

SkySpy is a real-time aircraft tracking platform that captures ADS-B position data from 1090MHz Mode S and 978MHz UAT receivers. It displays aircraft on an interactive map, monitors safety conditions, and provides custom alerts, weather integration, and push notifications.

SkySpy Demo

What You Can Do with SkySpy

Architecture

SkySpy consists of two main components that work together to provide real-time aircraft tracking:

%%{init: {'theme': 'dark', 'themeVariables': { 'primaryColor': '#1e3a5f', 'primaryTextColor': '#fff', 'primaryBorderColor': '#3b82f6', 'lineColor': '#60a5fa', 'secondaryColor': '#1e3a5f', 'tertiaryColor': '#1e3a5f'}}}%%
flowchart TB
    subgraph Receivers["๐Ÿ“ก Data Sources"]
        UF["๐Ÿ“ป Ultrafeeder<br/>1090MHz ADS-B"]
        D978["๐Ÿ“ป dump978<br/>978MHz UAT"]
        ACARS["๐Ÿ’ฌ ACARS/VDL2<br/>Decoder"]
    end

    subgraph External["๐ŸŒ External APIs"]
        OSN["๐Ÿ” OpenSky Network"]
        AWC["๐ŸŒฆ๏ธ Aviation Weather"]
        PS["๐Ÿ“ธ planespotters.net"]
    end

    subgraph Backend["โš™๏ธ Backend API"]
        direction TB
        API["๐Ÿš€ FastAPI Server"]
        SAFETY["๐Ÿ›ก๏ธ Safety Engine"]
        ALERTS["๐Ÿ”” Alert Engine"]
        DB[("๐Ÿ—„๏ธ PostgreSQL")]
        REDIS[("โšก Redis Pub/Sub")]
    end

    subgraph Frontend["๐Ÿ–ฅ๏ธ Web Dashboard"]
        REACT["โš›๏ธ React App"]
        MAP["๐Ÿ—บ๏ธ Canvas Radar"]
    end

    subgraph Notifications["๐Ÿ“ฌ Notifications"]
        APPRISE["๐Ÿ“ค Apprise"]
        PUSH["๐Ÿ“ฑ Pushover / Telegram<br/>Slack / Discord"]
    end

    UF --> API
    D978 --> API
    ACARS --> API
    OSN --> API
    AWC --> API
    PS --> API

    API --> SAFETY
    API --> ALERTS
    API --> DB
    API --> REDIS

    REDIS --> REACT
    API --> REACT
    REACT --> MAP

    ALERTS --> APPRISE
    SAFETY --> APPRISE
    APPRISE --> PUSH

    style Receivers fill:#0d4f8b,stroke:#3b82f6,stroke-width:2px,color:#fff
    style External fill:#7c4a03,stroke:#f59e0b,stroke-width:2px,color:#fff
    style Backend fill:#5b2168,stroke:#a855f7,stroke-width:2px,color:#fff
    style Frontend fill:#065f46,stroke:#10b981,stroke-width:2px,color:#fff
    style Notifications fill:#831843,stroke:#ec4899,stroke-width:2px,color:#fff
๐Ÿ“˜

Data Sources

SkySpy integrates with Ultrafeeder (readsb/dump1090) for ADS-B data, dump978 for UAT data, and external APIs like OpenSky Network and Aviation Weather Center for enriched metadata.

How It Works

%%{init: {'theme': 'dark', 'themeVariables': { 'primaryColor': '#3b82f6', 'primaryTextColor': '#fff', 'primaryBorderColor': '#60a5fa', 'lineColor': '#60a5fa', 'actorTextColor': '#fff', 'actorBkg': '#1e3a5f', 'actorBorder': '#3b82f6'}}}%%
sequenceDiagram
    participant R as ๐Ÿ“ก ADS-B Receiver
    participant A as ๐Ÿš€ SkySpy API
    participant S as ๐Ÿ›ก๏ธ Safety Engine
    participant D as ๐Ÿ—„๏ธ Database
    participant W as ๐Ÿ–ฅ๏ธ Web Dashboard
    participant N as ๐Ÿ“ฑ Notifications

    R->>A: โœˆ๏ธ Aircraft JSON (every 2s)
    A->>S: ๐Ÿ” Analyze traffic
    A->>D: ๐Ÿ’พ Store positions

    alt ๐Ÿšจ Safety Event Detected
        S->>A: โš ๏ธ Proximity/TCAS alert
        A->>N: ๐Ÿ”” Push notification
        A->>W: โšก Real-time event
    end

    A->>W: ๐Ÿ“ก SSE/Socket.IO stream
    W->>W: ๐Ÿ—บ๏ธ Update radar display

Key Features at a Glance

FeatureDescriptionLearn More
Live TrackingReal-time positions updated every 2 secondsReal-Time API
Safety MonitoringTCAS, proximity, and emergency detectionSafety & Alerts
Custom RulesFlexible AND/OR condition builderSafety & Alerts
Multi-ProtocolSSE and Socket.IO streaming optionsSSE API
Weather IntegrationMETARs, TAFs, PIREPs from AWCReal-Time API
Photo LookupAircraft photos via planespotters.netConfiguration

Next Steps