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 serviceBelongs to
fr24feedFlightRadar24
piaware, dump1090-faFlightAware
adsbexchange-feedADS-B Exchange
rbfeederRadarBox
dump1090-mutabilityGeneric / 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: 2947

3. Restart the agent

sudo systemctl restart skytracker

Verify aircraft are flowing:

journalctl -u skytracker -f | grep aircraft

Running 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 bash

See 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

  1. Confirm your existing feeder still works: systemctl status piaware fr24feed rbfeeder adsbexchange-feed 2>/dev/null
  2. Confirm the aircraft endpoint responds: curl -s http://localhost/tar1090/data/aircraft.json | head -c 200
  3. Confirm SkyTracker is running: sudo systemctl status skytracker
  4. Open http://<device-ip>:8888 — you should see aircraft appearing.
  5. On skytracker.ai, your station's Live feed should show traffic within a minute of agent start.