Building a Local ADS-B Plane Tracker
This past weekend I built a fully self-hosted ADS-B plane tracking system that monitors aircraft flying over my house in real time — no third party APIs for flight position data, no rate limits, no filtering. All position tracking runs locally on my Proxmox homelab using a cheap RTL-SDR dongle and a rooftop antenna.
📡 How It Works
Aircraft broadcast their position, altitude, speed, heading and identity on 1090MHz continuously. An RTL-SDR V3 dongle picks up these signals through a dual band outdoor fiberglass antenna mounted on my downspout, and dump1090-mutability decodes them into readable aircraft data updated every second.
🗺️ Web Interface
tar1090 serves a modern ADS-B Exchange style map showing all aircraft in real time. My receiver location and range circles are overlaid on the map, giving a clear picture of local coverage. The whole thing is embedded directly in my Home Assistant dashboard on a dedicated Radar tab.
🤖 Discord Integration
Every 10 seconds my Discord bot Zarka polls the local dump1090 JSON feed. When a plane enters my 4 mile radius it posts a full embed including:
- Flight number, airline and aircraft type (Boeing 737, Airbus A321, etc.)
- Altitude, speed, heading and vertical rate
- Squawk code with emergency detection
- Distance and bearing from my house
- A photo of the actual aircraft from planespotters.net
- A Mapbox dark mode static map with the flight path trail
Military aircraft get a special red embed and a direct ping.
🔊 Home Assistant Integration
When a plane is under 5,000ft and within 3.5 miles my Google Nest Mini announces it via local Piper TTS — the airline name, altitude, and which direction it’s approaching from. Only fires between 8am and 11pm so it doesn’t wake anyone up.
✈️ Notable Catches
Some highlights from the first few days of running:
- Kuwait Air Force C-17 Globemaster — transatlantic flight from the UK to Charleston AFB, tracked from over my house
- Rhode Island ANG C-130J Super Hercules — RHODY callsign out of Quonset
- Massachusetts ANG UH-60 Black Hawk — BOSOX callsign, named after the Red Sox
- Connecticut ANG CH-47 Chinooks — NOMAD callsign, regularly flying out of Bradley ANGB
- Turkish Airlines, Aer Lingus and various transatlantic flights on the northeast corridor
🛠️ Stack
- RTL-SDR V3 + dual band outdoor antenna
- dump1090-mutability on Proxmox LXC
- tar1090 web interface
- Zarka Discord bot (discord.py)
- Home Assistant with Piper TTS
- Mapbox Static API for flight path maps
- planespotters.net + adsbdb.com for aircraft data