let secret = import ../../secret/container/adsb; custom-config = import ./config.nix; in { virtualisation.arion.projects.adsb.settings = { services = { readsb = { service = { image = "ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest"; container_name = "readsb"; hostname = "readsb"; restart = "unless-stopped"; environment = { "TZ" = "Europe/Berlin"; "DISABLE_PERFORMANCE_GRAPHS" = "true"; "DISABLE_WEBAPP" = "true"; "READSB_NET_ENABLE" = "true"; "READSB_DCFILTER" = "true"; "READSB_FIX" = "true"; "READSB_GAIN" = "autogain"; "READSB_LAT" = secret.container.adsb.readsb.lat; "READSB_LON" = secret.container.adsb.readsb.lon; "READSB_MODEAC" = "true"; "READSB_RX_LOCATION_ACCURACY" = "2"; }; devices = [ "/dev/bus/usb:/dev/bus/usb" ]; volumes = [ "/etc/container-adsb/readsb/autogain:/run/autogain" ]; tmpfs = [ "/run:exec,size=64M" "/var/log:size=32M" ]; labels = { "com.centurylinklabs.watchtower.enable" = "true"; }; }; }; mlathub = { service = { image = "ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest"; container_name = "mlathub"; hostname = "mlathub"; restart = "unless-stopped"; depends_on = [ "readsb" "piaware" "adsbexchange" ]; environment = { "TZ" = "Europe/Berlin"; "DISABLE_PERFORMANCE_GRAPHS" = "true"; "DISABLE_WEBAPP" = "true"; "READSB_NET_ENABLE" = "true"; "READSB_NET_ONLY" = "true"; "READSB_FORWARD_MLAT" = "true"; "READSB_NET_CONNECTOR" = "piaware,30105,beast_in;adsbexchange,30105,beast_in"; "READSB_NET_BEAST_OUTPUT_PORT" = "30105"; }; tmpfs = [ "/run:exec,size=64M" "/var/log:size=32M" ]; labels = { "com.centurylinklabs.watchtower.enable" = "true"; }; }; }; tar1090 = { service = { image = "ghcr.io/sdr-enthusiasts/docker-tar1090:latest"; container_name = "tar1090"; restart = "unless-stopped"; depends_on = [ "readsb" "mlathub" ]; ports = [ "8081:80" ]; environment = { "TZ" = "Europe/Berlin"; "BEASTHOST" = "readsb"; "BEASTPORT" = "30005"; "MLATHOST" = "mlathub"; "MLATPORT" = "30105"; "LAT" = secret.container.adsb.readsb.lat; "LONG" = secret.container.adsb.readsb.lon; "HEYWHATSTHAT_PANORAMA_ID" = secret.container.adsb.tar1090.heywhatsthatId; "TAR1090_FLIGHTAWARELINKS" = "true"; "TAR1090_DISPLAYUNITS" = "metric"; }; volumes = [ "/etc/container-adsb/tar1090/heatmap:/var/globe_history" ]; tmpfs = [ "/run:exec,size=64M" "/var/log" ]; labels = { "com.centurylinklabs.watchtower.enable" = "true"; }; }; }; adsbexchange = { service = { image = "ghcr.io/sdr-enthusiasts/docker-adsbexchange:latest"; container_name = "adsbexchange"; restart = "unless-stopped"; depends_on = [ "readsb" ]; environment = { "TZ" = "Europe/Berlin"; "BEASTHOST" = "readsb"; "BEASTPORT" = "30005"; "LAT" = secret.container.adsb.readsb.lat; "LONG" = secret.container.adsb.readsb.lon; "ALT" = "70m"; "SITENAME" = secret.container.adsb.adsbexchange.sitename; "PRIVATE_MLAT" = "true"; "UUID" = secret.container.adsb.adsbexchange.uuid; }; tmpfs = [ "/run:rw,nosuid,nodev,exec,relatime,size=64M,uid=1000,gid=1000" ]; labels = { "com.centurylinklabs.watchtower.enable" = "true"; }; }; }; fr24feed = { service = { image = "ghcr.io/sdr-enthusiasts/docker-flightradar24:latest"; container_name = "fr24feed"; restart = "unless-stopped"; depends_on = [ "readsb" ]; environment = { "TZ" = "Europe/Berlin"; "BEASTHOST" = "readsb"; "BEASTPORT" = "30005"; "MLAT" = "yes"; "FR24KEY" = secret.container.adsb.fr24feed.key; }; labels = { "com.centurylinklabs.watchtower.enable" = "true"; }; }; }; piaware = { service = { image = "ghcr.io/sdr-enthusiasts/docker-piaware:latest"; container_name = "piaware"; restart = "unless-stopped"; depends_on = [ "readsb" ]; environment = { "TZ" = "Europe/Berlin"; "RECEIVER_TYPE" = "relay"; "BEASTHOST" = "readsb"; "BEASTPORT" = "30005"; "ALLOW_MLAT" = "yes"; "MLAT_RESULTS" = "yes"; "LAT" = secret.container.adsb.readsb.lat; "LONG" = secret.container.adsb.readsb.lon; "FEEDER_ID" = secret.container.adsb.piaware.feederId; }; tmpfs = [ "/run:exec,size=64M" "/var/log" ]; labels = { "com.centurylinklabs.watchtower.enable" = "true"; }; }; }; }; }; } // custom-config