dotfiles/container/adsb/default.nix

173 lines
5.5 KiB
Nix

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