the following upgrade steps are required:
cd ./docker-ogn2readsbgit pulldocker rm -f $(docker ps -aq)docker system prune -af --volumesdocker compose --parallel 1 build(ordocker compose --file compose-multifeed.yaml --parallel 1 build)docker compose --parallel 1 up --detach --force-recreate(ordocker compose --file compose-multifeed.yaml --parallel 1 up --detach --force-recreate)
if you are upgrading from an earlier config.vars version, particularly in case the config.vars template has changed, you need to perform the following steps:
- note down your existing
config.varsvariable entries cd ./docker-ogn2readsbgit checkout config.varsgit pullnano config.vars- re-enter your prior variable entries in the new and empty
config.varsand fill out the new (optional) config variables docker compose --parallel 1 up --detach --force-recreate(ordocker compose --file compose-multifeed.yaml --parallel 1 up --detach)
docker version of ogn2readsb
consisting of the following components:
- ogn2dump1090
- simple Python tool to inject Open Glider Network Traffic (from an existing local OGN decoder instance) into an existing readsb ADS-B decoder instance for display on a unified tar1090 map
- furthermore online aggregated traffic from
aprs.glidernet.orgcan optionally be injected for a reasonably selected radius around a given location - OGN traffic will be displayed as other traffic alongside with ADS-B traffic, using the readsb tar1090 webinterface (e.g. http://yourRaspberryPi.local/tar1090/)
- rtlsdr-ogn (feeding glidernet.org with OGN traffic)
- readsb (feeding glidernet.org with ADS-B traffic and decoding/forwarding traffic to the tar1090 map)
- mlat-client-adsblol (display MLAT traffic from adsb.lol)
- tar1090 (traffic map)
- optional feeds (advanced docker build):
- adsbexchange.com
- airplanes.live
- adsb.lol
- adsb.fi
- planefinder.net
- flightradar24.com
- airnavradar.com
- flightaware.com
- opensky-network.org
Debian or Debian-based Linux Operating Systems (64bit Debian 13 Trixie or newer):
- Debian
- Ubuntu
- DietPi
- RaspiOS
- arm64 (64-bit ARM CPUs with hardware floating point processor)
- x64 (64-bit AMD/Intel CPUs)
- SDRs: native support of RTL-SDR Blog v4 SDR since Debian 13 Trixie
sudo apt update && sudo apt install --yes git wgetbash <(wget -q -O - https://raw.githubusercontent.com/sdr-enthusiasts/docker-install/main/docker-install.sh)- you may be asked
Y/na couple of times, it is safe to answer all of them withY sudo reboot
- identify or set both SDR serials (e.g. 868 and 1090), they are required for the
config.varsbelow - unplug all SDRs, leaving only the SDR to be used for 868 MHz reception plugged in, then issue the following command:
docker run --rm -it --device /dev/bus/usb --entrypoint rtl_eeprom ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder -s 868
- unplug all SDRs, leaving only the SDR to be used for 1090 MHz reception plugged in, then issue the following command:
docker run --rm -it --device /dev/bus/usb --entrypoint rtl_eeprom ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder -s 1090
- unplug all SDRs, leaving only the SDR to be used for 868 MHz reception plugged in, then issue the following command:
docker run --rm -it --device /dev/bus/usb --entrypoint rtl_test ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder -p- let it run for 10-15 min (important so that the SDR warms up)
- note the ppm listed in the related output, e.g.
... cumulative PPM: -1and use that for SDR_868_PPM - modern SDRs have a TCXO, therefore SDR_868_PPM = 0 is the default
- unplug all SDRs, leaving only the SDR to be used for 1090 MHz reception plugged in, then issue the following command:
docker run --rm -it --device /dev/bus/usb --entrypoint rtl_test ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder -p- let it run for 10-15 min (important so that the SDR warms up)
- note the ppm listed in the related output, e.g.
... cumulative PPM: -1and use that for SDR_1090_PPM - modern SDRs have a TCXO, therefore SDR_1090_PPM = 0 is the default
git clone https://github.com/VirusPilot/docker-ogn2readsb
cd ./docker-ogn2readsbnano config.vars- save changes with
CTRL O - exit nano with
CTRL X
- save changes with
| variable | example | description |
|---|---|---|
| STATION_LAT | 50.0 | your station latitude [deg] (as positive or negative decimal number) |
| STATION_LON | 10.0 | your station longitude [deg] (as positive or negative decimal number) |
| STATION_ALT_MSL_M | 300 | your station altitude AMSL [m] |
| STATION_NAME | OGNTEST | your max. 9 letter station name, please comply with naming convention |
| STATION_COMMENT_ANTENNA | VINNANT CC868/8-PEL | optional information about your station antenna |
| STATION_COMMENT_FILTER | optional information about your station filter | |
| STATION_COMMENT_AMPLIFIER | Uputronics HAB-FPA868 | optional information about your station amplifier |
| STATION_COMMENT_DONGLE | rtl-sdr v3 silver | optional information about your station dongle |
| STATION_COMMENT_CLUB | optional name of your Flight Club | |
| STATION_COMMENT_EMAIL | optional station email contact | |
| STATION_COMMENT_WEBSITE | optional station website | |
| STATION_COMMENT_NOTE | optional notes about your station | |
| FREQ_PLAN | 1 | 1=EU/Africa (default), 2=USA/Canada, 3=South America/Australia, 4=New Zealand, 5=Israel, 6=EU/Africa 433MHz |
| GSM_CENTER_FREQ | 935.8 | default = 0, change only if you know your closest GSM900 station frequency [MHz] |
| ADSB_MAX_ALT_FT | 18000 | ADSB max OGN feed altitude [ft] |
| METAR_SOURCE_ICAO | EDDF | 4 letter ICAO code of a nearby airport with METAR service |
| APRS_SUBSCRIBE_FILTER | r/50.0/10.0/100 | circle in [km] around a defined postion (example: LAT 50.0, LON 10.0, CIRCLE 100 km) for which you want to receive traffic from the OGN APRS servers |
| SDR_868_SERIAL | 868 | enter your OGN SDR serial |
| SDR_868_PPM | 0 | change only if you know your SDR's ppm |
| SDR_868_BIAS_T_ENABLE | 0 | set to 1 to enable Bias Tee on your SDR, e.g. to power a LNA |
| SDR_1090_SERIAL | 1090 | enter your ADSB SDR serial |
| SDR_1090_PPM | 0 | change only if you know your SDR's ppm |
| SDR_1090_BIAS_T_ENABLE | 0 | set to 1 to enable Bias Tee on your SDR, e.g. to power a LNA |
cd ./docker-ogn2readsbnano tar1090/Dockerfile- add
&& echo 'MergeNonIcao = true;' >> config.jsafterecho 'jaeroLabel = "OGN";' >> config.js
cd ./docker-ogn2readsbdocker compose --parallel 1 builddocker compose --parallel 1 up --detach --force-recreate
- quite some manual editing is required, please use it only if you know what you are doing
cd ./docker-ogn2readsbnano compose-multifeed.yaml- add your feeder credentials (e.g. SHARING KEY, USERNAME, LAT, LON, ALT)
- delete (or comment out) unused/unwanted feeder entries
docker compose --file compose-multifeed.yaml --parallel 1 builddocker compose --file compose-multifeed.yaml --parallel 1 up --detach --force-recreate
cd ./docker-ogn2readsbnano config.varsdocker compose --parallel 1 up --detach --force-recreate(ordocker compose --file compose-multifeed.yaml --parallel 1 up --detach --force-recreate)
http://yourReceiverIP.local/tar1090
- quick hack for now: enable "UK Radar Corridors":
nano compose.yamlornano compose-multifeed.yaml- in section
rtlsdr-ogn:environment:replaceAPRS_SERVER=ogn2dump1090:14580withAPRS_SERVER=aprs.glidernet.org:14580 docker compose --parallel 1 up --detach --force-recreateordocker compose --file compose-multifeed.yaml --parallel 1 up --detach --force-recreate
http://yourReceiverIP:8080http://yourReceiverIP:8081
docker compose logs -fordocker compose --file compose-multifeed.yaml logs -f(monitor all containers)docker logs -f rtlsdr-ogndocker logs -f mlat-client-adsbloldocker logs -f readsbdocker logs -f ogn2dump1090docker logs -f tar1090
docker stats(CTRL Cto exit)
docker exec -it <yourDockerContainer> bash
docker ps -alist all docker containers, including stopped ones- docker container related commands
docker stop <container_name_or_id>stop a running containerdocker rm <container_name_or_id>deactivate a stopped containerdocker container pruneremove all stopped containersdocker compose downstop and remove all containers and networksdocker compose build --no-cacheonly build imagesdocker compose up --detach --build --force-recreatecreate images and start containersdocker compose up --detach --force-recreaterecreate and start containers
- docker image related commands
docker image lslist docker imagesdocker rmi <image_id_or_name>delete docker imagedocker image prunedelete all unused docker images
- docker system related commands
docker system pruneclean your docker environment
- clean your entire docker environment e.g. for a fresh setup
docker rm -f $(docker ps -aq)force remove ALL containersdocker system prune -af --volumesclean your entire docker environment
| Term | Meaning |
|---|---|
| Dockerfile | Build instructions |
| Image | Built / immutable system image |
| Container | Running instance of an image |
| Compose | Orchestration / startup plan for multiple containers |
