Flightjar is a self-hosted web interface for Mode S/ADS-B receivers that turns raw aircraft telemetry into a navigable, enriched flight tracking experience. It connects directly to a BEAST-format data stream — typically from readsb, dump1090-fa, or ultrafeeder — and processes messages in real time without running its own decoder. Unlike general-purpose dashboards or cloud-dependent trackers, Flightjar focuses on local, privacy-aware operation: all enrichment — routes, aircraft photos, METARs, airline metadata — is fetched from free public APIs (like adsbdb.com), cached to disk, and can be disabled entirely. It serves a responsive Leaflet-based map with visual cues like altitude-coloured flight trails, per-aircraft silhouettes, terrain blackspot overlays, and traffic heatmaps. The project targets hobbyists, enthusiasts, and small-scale ADS-B operators who want more context than a raw dump1090 map, but less complexity than a full tar1090 or Virtual Radar Server deployment.

Core features

  • A live map at http://<host>:8080/ showing aircraft with type-specific silhouettes (drawn from tar1090’s SVG set), altitude-coloured trails, and optional callsign labels
  • A detail panel that opens on click, displaying aircraft photos, registration, operator, route (e.g. EGLL → KJFK), METARs for origin and destination, flight phase, and full telemetry — including altitude, speed, heading, vertical rate, squawk, and distance
  • A sortable, searchable sidebar listing all tracked aircraft, with live telemetry per row and synchronized highlighting between map and list
  • Optional receiver location fuzzing for privacy, custom site name in header/tab, and unit switching (Metric/Imperial/Nautical) remembered per browser
  • Daily-rotated JSONL logging of every ADS-B message for offline analysis

Getting it running

Flightjar is built with C# and runs as a self-contained .NET 7+ application. The GitHub repository does not publish prebuilt binaries to a package manager, but provides a docker-compose.yml example and direct build instructions. To run with Docker:

git clone https://github.com/MrSuttonmann/flightjar.git
cd flightjar
docker build -t flightjar .
docker run -p 8080:8080 --rm flightjar

The container expects a BEAST feed at http://host.docker.internal:30005 by default (adjustable via --beast-url). On Linux hosts, host.docker.internal may need replacement with the host’s IP or use of --network=host. For native execution, the README lists .NET SDK 7.0+ as a requirement and shows:

dotnet build -c Release
dotnet run -c Release -- --beast-url http://192.168.1.10:30005

Configuration is handled via CLI flags or environment variables (e.g. FLIGHTJAR_BEAST_URL, FLIGHTJAR_LOG_PATH). Caching and enrichment are enabled by default but can be disabled individually — for example, --disable-adsbdb skips aircraft photo and route lookups, while --fuzz-location 500 adds up to 500 meters of random offset to the receiver’s displayed coordinates.

Who this is for

Flightjar suits operators who already run a local ADS-B decoder — such as readsb or dump1090-fa — and want a richer, more interactive frontend without migrating infrastructure. It’s built for users who value offline capability and control over data sources: caching means routes and photos remain available after an API outage, and disabling external lookups leaves only raw telemetry and local logs. The mobile-responsive design works well on tablets or phones used near an antenna site. It’s also appropriate for educational or demonstration setups where showing aircraft type, airline, and flight path matters more than historical analytics or multi-receiver correlation.

How it compares

Flightjar sits between minimalistic tools like dump1090-mutability’s built-in map and heavier, feature-rich systems like tar1090 or Virtual Radar Server. Unlike tar1090 — which is PHP-based, requires a full web server, and bundles its own decoder logic — Flightjar is a lightweight, single-process .NET application that consumes an existing BEAST feed. It does not support MLAT, multiple receivers, or database-backed history, nor does it offer a built-in feed forwarder or web-based configuration UI. Compared to adsbexchange-web, Flightjar avoids external dependencies beyond the BEAST source and doesn’t rely on ADS-B Exchange’s infrastructure for metadata. It’s heavier than a static map but lighter than a full VRS deployment — and it’s the only known self-hosted tool that combines terrain blackspot overlays, per-aircraft photos and METAR integration while remaining single-binary deployable.

Flightjar has 35 stars on GitHub and is actively developed by a single maintainer. It does not support Windows Forms or desktop embedding, nor does it offer built-in authentication, multi-user roles, or export to formats like KML or CSV. If you need long-term trend analysis, fleet management features, or integration with flight planning tools, this isn’t the tool. The source code and documentation are available at https://github.com/MrSuttonmann/flightjar.