This matches a typical Pi feeder: readsb → tar1090 → airplanes.live plus WDGoWars uploads and the custom dashboard.
- Raspberry Pi 4/5 (or similar) with Raspberry Pi OS
- RTL-SDR dongle (tested: RTL2832U / R820T, RTL-SDR Blog V4)
- 1090 MHz ADS-B antenna
sudo apt update
sudo apt install -y git lighttpd python3 python3-venv python3-pipThis installs readsb, tar1090, and the airplanes.live upstream feed:
git clone https://github.com/ZL1LAC/adsb-feeder-dashboard.git
cd adsb-feeder-dashboard
git submodule update --init --recursive
sudo ./scripts/install-airplanes.shThe installer uses the official airplanes-live/feed script. You will be prompted for:
- Station latitude / longitude / altitude
- Feed name (UUID shown on airplanes.live/myfeed)
Config is stored in /etc/default/airplanes.
./scripts/install.sh --profile airplanesThis will:
- Clone/build Muninn in
muninn/(if submodule not initialized) - Install systemd user services (
feeder-api, status timer, SDR watcher) - Install lighttpd snippet for
/dashboard/ - Install sudoers rules for restart/gain operations
If lighttpd or sudoers need root:
sudo cp /tmp/89-feeder-dashboard.conf /etc/lighttpd/conf-enabled/89-feeder-dashboard.conf
sudo systemctl reload lighttpd
sudo cp /tmp/feeder-ops /etc/sudoers.d/feeder-ops
sudo chmod 440 /etc/sudoers.d/feeder-opsGet your API key from wdgwars.pl → profile → API Key.
./scripts/go-live.sh YOUR_API_KEY
# optional: custom interval in minutes (default 5)
./scripts/go-live.sh YOUR_API_KEY 10Uploads skip automatically when there are no positioned aircraft.
systemctl status readsb tar1090 airplanes-feed airplanes-mlat
systemctl --user status feeder-api.service feeder-dashboard.timer
curl -s http://127.0.0.1/dashboard/status.json | headOpen in a browser:
- Dashboard:
http://<pi-ip>/dashboard/ - tar1090 map:
http://<pi-ip>/tar1090/
- Muninn warnings about ports
30104/30001are expected on airplanes.live setups (MLAT). The dashboard filters them from the UI. - Upload logs go to
logs/upload.logifjournalctl --useris empty:./scripts/tail-log.sh - Optional: add
--lat/--lonto readsb for tar1090 range outline (readsb-set-locationor/etc/default/readsb)
| Symptom | Check |
|---|---|
| No aircraft | systemctl status readsb, lsusb, restart readsb |
| Dashboard 404 | lighttpd config, systemctl --user status feeder-api |
| Uploads fail | ./scripts/tail-log.sh, verify API key with muninn/muninn.py --whoami -q |
| SDR drops | Dashboard auto-recovery runs every 60s; replug USB if needed |