planedata.io

Add a feed to Docker Ultrafeeder

Last reviewed 3 November 2026 · For: people already running the SDR-Enthusiasts Ultrafeeder container with Docker Compose

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.

Starting from scratch? Follow the Raspberry Pi receiver guide or build a complete file with the compose generator. Using the adsb.im image? See the adsb.im steps on the feeding page.

Before you start

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

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

  1. Watch the log for the new connections: docker logs -f ultrafeeder, and look for messages mentioning feed.planedata.io without repeated connection errors (Ctrl+C stops watching).
  2. 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.
  3. 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

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

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.