Skip to content

Instantly share code, notes, and snippets.

@MattGrayYes
Last active May 6, 2024 11:50
Show Gist options
  • Save MattGrayYes/4149cedda042787df3734c3c94c8179d to your computer and use it in GitHub Desktop.
Save MattGrayYes/4149cedda042787df3734c3c94c8179d to your computer and use it in GitHub Desktop.
ADSB Ultrafeeder Docker Compose (Portainer Stack) Config, incl. ADSB Exchange, FlightAware (PiAware), and FlightRadar24
services:
ultrafeeder:
image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder
# Note - if you want to enable telegraf for use with InfluxDB/Prometheus and Grafana,
# use the following image instead:
# image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder:telegraf
tty: true
container_name: ultrafeeder
hostname: ultrafeeder
restart: unless-stopped
device_cgroup_rules:
- "c 189:* rwm"
ports:
- 8080:80 # to expose the web interface
#- 9273-9274:9273-9274 # to expose the statistics interface to Prometheus
environment:
# --------------------------------------------------
# general parameters:
- LOGLEVEL=error
- TZ=${FEEDER_TZ}
# --------------------------------------------------
# SDR related parameters:
- READSB_DEVICE_TYPE=rtlsdr
- READSB_RTLSDR_DEVICE=${ADSB_SDR_SERIAL}
- READSB_RTLSDR_PPM=${ADSB_SDR_PPM}
#
# --------------------------------------------------
# readsb/decoder parameters:
- READSB_LAT=${FEEDER_LAT}
- READSB_LON=${FEEDER_LONG}
- READSB_ALT=${FEEDER_ALT_M}m
- READSB_GAIN=${ADSB_SDR_GAIN}
- READSB_RX_LOCATION_ACCURACY=1
- READSB_STATS_RANGE=true
#
# --------------------------------------------------
# Sources and Aggregator connections:
# Notes - remove the ones you are not using / feeding
# - remove "adsb,dump978,30978,uat_in;" if you don't have dump978 and a UAT dongle connected to your station
# - !!! make sure that each line ends with a semicolon ";", with the exception of the last line which shouldn't have a ";" !!!
- ULTRAFEEDER_CONFIG=
adsb,feed.adsb.fi,30004,beast_reduce_plus_out;
adsb,in.adsb.lol,30004,beast_reduce_plus_out;
adsb,feed.airplanes.live,30004,beast_reduce_plus_out;
adsb,feed.planespotters.net,30004,beast_reduce_plus_out;
adsb,feed.theairtraffic.com,30004,beast_reduce_plus_out;
adsb,data.avdelphi.com,24999,beast_reduce_plus_out;
adsb,skyfeed.hpradar.com,30004,beast_reduce_plus_out;
adsb,feed.radarplane.com,30001,beast_reduce_plus_out;
adsb,dati.flyitalyadsb.com,4905,beast_reduce_plus_out;
mlat,feed.adsb.fi,31090,39000;
mlat,in.adsb.lol,31090,39001;
mlat,feed.airplanes.live,31090,39002;
mlat,mlat.planespotters.net,31090,39003;
mlat,feed.theairtraffic.com,31090,39004;
mlat,skyfeed.hpradar.com,31090,39005;
mlat,feed.radarplane.com,31090,39006;
mlat,dati.flyitalyadsb.com,30100,39007;
mlathub,piaware,30105,beast_in;
adsb,feed1.adsbexchange.com,30004,beast_reduce_plus_out,uuid=${ADSBX_UUID};
mlat,feed.adsbexchange.com,31090,39008,uuid=${ADSBX_UUID}
# If you really want to feed ADSBExchange, you can do so by adding this above:
# adsb,feed1.adsbexchange.com,30004,beast_reduce_plus_out,uuid=${ADSBX_UUID};
# mlat,feed.adsbexchange.com,31090,39008,uuid=${ADSBX_UUID}
#
# Removed Feeders:
# mlathub,rbfeeder,30105,beast_in;
# mlathub,radarvirtuel,30105,beast_in;
# mlathub,planewatch,30105,beast_in;
# adsb,dump978,30978,uat_in;
# --------------------------------------------------
- UUID=${MULTIFEEDER_UUID}
- MLAT_USER=${FEEDER_NAME}
#
# --------------------------------------------------
# TAR1090 (Map Web Page) parameters:
- UPDATE_TAR1090=true
- TAR1090_DEFAULTCENTERLAT=${FEEDER_LAT}
- TAR1090_DEFAULTCENTERLON=${FEEDER_LONG}
- TAR1090_MESSAGERATEINTITLE=true
- TAR1090_PAGETITLE=${FEEDER_NAME}
- TAR1090_PLANECOUNTINTITLE=true
- TAR1090_ENABLE_AC_DB=true
- TAR1090_FLIGHTAWARELINKS=true
- HEYWHATSTHAT_PANORAMA_ID=${FEEDER_HEYWHATSTHAT_ID}
- HEYWHATSTHAT_ALTS=${FEEDER_HEYWHATSTHAT_ALTS}
- TAR1090_SITESHOW=true
- TAR1090_RANGE_OUTLINE_COLORED_BY_ALTITUDE=true
- TAR1090_RANGE_OUTLINE_WIDTH=2.0
- TAR1090_RANGERINGSDISTANCES=50,100,150,200
- TAR1090_RANGERINGSCOLORS='#1A237E','#0D47A1','#42A5F5','#64B5F6'
- TAR1090_USEROUTEAPI=true
#
# --------------------------------------------------
# GRAPHS1090 (Decoder and System Status Web Page) parameters:
# The two 978 related parameters should only be included if you are running dump978 for UAT reception (USA only)
- GRAPHS1090_DARKMODE=true
# - ENABLE_978=yes
# - URL_978=http://dump978/skyaware978
#
# --------------------------------------------------
# Prometheus and InfluxDB connection parameters:
# (See above for the correct image tag you must use to enable this)
#- INFLUXDBV2_URL=${INFLUX_URL}
#- INFLUXDBV2_TOKEN=${INFLUX_TOKEN}
#- INFLUXDBV2_BUCKET=${INFLUX_BUCKET}
- PROMETHEUS_ENABLE=false
volumes:
# Created adsb volume in Portainer, then copied its _data path
- /var/snap/docker/common/var-lib-docker/volumes/adsb/_data/ultrafeeder/globe_history:/var/globe_history
- /var/snap/docker/common/var-lib-docker/volumes/adsb/_data/ultrafeeder/graphs1090:/var/lib/collectd
- /proc/diskstats:/proc/diskstats:ro
- /dev:/dev:ro
tmpfs:
- /run:exec,size=256M
- /tmp:size=128M
- /var/log:size=32M
devices:
- /dev/bus/usb:/dev/bus/usb
piaware:
image: ghcr.io/sdr-enthusiasts/docker-piaware:latest
tty: true
container_name: piaware
restart: unless-stopped
ports:
- 8081:8080
environment:
- BEASTHOST=ultrafeeder
- LAT=${FEEDER_LAT}
- LONG=${FEEDER_LONG}
- TZ=${FEEDER_TZ}
- FEEDER_ID=${PIAWARE_FEEDER_ID}
tmpfs:
- /run:exec,size=64M
- /var/log
fr24:
image: ghcr.io/sdr-enthusiasts/docker-flightradar24:latest
tty: true
container_name: fr24
restart: unless-stopped
ports:
- 8754:8754
environment:
- BEASTHOST=ultrafeeder
- FR24KEY=${FR24_SHARING_KEY}
tmpfs:
- /var/log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment