Mehrere ADS-B-Netze gleichzeitig feeden mit Docker und Ultrafeeder

Ein Container dekodiert, viele Netze bekommen die Daten: So richtest du den Ultrafeeder der sdr-enthusiasts ein, trägst Community-Netze per ULTRAFEEDER_CONFIG ein und hängst FlightAware, Flightradar24 und Co. als eigene Container an.

Planetrack RedaktionVeröffentlicht: 15. Oktober 202613 Min. Lesezeit

Das Wichtigste in Kürze

  • Ein Container als Herzstück: Ultrafeeder bündelt readsb als Dekoder, tar1090 als Karte, graphs1090 als Statistik und einen mlat-client pro MLAT-Server.
  • Community-Netze per Zeile: adsb.fi, adsb.lol, airplanes.live und andere trägst du in der Variable ULTRAFEEDER_CONFIG ein – je eine Zeile für Daten und eine für MLAT.
  • Kommerzielle Dienste als Beistellcontainer: FlightAware, Flightradar24, AirNav Radar und Plane Finder laufen in eigenen Containern, die ihre Daten mit BEASTHOST=ultrafeeder vom Herzstück holen.
  • Alle Einstellungen an einem Ort: Koordinaten, Höhe, Schlüssel und UUIDs stehen in einer .env-Datei, die Dienste in einer docker-compose.yml.
  • Eine UUID pro Netz: Die Anleitung der sdr-enthusiasts rät zu getrennten UUIDs, damit deine Station nicht netzübergreifend wiedererkannt werden kann.
Inhaltsverzeichnis
  1. 1.Die kurze Antwort
  2. 2.Warum Docker für einen ADS-B-Empfänger?
  3. 3.Was im Ultrafeeder steckt
  4. 4.Vorbereitung: Hardware und Hostsystem
  5. 5.Projektordner und .env-Datei
  6. 6.Die docker-compose.yml mit Ultrafeeder
  7. 7.Kommerzielle Netze als eigene Container
  8. 8.MLAT mit mehreren Netzen
  9. 9.Betrieb: Logs, Updates, Gesundheit
  10. 10.Für wen sich der Umstieg lohnt
  11. 11.Fazit

Erst PiAware, dann fr24feed, dann noch das Skript für adsb.fi und eins für adsb.lol – wer seinen Empfänger über Jahre wachsen lässt, hat irgendwann ein System voller Dienste, Konfigurationsdateien und Abhängigkeiten. Die Community sdr-enthusiasts geht einen anderen Weg: Ein einziger Docker-Container namens Ultrafeeder übernimmt Dekodierung, Karte, Statistik und alle Community-Feeds, und jedes weitere Netz kommt als eigener, sauber getrennter Container dazu. Dieser Guide zeigt dir, wie du mehrere ADS-B-Netzwerke gleichzeitig mit Ultrafeeder fütterst, welche Dateien du brauchst und wie du den Überblick behältst.

Vom Empfänger direkt zur Sichtung

Mit Planetrack hältst du jede Sichtung mit Foto, Kennzeichen, Typ, Airline, Flughafen und Spot fest – und Sichtungs-Alarme melden dir, wenn ein beobachtetes Kennzeichen im Anflug ist. Planetrack startet bald – trag dich in die Warteliste ein und sichere dir frühen Zugang.

Planetrack im App Store laden Planetrack bei Google Play laden

Die kurze Antwort

Du fütterst mehrere Netze gleichzeitig, indem du auf einem Linux-Rechner Docker installierst und eine docker-compose.yml mit dem Ultrafeeder-Container als Zentrale anlegst. Ultrafeeder liest deinen SDR-Stick, dekodiert die Signale mit readsb und schickt die Daten an alle Community-Netze, die du in der Variable ULTRAFEEDER_CONFIG einträgst. Kommerzielle Dienste wie FlightAware oder Flightradar24 hängst du als zusätzliche Container an, die ihre Daten per BEASTHOST=ultrafeeder aus der Zentrale beziehen. Koordinaten, Höhe und Schlüssel stehen gesammelt in einer .env-Datei.

Das Prinzip ist dasselbe wie bei den Einzelskripten aus An ADS-B Exchange und Community-Netze feeden: Ein Dekoder erzeugt einen Datenstrom, mehrere Feeder greifen ihn ab. Nur dass bei Docker jeder Baustein in seiner eigenen Kapsel läuft.

1Container für Dekoder, Karte, Statistik und alle Community-Feeds
8080Port der tar1090-Karte im Beispiel-Setup der sdr-enthusiasts
2Zeilen pro Community-Netz: Daten und MLAT

Warum Docker für einen ADS-B-Empfänger?

Die sdr-enthusiasts begründen ihren Ansatz in ihrem Guide mit mehreren Punkten, die für Spotter mit wachsendem Feeder-Zoo direkt greifbar sind:

  • Isolation: Jeder Container bringt seine eigene Software mit. Unterschiedliche Versionen von Bibliotheken kommen sich nicht in die Quere, und das Hostsystem bleibt sauber.
  • Einfache Erweiterung: Ein neues Netz bedeutet einen weiteren Container oder zwei Zeilen Konfiguration – keine Sorge, dass ein Installationsskript etwas überschreibt.
  • Zentrale Konfiguration: Statt Dateien unter /etc/default/ und in diversen Programmordnern zu pflegen, steht alles in der Compose-Datei und der .env-Datei.
  • Gemeinsame Hardware: Der Rechner kann nebenbei andere Dienste tragen. Das spart ein zusätzliches Gerät und Strom.

Der Preis: Du solltest ein paar Docker-Grundbegriffe kennen oder bereit sein, sie zu lernen. Wer nur ein Netz füttern will und schon einen laufenden Pi hat, kommt mit den klassischen Paketen oft schneller ans Ziel. Einen Überblick über alle Varianten gibt ADS-B-Feeder-Programme im Vergleich.

Was im Ultrafeeder steckt

Ultrafeeder ist kein neues Programm, sondern ein sorgfältig geschnürtes Paket bewährter Open-Source-Werkzeuge:

Baustein Aufgabe
readsb Dekodiert die Signale des SDR-Sticks und verteilt die Daten über Netzwerk-Ports
tar1090 Kartenoberfläche im Browser, inklusive Wiedergabe, Spuren der letzten 24 Stunden und Heatmap
graphs1090 Diagramme zu Nachrichtenrate, Reichweite, Signalstärke und Systemlast
mlat-client Je eine Instanz pro eingetragenem MLAT-Server
MLAT-Hub Führt berechnete MLAT-Positionen aus mehreren Quellen zusammen
Autogain Regelt die Verstärkung des RTL-SDR, empfohlen ist die eingebaute Variante von readsb

Wenn du readsb und tar1090 schon kennst, findest du dich sofort zurecht – die Oberflächen sind dieselben wie in readsb und tar1090 installieren. Neu ist nur, dass alles in einem Container läuft und über Umgebungsvariablen gesteuert wird.

Vorbereitung: Hardware und Hostsystem

An Hardware brauchst du das Übliche: einen Rechner, einen SDR-Stick und eine 1090-MHz-Antenne. Welcher Stick sich eignet, klärt SDR-Sticks für ADS-B im Vergleich, die Antenne baust du nach 1090-MHz-Antenne selber bauen. Der Rechner muss kein Raspberry Pi sein; der Guide der sdr-enthusiasts richtet sich an Debian-basierte Systeme wie Raspberry Pi OS, Ubuntu oder DietPi. Mögliche Alternativen zum Pi beschreibt ADS-B-Empfang ohne Raspberry Pi.

Für das Hostsystem stellt das Projekt ein Installationsskript bereit, das Docker und das Compose-Plugin einrichtet, die udev-Regeln für RTL-SDR-Sticks anpasst und die vorinstallierten Kernel-Treiber für die Sticks sperrt, damit die Container auf den Stick zugreifen können:

bash <(curl -s https://raw.githubusercontent.com/sdr-enthusiasts/docker-install/main/docker-install.sh)

Wie immer bei Skripten aus dem Netz gilt: Lies es vorher durch. Das Projekt selbst empfiehlt genau das.

Den Stick umbenennen

Fast alle RTL-SDR-Sticks kommen mit derselben Seriennummer aus der Fabrik. Damit der Container den richtigen Stick findet – spätestens wenn ein zweiter für Flugfunk oder UAT dazukommt –, vergibst du eine eindeutige Seriennummer. Die Empfehlung lautet 1090 für den ADS-B-Stick. Dazu steckst du nur diesen einen Stick an und schreibst die Nummer mit rtl_eeprom aus dem Ultrafeeder-Image:

docker run --rm -it --device /dev/bus/usb --entrypoint rtl_eeprom ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder -s 1090

Nach dem Bestätigen ziehst du den Stick ab und steckst ihn neu ein. Ein Neustart des Rechners reicht laut Anleitung nicht.

Koordinaten und Höhe jetzt notieren

Für MLAT brauchst du Breite, Länge und die Höhe der Antenne über dem Meeresspiegel so genau wie möglich – Geländehöhe plus Montagehöhe. Ein Mast auf dem Dach liegt schnell zehn Meter über dem Boden. Diese Werte trägst du gleich einmal zentral ein und nutzt sie für alle Netze.

Projektordner und .env-Datei

Der Guide legt alles unter /opt/adsb ab. Dort liegen die Compose-Datei und eine versteckte .env-Datei mit deinen Stammdaten:

sudo mkdir -p -m 777 /opt/adsb
cd /opt/adsb
nano .env

In die .env gehören unter anderem diese Werte:

FEEDER_LAT=48.1234567
FEEDER_LONG=11.1234567
FEEDER_ALT_M=520
FEEDER_TZ=Europe/Berlin
FEEDER_NAME=meine-station
ADSB_SDR_SERIAL=1090
ADSB_SDR_PPM=
ULTRAFEEDER_UUID=

Die Zahlen sind Platzhalter – trag deine eigenen Werte ein. FEEDER_NAME wird später als MLAT-Name an die Netze übermittelt; wähle ihn so, dass du damit leben kannst, wenn er öffentlich auftaucht. Eine UUID erzeugst du mit:

cat /proc/sys/kernel/random/uuid

Wichtig für den Datenschutz: Die Anleitung warnt davor, dieselbe UUID bei allen Netzen zu verwenden, weil deine Station sonst über Dienste hinweg wiedererkennbar wäre. Erzeuge deshalb pro Netz eine eigene UUID und speichere sie unter sprechenden Namen wie ADSBFI_UUID oder ADSBLOL_UUID in der .env.

Seltenheit auf deiner Karte entdeckt?

Mit Planetrack legst du Sichtungs-Alarme für Kennzeichen, Typen, Airlines und Special Liveries an und erfährst, wenn sie bei Anflug oder Landung sind. Planetrack startet bald – trag dich in die Warteliste ein und sichere dir frühen Zugang.

Planetrack im App Store laden Planetrack bei Google Play laden

Die docker-compose.yml mit Ultrafeeder

Jetzt kommt das Herzstück. Ein gekürztes Beispiel, angelehnt an den Guide der sdr-enthusiasts, mit zwei Community-Netzen:

services:
  ultrafeeder:
    image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder
    container_name: ultrafeeder
    hostname: ultrafeeder
    restart: unless-stopped
    device_cgroup_rules:
      - "c 189:* rwm"
    ports:
      - 8080:80
    environment:
      - LOGLEVEL=error
      - TZ=${FEEDER_TZ}
      - READSB_DEVICE_TYPE=rtlsdr
      - READSB_RTLSDR_DEVICE=${ADSB_SDR_SERIAL}
      - READSB_RTLSDR_PPM=${ADSB_SDR_PPM}
      - READSB_GAIN=auto
      - READSB_LAT=${FEEDER_LAT}
      - READSB_LON=${FEEDER_LONG}
      - READSB_ALT=${FEEDER_ALT_M}m
      - UUID=${ULTRAFEEDER_UUID}
      - MLAT_USER=${FEEDER_NAME}
      - ULTRAFEEDER_CONFIG=
          adsb,feed.adsb.fi,30004,beast_reduce_plus_out,uuid=${ADSBFI_UUID};
          mlat,feed.adsb.fi,31090,uuid=${ADSBFI_UUID};
          adsb,in.adsb.lol,30004,beast_reduce_plus_out,uuid=${ADSBLOL_UUID};
          mlat,in.adsb.lol,31090,uuid=${ADSBLOL_UUID}
    volumes:
      - /opt/adsb/ultrafeeder/globe_history:/var/globe_history
      - /opt/adsb/ultrafeeder/graphs1090:/var/lib/collectd
      - /proc/diskstats:/proc/diskstats:ro
      - /dev/bus/usb:/dev/bus/usb:rw
    tmpfs:
      - /run:exec,size=256M

Die Werte in ${...} liest Docker Compose automatisch aus der .env im selben Ordner. Der tmpfs-Eintrag legt flüchtige Daten in den Arbeitsspeicher und schont so die SD-Karte. Die Pfade unter volumes sorgen dafür, dass Kartenhistorie und Statistik einen Neustart des Containers überleben. Die vollständige, aktuelle Vorlage mit allen optionalen Variablen findest du im Guide und im GitHub-Repository des Projekts – übernimm im Zweifel deren Fassung.

So liest du ULTRAFEEDER_CONFIG

Jeder Eintrag beginnt mit einem Typ:

  • adsb,<host>,<port>,<protokoll> schickt deine ADS-B-Daten an einen Server oder holt Daten von einer Quelle. Für die meisten neueren Netze empfiehlt das Projekt das Protokoll beast_reduce_plus_out, ein verschlanktes Beast-Format.
  • mlat,<host>,<port> startet eine eigene mlat-client-Instanz für diesen Server.
  • mlathub,<host>,<port>,<protokoll> nimmt MLAT-Ergebnisse anderer Feeder entgegen und führt sie zusammen.

Optional hängst du uuid=... an. Fehlt sie, nutzt der Container die allgemeine Variable UUID. Einträge werden durch Semikolon getrennt, und innerhalb eines Eintrags dürfen weder zusätzliche Semikolons noch Kommas in Werten stehen.

Netz Daten (Host, Port) MLAT (Host, Port)
adsb.fi feed.adsb.fi, 30004 feed.adsb.fi, 31090
adsb.lol in.adsb.lol, 30004 in.adsb.lol, 31090
airplanes.live feed.airplanes.live, 30004 feed.airplanes.live, 31090
Planespotters feed.planespotters.net, 30004 mlat.planespotters.net, 31090
ADS-B Exchange feed1.adsbexchange.com, 30004 feed.adsbexchange.com, 31090

Die Adressen stammen aus der README des Ultrafeeder-Projekts, Stand Oktober 2026. Dort stehen noch weitere, teils regionale Netze. Weil sich Hostnamen ändern können, gleiche sie vor dem Eintragen mit der aktuellen Liste ab. Welche dieser Karten was zeigt, vergleicht Ungefilterte Community-Tracker im Vergleich, Hintergründe zu ADS-B Exchange liefert ADS-B Exchange erklärt.

Starten und prüfen

Gestartet wird im Projektordner mit:

docker compose up -d

Nach ein, zwei Minuten öffnest du im Browser http://<ip-deines-rechners>:8080/. Dort erscheint die tar1090-Karte mit deinen Empfängen. Nützliche Zusätze sind /graphs1090/ für die Statistik sowie die Parameter ?pTracks für die Spuren der letzten 24 Stunden, ?heatmap für eine Heatmap und ?replay für die Wiedergabe. Was die Diagramme über deine Antenne verraten, erklärt Empfangsleistung messen mit graphs1090.

Kommerzielle Netze als eigene Container

FlightAware, Flightradar24 und andere kommerzielle Dienste verlangen ihre eigenen Feeder-Programme mit Schlüsseln. Auch dafür bieten die sdr-enthusiasts fertige Images. Das Muster ist immer gleich: Der Container bekommt BEASTHOST=ultrafeeder, holt sich darüber den Datenstrom aus der Zentrale und meldet sich mit deinem Schlüssel aus der .env beim Dienst an.

Dienst Image Schlüssel-Variable Lokale Oberfläche im Beispiel
FlightAware ghcr.io/sdr-enthusiasts/docker-piaware FEEDER_ID Port 8081 (SkyAware)
Flightradar24 ghcr.io/sdr-enthusiasts/docker-flightradar24 FR24KEY Port 8754
AirNav Radar ghcr.io/sdr-enthusiasts/docker-airnavradar SHARING_KEY –
Plane Finder ghcr.io/sdr-enthusiasts/docker-planefinder SHARECODE Port 30053

Der Guide hat außerdem Anleitungen für OpenSky Network, ADSBHub, Plane.watch, RadarVirtuel und weitere Netze. Ein Beispiel für FlightAware sieht so aus:

  piaware:
    image: ghcr.io/sdr-enthusiasts/docker-piaware:latest
    container_name: piaware
    restart: unless-stopped
    ports:
      - 8081:8080
    environment:
      - BEASTHOST=ultrafeeder
      - MLAT_RESULTS_BEASTHOST=ultrafeeder
      - MLAT_RESULTS_BEASTPORT=31004
      - TZ=${FEEDER_TZ}
      - FEEDER_ID=${PIAWARE_FEEDER_ID}
    tmpfs:
      - /run:exec,size=64M
      - /var/log

Die beiden MLAT_RESULTS-Zeilen spielen die von FlightAware berechneten MLAT-Positionen in den MLAT-Hub des Ultrafeeders zurück, sodass sie auch auf deiner lokalen Karte erscheinen.

Schlüssel übernehmen oder neu erzeugen

Hier liegt die wichtigste Stolperfalle beim Umzug: Wer schon feedet, übernimmt seine bisherigen Schlüssel. Sonst legt der Dienst eine neue Station an, und Statistik sowie die Feeder-Gegenleistungen hängen an der alten. Die Anleitungen nennen die Befehle für bestehende Installationen:

  • FlightAware: piaware-config -show feeder-id auf dem alten System. Neue Feeder lassen sich einmalig per temporärem Container registrieren und anschließend auf flightaware.com einem Konto zuordnen. Achte darauf, dass Position und Höhe bei FlightAware mit deiner .env übereinstimmen, sonst funktioniert MLAT nicht. Mehr zu FlightAware selbst steht in PiAware installieren und einrichten.
  • Flightradar24: Der Sharing Key steht in der alten /etc/fr24feed.ini. Neue Feeder führen den Signup-Dialog in einem temporären Container aus. Hintergründe liefert fr24feed einrichten.
  • AirNav Radar: rbfeeder --showkey --no-start oder ein Blick in /etc/rbfeeder.ini zeigt den alten Schlüssel. Ohne Schlüssel erzeugt der Container beim ersten Start einen neuen und gibt ihn im Log aus. Mehr zum Dienst selbst steht in AirNav RadarBox nutzen.
  • Plane Finder: Den Share Code findest du im Konto auf planefinder.net unter deinen Empfängern. Einen Überblick über den Dienst gibt Plane Finder im Überblick.

Die alten Feeder auf dem Hostsystem schaltest du ab, bevor die Container übernehmen – sonst melden sich zwei Programme mit demselben Schlüssel. Welche Abos und Vorteile dir die Dienste fürs Feeden einräumen, vergleicht Was Feeder als Gegenleistung bekommen.

MLAT mit mehreren Netzen

Jede mlat-Zeile in ULTRAFEEDER_CONFIG startet einen eigenen mlat-client. Deine Station nimmt damit an der Multilateration jedes eingetragenen Netzes teil – und jedes Netz rechnet mit den Stationen, die dort mitmachen. Je mehr Netze du belieferst, desto größer ist die Chance, dass bei einem davon genug Nachbarn in Reichweite stehen. Gerade Militärmaschinen ohne eigene Positionsmeldung tauchen erst dann auf; wie das Verfahren arbeitet, steht in MLAT/Multilateration.

Die Voraussetzungen sind dieselben wie bei jeder anderen Installation: exakte Koordinaten, korrekte Antennenhöhe und ein stabiler Empfang. Der Vorteil von Docker: Diese Werte stehen nur einmal in der .env und gelten automatisch für alle Netze. Tippfehler in einzelnen Konfigurationsdateien, die MLAT bei einem Netz lahmlegen, bei einem anderen aber nicht, gibt es so nicht mehr.

Betrieb: Logs, Updates, Gesundheit

Im Alltag kommst du mit wenigen Befehlen aus, die du im Ordner /opt/adsb ausführst:

Aufgabe Befehl
Alle Logs live verfolgen docker compose logs -f
Log eines Containers docker logs -f ultrafeeder
Status und Gesundheit docker ps
Änderungen an .env oder Compose übernehmen docker compose up -d
Alle Images aktualisieren docker compose pull, danach docker compose up -d

Die Container der sdr-enthusiasts bringen Gesundheitsprüfungen mit. In der Spalte STATUS von docker ps steht dann healthy, unhealthy oder health: starting. Zeigt ein Container dauerhaft unhealthy, liefert dir dessen Log meist den Grund – häufig ein falscher Schlüssel, ein nicht gefundener Stick oder ein Tippfehler in ULTRAFEEDER_CONFIG.

Symptom Wahrscheinliche Ursache Lösung
Karte leer, Log meldet kein Gerät Falsche Seriennummer oder Stick von anderem Programm belegt Seriennummer prüfen, alten Dekoder auf dem Host stoppen
Ein Netz bekommt keine Daten Tippfehler oder fehlendes Semikolon in ULTRAFEEDER_CONFIG Eintrag mit der Projektliste abgleichen, docker compose up -d
FlightAware-Container unhealthy Feeder-ID fehlt oder Standort bei FlightAware weicht ab ID in .env prüfen, Position im Konto angleichen
Doppelte Station bei einem Dienst Neuer Schlüssel statt des alten verwendet Alten Schlüssel in .env eintragen, Container neu erstellen

Für Fortgeschrittene beschreibt der Guide außerdem automatische Updates, den automatischen Neustart ungesunder Container und Auswertungen mit Grafana. Für den Einstieg brauchst du davon nichts.

Für wen sich der Umstieg lohnt

Ultrafeeder passt, wenn …

  • du drei oder mehr Netze gleichzeitig beliefern willst
  • der Rechner noch andere Dienste trägt
  • du alle Einstellungen an einem Ort haben möchtest

Abwägen, wenn …

  • dein bestehender Pi mit Einzelskripten stabil läuft
  • du Docker noch nie benutzt hast
  • du nur gelegentlich am System arbeitest

Eher nicht, wenn …

  • du nur ein einziges Netz fütterst
  • du lieber ein fertiges Image per Weboberfläche bedienst
  • der Rechner sehr knapp an Speicher ist

Für die Spotter-Praxis bringt ein gut gefütterter Empfänger einen ganz handfesten Vorteil: Deine Region ist auf mehreren Karten dichter abgedeckt, oft genau dort, wo du selbst spottest – etwa am Besucherhügel München mit Blick auf den Flughafen München oder am Spotterhügel Teveren, wo die AWACS-Flotte der NATO stationiert ist. Dazu kommen Tools, mit denen du später nachvollziehst, was wirklich vorbeigeflogen ist; wie das geht, zeigt Sichtungen mit ADS-B-Logs abgleichen. Ob Empfang und Weitergabe der Daten in deinem Land erlaubt sind, klärt ADS-B-Daten empfangen: die Rechtslage.

Ist dein Ultrafeeder-Setup komplett?

Hak ab, was bei dir erledigt ist – am Ende siehst du, ob deine Station rund läuft.

  • Docker und Compose-Plugin sind installiert, der Stick hat die Seriennummer 1090.
  • Koordinaten und Antennenhöhe stehen exakt in der .env.
  • Jedes Netz hat eine eigene UUID.
  • Die tar1090-Karte auf Port 8080 zeigt Flugzeuge.
  • Alle Container melden in docker ps den Status healthy.
  • Bestehende Schlüssel für FlightAware, Flightradar24 und Co. sind übernommen, alte Feeder auf dem Host gestoppt.

Aus Daten werden Sichtungen

Poste deine Sichtungen mit Foto, Kennzeichen und Flughafen in Planetrack, sammle sie im Hangar mit Wunschliste und tausch dich mit der Community aus. Planetrack startet bald – trag dich in die Warteliste ein und sichere dir frühen Zugang.

Planetrack im App Store laden Planetrack bei Google Play laden

Fazit

Mit dem Ultrafeeder der sdr-enthusiasts wird aus einem gewachsenen Feeder-Sammelsurium ein aufgeräumtes System: ein Container für Dekoder, Karte, Statistik und alle Community-Netze, dazu je ein schlanker Container pro kommerziellem Dienst. Die meiste Sorgfalt verdienen wie immer die Stammdaten – Koordinaten, Höhe, Schlüssel und getrennte UUIDs. Steht die .env, ist jedes weitere Netz eine Sache von zwei Zeilen und einem docker compose up -d.

Kurzfazit

Docker installieren, Stick auf 1090 umbenennen, Stammdaten in die .env, Ultrafeeder mit allen Community-Netzen in ULTRAFEEDER_CONFIG starten und kommerzielle Dienste als Beistellcontainer mit BEASTHOST=ultrafeeder und den bisherigen Schlüsseln anhängen. Pro Netz eine eigene UUID schützt deine Privatsphäre.

Zusammenfassung

  • Das Projekt sdr-enthusiasts stellt fertige Docker-Images für Empfang, Dekodierung und Weitergabe von ADS-B-Daten bereit, dokumentiert in einem frei zugänglichen Guide.
  • Der Ultrafeeder-Container übernimmt SDR-Stick, Dekodierung, Kartenoberfläche, Statistik und alle Community-Feeds samt MLAT.
  • Für kommerzielle Netze startest du je einen weiteren Container aus derselben Familie und trägst nur den jeweiligen Schlüssel ein.
  • Updates, Logs und Neustarts laufen für alle Dienste über dieselben Docker-Compose-Befehle.

Häufige Fragen

Was ist der Ultrafeeder?

Ultrafeeder ist ein Docker-Container des Community-Projekts sdr-enthusiasts. Er kombiniert den Dekoder readsb, die Kartenoberfläche tar1090, die Statistik graphs1090, mlat-client für die Multilateration und einen MLAT-Hub, der berechnete Positionen aus mehreren Quellen zusammenführt. Damit ersetzt er die Einzelinstallation all dieser Programme auf dem Rechner.

Brauche ich für Ultrafeeder einen Raspberry Pi?

Nicht zwingend. Die Container laufen auf Debian-basierten Linux-Systemen wie Raspberry Pi OS, Ubuntu oder DietPi. Das kann ein Raspberry Pi sein, aber auch ein anderer Einplatinenrechner oder ein kleiner PC, der nebenbei weitere Dienste trägt. Wichtig ist ein USB-Anschluss für den SDR-Stick.

Wie trage ich ein weiteres Community-Netz ein?

Du ergänzt in der Variable ULTRAFEEDER_CONFIG zwei Zeilen: eine adsb-Zeile mit Host, Port und Protokoll, etwa adsb,feed.adsb.fi,30004,beast_reduce_plus_out;, und eine mlat-Zeile mit Host und Port, etwa mlat,feed.adsb.fi,31090;. Jede Zeile endet mit einem Semikolon. Danach übernimmt docker compose up -d die Änderung.

Wie binde ich FlightAware oder Flightradar24 an?

Über eigene Container der sdr-enthusiasts, etwa docker-piaware und docker-flightradar24. Beide erhalten die Variable BEASTHOST=ultrafeeder und deinen Schlüssel aus der .env-Datei: bei FlightAware die Feeder-ID, bei Flightradar24 den Sharing Key. Wer schon feedet, übernimmt die vorhandenen Werte, damit Statistik und Gegenleistungen erhalten bleiben.

Warum sollte ich pro Netz eine eigene UUID verwenden?

Die UUID identifiziert deine Station beim Netzbetreiber. Nutzt du überall dieselbe, ließe sich deine Station über mehrere Dienste hinweg wiedererkennen. Die Anleitung der sdr-enthusiasts empfiehlt deshalb für jedes Netz eine eigene UUID. Eine neue erzeugst du unter Linux mit cat /proc/sys/kernel/random/uuid.

Wo sehe ich, ob alles läuft?

Mit docker ps siehst du alle Container mit Gesundheitsstatus wie healthy oder unhealthy. Die Logs liest du mit docker compose logs -f für alle oder docker logs -f ultrafeeder für einen einzelnen Container. Die Karte erreichst du im Browser unter Port 8080, die Statistik unter dem Pfad /graphs1090/.

Kann ich Ultrafeeder neben einer bestehenden readsb-Installation betreiben?

Ein SDR-Stick kann nur von einem Programm gleichzeitig genutzt werden. Entweder übernimmt Ultrafeeder den Stick und du deaktivierst den alten Dekoder, oder du lässt READSB_DEVICE_TYPE leer und speist Ultrafeeder über eine beast_in-Verbindung aus dem vorhandenen Dekoder. Für einen sauberen Neuaufbau ist die erste Variante übersichtlicher.

PT

Planetrack Redaktion

Wir bauen die Planetrack App und spotten selbst – auf Besucherterrassen, an Anflugschneisen und am Zaun. Alle Guides entstehen aus eigener Praxis und werden regelmäßig aktualisiert.

Mehr Artikel aus ADS-B, MLAT & Empfänger →

Weiterlesen in ADS-B, MLAT & Empfänger

Flughäfen & Hersteller dazu

Flughäfen, Hersteller, Airline-Gruppen und Allianzen – wer dahintersteht und was du als Spotter wissen solltest.

Alle Flughäfen & Hersteller →

Passende Spotting-Spots

Konkrete Standpunkte mit Betriebsrichtung, Lichtzeiten, Koordinaten und einer ehrlichen Einschätzung, ob sich die Anreise lohnt.

Alle Spotting-Spots im Überblick →

← Zurück zum Blog