let secret = import ../../secret/container/adsb; in { virtualisation.oci-containers.containers = { readsb = { image = "ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest"; 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"; }; volumes = [ "/etc/container-adsb/readsb/autogain:/run/autogain" ]; extraOptions = [ "--device=/dev/bus/usb:/dev/bus/usb" "--tmpfs=/run:exec,size=64M" "--tmpfs=/var/log:size=32M" "--label=com.centurylinklabs.watchtower.enable=true" "--label=io.containers.autoupdate=registry" ]; }; mlathub = { image = "ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest"; dependsOn = [ "readsb" "piaware" ]; 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"; "READSB_NET_BEAST_OUTPUT_PORT" = "30105"; }; extraOptions = [ "--tmpfs=/run:exec,size=64M" "--tmpfs=/var/log:size=32M" "--label=com.centurylinklabs.watchtower.enable=true" "--label=io.containers.autoupdate=registry" ]; }; tar1090 = { image = "ghcr.io/sdr-enthusiasts/docker-tar1090:latest"; dependsOn = [ "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" ]; extraOptions = [ "--tmpfs=/run:exec,size=64M" "--tmpfs=/var/log" "--label=com.centurylinklabs.watchtower.enable=true" "--label=io.containers.autoupdate=registry" ]; }; fr24feed = { image = "ghcr.io/sdr-enthusiasts/docker-flightradar24:latest"; dependsOn = [ "readsb" ]; environment = { "TZ" = "Europe/Berlin"; "BEASTHOST" = "readsb"; "BEASTPORT" = "30005"; "MLAT" = "yes"; "FR24KEY" = secret.container.adsb.fr24feed.key; }; extraOptions = [ "--tmpfs=/run:exec,size=64M" "--tmpfs=/var/log" "--label=com.centurylinklabs.watchtower.enable=true" "--label=io.containers.autoupdate=registry" ]; }; piaware = { image = "ghcr.io/sdr-enthusiasts/docker-piaware:latest"; dependsOn = [ "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; }; extraOptions = [ "--tmpfs=/run:exec,size=64M" "--tmpfs=/var/log" "--label=com.centurylinklabs.watchtower.enable=true" "--label=io.containers.autoupdate=registry" ]; }; }; systemd.tmpfiles.rules = [ "d /etc/container-adsb 0755 root root" "d /etc/container-adsb/readsb 0755 1000 1000" "d /etc/container-adsb/readsb/autogain 0755 1000 1000" "d /etc/container-adsb/tar1090 0755 1000 1000" "d /etc/container-adsb/tar1090/heatmap 0755 1000 1000" ]; }