From a80f9d9d1e3420b7bc8bdc923db445c7e32316f1 Mon Sep 17 00:00:00 2001 From: Astro Date: Wed, 10 Nov 2021 00:30:02 +0100 Subject: [PATCH] radiobert: add mlat-client --- hosts/radiobert/readsb.nix | 24 +++++++++++++++++++++++- overlay/default.nix | 2 ++ overlay/mlat-client.nix | 13 +++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 overlay/mlat-client.nix diff --git a/hosts/radiobert/readsb.nix b/hosts/radiobert/readsb.nix index beeda6e0..bcd1922d 100644 --- a/hosts/radiobert/readsb.nix +++ b/hosts/radiobert/readsb.nix @@ -1,6 +1,9 @@ { config, pkgs, ... }: let + lat = "51.081"; + lon = "13.728"; + altitude = "150"; statsDir = "/run/adsb-feed"; in { boot.blacklistedKernelModules = [ @@ -18,7 +21,7 @@ in { systemd.services.readsb = { wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStart = "${pkgs.readsb}/bin/readsb --device-type rtlsdr --modeac --aggressive --fix --stats-range --dcfilter --quiet --gain=-10 --lon=13.728 --lat=51.081 --write-json=${statsDir} --net --net-ro-port=30002 --net-sbs-port=30003 --net-bo-port=30005 --net-vrs-port=30006 --net-beast-reduce-interval 1 --net-connector feed.adsbexchange.com,30005,beast_reduce_out --uuid-file=${builtins.toFile "uuid" "68a0e3e1-c866-481c-b0cb-f12ff9e7465f"}"; + ExecStart = "${pkgs.readsb}/bin/readsb --device-type rtlsdr --modeac --aggressive --fix --stats-range --dcfilter --quiet --gain=-10 --lon=${lon} --lat=${lat} --write-json=${statsDir} --net --net-ro-port=30002 --net-sbs-port=30003 --net-bo-port=30005 --net-vrs-port=30006 --net-beast-reduce-interval 1 --net-connector feed.adsbexchange.com,30005,beast_reduce_out --uuid-file=${builtins.toFile "uuid" "68a0e3e1-c866-481c-b0cb-f12ff9e7465f"}"; User = "readsb"; Group = "adsb"; ProtectSystem = "full"; @@ -29,6 +32,25 @@ in { }; }; + users.users.mlat-client = { + isSystemUser = true; + group = "adsb"; + }; + # Feeds adsbexchange.com, test at https://www.adsbexchange.com/myip/ + systemd.services.mlat-client = { + wantedBy = [ "multi-user.target" ]; + requires = [ "mlat-client.service" ]; + serviceConfig = { + ExecStart = "${pkgs.mlat-client}/bin/mlat-client --input-type beast --input-connect radiobert.serv.zentralwerk.org:30005 --lat ${lat} --lon ${lon} --alt ${altitude} --user C3D2"; + User = "mlat-client"; + Group = "adsb"; + ProtectSystem = "full"; + ProtectHome = true; + Restart = "always"; + RestartSec = "10s"; + }; + }; + users.users.sbs2json = { isSystemUser = true; group = "adsb"; diff --git a/overlay/default.nix b/overlay/default.nix index 2a1c3352..dd2c664d 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -15,5 +15,7 @@ final: prev: dump1090-influxdb = import ./dump1090-influxdb { pkgs = prev; }; + mlat-client = prev.python3Packages.callPackage ./mlat-client.nix { }; + readsb = prev.callPackage ./readsb.nix { }; } diff --git a/overlay/mlat-client.nix b/overlay/mlat-client.nix new file mode 100644 index 00000000..af20b469 --- /dev/null +++ b/overlay/mlat-client.nix @@ -0,0 +1,13 @@ +{ buildPythonApplication, fetchFromGitHub }: + +buildPythonApplication rec { + pname = "mlat-client"; + version = "0.3.8"; + + src = fetchFromGitHub { + owner = "adsbxchange"; + repo = "mlat-client"; + rev = "v${version}"; + sha256 = "0dg554x6wm5wajgb2rz56b383zn7vbmpy1w9cfr8rq99jvyliv7l"; + }; +}