Running SkyTracker Alongside Other Feeders
If your device already feeds FlightRadar24, FlightAware, ADS-B Exchange, RadarBox, or any other tracking service, the SkyTracker installer will stop and send you here. Good — replacing your decoder would silently break everything else. Here's how to run SkyTracker in addition to what you already have.
What the installer detected
SkyTracker's installer refuses to touch your system if it finds any of the following, because installing our build of readsb over the top would disrupt them:
| Package or service | Belongs to |
|---|---|
fr24feed | FlightRadar24 |
piaware, dump1090-fa | FlightAware |
adsbexchange-feed | ADS-B Exchange |
rbfeeder | RadarBox |
dump1090-mutability | Generic / shared dump1090 fork |
readsb.service (enabled unit) | Any previous readsb install |
Good news: SkyTracker doesn't need its own decoder. The agent reads aircraft data over HTTP from whatever decoder you already have running. Nothing on your device changes — we just add one more consumer.
How SkyTracker reads aircraft data
The SkyTracker agent polls a standard dump1090-style aircraft.json endpoint over HTTP once per second. Any of the following exposes that endpoint:
- readsb + tar1090 — serves at
http://localhost/tar1090/data/aircraft.json - readsb + graphs1090 / performance-dashboard — same path as tar1090
- piaware (FlightAware's dump1090-fa) — serves at
http://localhost/dump1090-fa/data/aircraft.json - dump1090-mutability — serves at
http://localhost/dump1090/data/aircraft.json - adsbexchange-feed / fr24feed — usually bundled with readsb; path depends on the bundled web UI
Pick the path your existing feeder already publishes and point SkyTracker at it.
Recommended: point SkyTracker at your existing decoder
Install SkyTracker with the safety check overridden for the decoder step, but skip the readsb install entirely by setting both the replace flag and the source URL. The cleanest way is to edit the config after install:
1. Install the agent without touching your decoder
SKYTRACKER_SKIP_DECODER=1 \
curl -sSL https://get.skytracker.ai | sudo -E bash With SKYTRACKER_SKIP_DECODER=1, the installer lays down the SkyTracker agent, creates /etc/skytracker/config.yaml, and sets up the systemd service — but does not install readsb or tar1090.
2. Tell the agent where your decoder lives
Edit /etc/skytracker/config.yaml and set sources.dump1090_url to match your existing feeder:
# /etc/skytracker/config.yaml
sources:
# Example for tar1090 (readsb + tar1090 web UI)
dump1090_url: "http://localhost/tar1090/data/aircraft.json"
# Example for FlightAware piaware
# dump1090_url: "http://localhost/dump1090-fa/data/aircraft.json"
# Example for dump1090-mutability
# dump1090_url: "http://localhost/dump1090/data/aircraft.json"
# gpsd is read-only; safe to share with piaware/fr24feed
gpsd_host: "localhost"
gpsd_port: 29473. Restart the agent
sudo systemctl restart skytrackerVerify aircraft are flowing:
journalctl -u skytracker -f | grep aircraftRunning SkyTracker on a separate device
If you'd rather keep your existing feeder untouched and run SkyTracker on a different machine on the same network (a second Raspberry Pi, a NUC, whatever), point dump1090_url at the LAN IP of the feeder:
sources:
dump1090_url: "http://192.168.1.42/tar1090/data/aircraft.json" SkyTracker only needs HTTP access to aircraft.json. No ports on the feeder machine change; no daemon is restarted. This is the zero-risk option.
Port conflicts
SkyTracker's agent UI runs on port 8888 by default, which does not collide with:
- Port 80 — tar1090, piaware's
skyview, dump1090 web UIs - Port 8754 — fr24feed web UI
- Port 8080 — FlightAware piaware port 8080 redirects
- Port 30001–30106 — readsb / dump1090 Beast and SBS feeds
- Port 2947 — gpsd (SkyTracker reads but does not write)
If you have something already bound to 8888, change display.port in the config.
GPS coexistence
SkyTracker uses gpsd as a read-only consumer. If piaware, fr24feed, or another service is already reading from gpsd, adding SkyTracker as a second client is fine — gpsd was built for this. Nothing else needs to change.
If you don't have a GPS dongle and your station has fixed coordinates, skip gpsd entirely and pin coordinates during install:
SKYTRACKER_LAT=37.7749 \
SKYTRACKER_LON=-122.4194 \
SKYTRACKER_SKIP_DECODER=1 \
curl -sSL https://get.skytracker.ai | sudo -E bashSee GPS Setup for the full set of options.
Alternative: replace the existing decoder
Only do this on a single-purpose device. If you run SKYTRACKER_REPLACE_READSB=1, the installer will remove the Debian-packaged readsb and install wiedehopf's build in its place. Any feeder that depended on the previous readsb — FR24, FlightAware, ADS-B Exchange, RadarBox — will stop feeding until you reconfigure it against the new install.
SKYTRACKER_REPLACE_READSB=1 \
curl -sSL https://get.skytracker.ai | sudo -E bash Use this only when SkyTracker is the only ADS-B workload on the box, or when you're prepared to manually re-point other feeders at the replacement readsb afterward.
Verification checklist
- Confirm your existing feeder still works:
systemctl status piaware fr24feed rbfeeder adsbexchange-feed 2>/dev/null - Confirm the aircraft endpoint responds:
curl -s http://localhost/tar1090/data/aircraft.json | head -c 200 - Confirm SkyTracker is running:
sudo systemctl status skytracker - Open
http://<device-ip>:8888— you should see aircraft appearing. - On skytracker.ai, your station's Live feed should show traffic within a minute of agent start.