Add a feed to Docker Ultrafeeder
Ultrafeeder can send your receiver’s data to several networks at once. Adding planedata.io takes two entries in your existing configuration and one command. Your other feeds, local map and graphs keep working exactly as before.
Before you start
- A working Ultrafeeder container started with
docker compose(Compose v2). - Access to its
docker-compose.yml(often in/opt/adsb). - For MLAT: your antenna’s exact latitude and longitude (5 decimal places) and its altitude above sea level in
READSB_LAT,READSB_LONandREADSB_ALT.
1. Add the two entries
Open the file and find ULTRAFEEDER_CONFIG in the ultrafeeder service:
cd /opt/adsb nano docker-compose.yml
Add these two entries to the list. Entries are separated by ;, so put a ; after the entry
before them, and keep everything already there:
- ULTRAFEEDER_CONFIG=
adsb,in.adsb.lol,30004,beast_reduce_plus_out;
mlat,in.adsb.lol,31090;
adsb,feed.planedata.io,30004,beast_reduce_plus_out;
mlat,feed.planedata.io,31090
Here the first two lines stand for whatever feeds you already have; the last two are new.
The adsb entry sends aircraft data; the mlat entry takes part in multilateration and sends
the results back to your map. If you don’t want MLAT, leave out the mlat line (and the ;
before it). Don’t add # comments inside this list: YAML treats them as the end of the value.
2. Check your station identity
UUIDidentifies your station to the networks you feed. If it’s already set, keep it: changing it makes your station look new everywhere. If it isn’t set, create one withcat /proc/sys/kernel/random/uuidand addUUID=…to the environment section.MLAT_USERis the name shown on the planedata.io contributors page and leaderboard (letters, numbers,-and_).
3. Apply the change
docker compose up -d
Compose recreates the Ultrafeeder container with the new settings; it’s back within a minute.
4. Verify
- Watch the log for the new connections:
docker logs -f ultrafeeder, and look for messages mentioningfeed.planedata.iowithout repeated connection errors (Ctrl+C stops watching). - From a device on the same network as the receiver, open the contributors page. “Am I feeding?” should show your aircraft data connection and, after a minute or two, MLAT.
- Follow the link there to your station page: aircraft start appearing within minutes, and the coverage outline builds up over the first day.
Will this affect my other feeds?
No. Each entry in ULTRAFEEDER_CONFIG is its own connection; adding one doesn’t change the others. The
beast_reduce_plus format sends a reduced stream, so the extra upload is small.
Troubleshooting
- The container won’t start or ignores the entries: check the
;separators and that the entries are indented underULTRAFEEDER_CONFIG=like the existing ones.docker compose configshows the file as Docker reads it. - Repeated connection errors: your network may block outgoing connections on ports 30004 or 31090; check your router or firewall.
- “Am I feeding?” says no but the log looks fine: the check matches your browser’s internet address with your receiver’s. Mobile data, a VPN or a provider that shares addresses between customers (CGNAT) stop it from matching. Try from the receiver’s own network.
- MLAT shows 0 peers: MLAT needs other planedata.io stations nearby and an exact location and altitude. Your station page explains what to check.
Privacy
To keep your station name and country off public lists, add ,--privacy to the end of the planedata.io
mlat entry: mlat,feed.planedata.io,31090,--privacy. See the privacy
policy for how contributed data is used.
Stop feeding planedata.io
Remove the two planedata.io entries (and the ; before them), then run docker compose up -d.
Nothing else changes.
Add planedata.io to your receiver
Related guides
- Feeding several networks from one receiver
- Building a Raspberry Pi ADS-B receiver
- All ADS-B feeding guides
References
Checked against: the SDR-Enthusiasts docker-adsb-ultrafeeder README (configuration of
ULTRAFEEDER_CONFIG, UUID and MLAT_USER); the SDR-Enthusiasts ADS-B setup guide
(“Deploy ultrafeeder”, aggregator feed format); and FlyItalyADSB’s Ultrafeeder feeder guide (same configuration
pattern and MLAT location accuracy). The configuration was validated with docker compose config, and the
feed format tested against a readsb aggregator hub.