Web dashboard for Raspberry Pi ADS-B feeders: live reception stats, 24h history charts, tar1090 map, WDGoWars score/uploads, and one-click ops (restart readsb, gain presets).
Built for readsb + tar1090 stacks, with first-class support for airplanes.live and adsb.im feeders, plus optional WDGoWars uploads via Muninn.
- Live aircraft table with search, sort, and distance from your station
- Health banner (SDR, readsb, upstream feeds, WDGoWars)
- 24h SVG sparkline history (aircraft, SNR, max range)
- WDGoWars score card, upload timeline, configurable upload interval
- Operations: restart services, gain presets, manual push
- Gotify alerts: feeder down, watchlist, overhead passes, squawk codes (7500/7600/7700 + custom)
- Flight log analytics: 30-day SQLite history, dashboard stats, CLI queries
- Settings page (
/dashboard/settings.html): Gotify, squawk alerts, watchlist, station location, gain, Muninn interval - SDR auto-recovery watcher
- Mobile-friendly layout + PWA manifest
Prerequisites: Raspberry Pi (or Linux SBC), RTL-SDR, readsb, tar1090, lighttpd.
git clone https://github.com/ZL1LAC/adsb-feeder-dashboard.git
cd adsb-feeder-dashboard
git submodule update --init --recursive # Muninn
sudo ./scripts/install-airplanes.sh # readsb + tar1090 + airplanes.live feed
./scripts/install.sh --profile airplanes
./scripts/go-live.sh YOUR_WDGOWARS_API_KEYOpen http://<pi-ip>/dashboard/
git clone https://github.com/ZL1LAC/adsb-feeder-dashboard.git
cd adsb-feeder-dashboard
git submodule update --init --recursive
# Install adsb.im first — see docs/INSTALL-adsbim.md
./scripts/install.sh --profile adsbim
./scripts/go-live.sh YOUR_WDGOWARS_API_KEY # optionalgit clone https://github.com/ZL1LAC/adsb-feeder-dashboard.git
cd adsb-feeder-dashboard
git submodule update --init --recursive
# Install readsb + tar1090 first (see docs/INSTALL-readsb-only.md)
./scripts/install.sh --profile readsb-only
./scripts/go-live.sh YOUR_WDGOWARS_API_KEY # optionalKeep the RTL-SDR and decoder on the Pi; run the dashboard, alerts, and WDGoWars uploads in Docker on another machine (NAS, VM, etc.).
On the Pi (decode host):
./scripts/install-pi-decode-only.shOn the Docker host:
cd docker && cp .env.example .env # set PI_HOST, PI_AGENT_URL, PI_AGENT_TOKEN
../scripts/install-split-docker.shSee Split-stack deployment for networking, reverse proxy, and troubleshooting.
- Install with airplanes.live
- Install with adsb.im
- Install readsb-only
- Split stack (SDR on Pi, dashboard elsewhere)
- Architecture
Copy feeder.env.example to feeder.env and edit paths if needed:
cp feeder.env.example feeder.envInstall scripts create feeder.env automatically on first run.
For push notifications, run Gotify (see scripts/install-gotify.sh or use an existing server), create an app, and paste the app token in Dashboard → Settings.
Squawk alerts: emergency codes 7500/7600/7700 are on by default; add custom codes in Settings (comma-separated).
Dashboard login (Docker / split stack): optional HTTP basic auth for public URLs:
./scripts/set-dashboard-password.sh admin
cd docker && docker compose up -d caddyBrowser will prompt for username/password on /dashboard/ and /tar1090/. Leave unset for trusted LAN only.
Muninn upload logs (when user journal is empty):
./scripts/tail-log.shThe dashboard API (/dashboard/api/*) has no authentication — intended for trusted LAN use only.
- Muninn / adsb-to-wdgwars — WDGoWars uploads
- wiedehopf/readsb + tar1090
- airplanes.live feed
MIT — see LICENSE.