Skip to content

Repository files navigation

Skytrace

Self-hosted 3D flight tracking for your ADS-B receiver.

Live demo with my personal receivers and the ADSB.lol network feed: https://sky.luftaquila.io

Inspired by tar1090 and ADS-B 3D.

Features

  • Live traffic, terrain and receiver coverage domes in 3D
    • The aircraft even roll and pitch based on ADS-B data!
  • Aircraft details, charts, flight playback, worldwide airfields and runway information
Live 3D traffic, flight details and history 3D terrain and receiver coverage dome
Live 3D traffic and flight details 3D terrain and receiver coverage dome

Quick start

Set RECEIVER_ID to the ID you want to use for your receiver.

curl -fLo compose.yml https://raw.githubusercontent.com/luftaquila/skytrace/main/compose.yml
umask 077
RECEIVER_ID=receiver-01
printf 'SKYTRACE_RECEIVER_TOKENS={"%s":"%s"}\n' "$RECEIVER_ID" "$(openssl rand -hex 32)" > .env
docker compose up -d

Use podman compose instead of docker compose if preferred, then open http://127.0.0.1:3000.

See the self-hosting guide for public access, backups and upgrades.

Receiver agent

The receiver agent reads readsb-compatible aircraft.json from tar1090, ultrafeeder, dump1090-fa and readsb.

Linux builds are available for ARMv6, ARMv7, ARM64, AMD64 and RISC-V 64.

See the setup guide for details.

Development

Requires Node.js 24 and Go 1.26.

Install dependencies and start the backend:

npm ci
npm --prefix web ci
npm run dev

Start the web app in another terminal:

npm --prefix web run dev

Tests:

npx playwright install --with-deps chromium
npm run check

Data sources

  • OurAirports: airports and runways
  • Esri World Imagery: satellite imagery
  • Mapterhorn: terrain
  • OpenFreeMap: boundaries and place labels
  • Community ADS-B aggregator: optional area traffic

About

Self-hosted 3D ADS-B flight tracker

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages