2021-10-14 16:11:56 +02:00
|
|
|
{ config, pkgs, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
boot.blacklistedKernelModules = [
|
|
|
|
# no watching TV intended
|
|
|
|
"dvb_usb_rtl28xxu"
|
|
|
|
];
|
2021-10-31 23:51:09 +01:00
|
|
|
users.users.readsb = {
|
2021-10-14 16:11:56 +02:00
|
|
|
isSystemUser = true;
|
2021-10-31 23:51:09 +01:00
|
|
|
group = "adsb";
|
2021-10-14 16:11:56 +02:00
|
|
|
};
|
2021-10-31 23:51:09 +01:00
|
|
|
users.groups.adsb = {};
|
2021-10-31 23:49:12 +01:00
|
|
|
systemd.services.readsb = {
|
2021-10-14 16:11:56 +02:00
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
serviceConfig = {
|
2021-10-31 00:09:56 +02:00
|
|
|
ExecStart = "${pkgs.readsb}/bin/readsb --modeac --aggressive --dcfilter --quiet --gain=-10 --lon=13.7281 --lat=51.081 --net --net-sbs-port=30003";
|
2021-10-31 23:51:09 +01:00
|
|
|
User = "readsb";
|
|
|
|
Group = "adsb";
|
2021-10-14 16:11:56 +02:00
|
|
|
ProtectSystem = "full";
|
|
|
|
ProtectHome = true;
|
2021-10-30 22:52:01 +02:00
|
|
|
Restart = "always";
|
|
|
|
RestartSec = "10s";
|
|
|
|
};
|
|
|
|
};
|
2021-10-31 23:51:09 +01:00
|
|
|
|
|
|
|
users.users.sbs2json = {
|
|
|
|
isSystemUser = true;
|
|
|
|
group = "adsb";
|
|
|
|
};
|
2021-10-30 22:52:01 +02:00
|
|
|
# SHIM because readsb has no web server like dump1090
|
|
|
|
systemd.services.sbs2json = {
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
2021-10-31 23:49:12 +01:00
|
|
|
requires = [ "readsb.service" ];
|
2021-10-30 22:52:01 +02:00
|
|
|
serviceConfig = {
|
|
|
|
ExecStart = "${pkgs.ruby}/bin/ruby ${./sbs2json.rb}";
|
2021-10-31 23:51:09 +01:00
|
|
|
User = "sbs2json";
|
|
|
|
Group = "adsb";
|
2021-10-30 22:52:01 +02:00
|
|
|
ProtectSystem = "full";
|
|
|
|
ProtectHome = true;
|
|
|
|
Restart = "always";
|
|
|
|
RestartSec = "10s";
|
2021-10-14 16:11:56 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-10-15 19:14:17 +02:00
|
|
|
users.users.dump1090-influxdb = {
|
|
|
|
isSystemUser = true;
|
2021-10-31 23:51:09 +01:00
|
|
|
group = "adsb";
|
2021-10-15 19:14:17 +02:00
|
|
|
};
|
|
|
|
systemd.services.dump1090-influxdb = {
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
2021-10-31 23:49:12 +01:00
|
|
|
requires = [ "readsb.service" ];
|
2021-10-15 19:14:17 +02:00
|
|
|
serviceConfig = {
|
|
|
|
ExecStart = "${pkgs.dump1090-influxdb}/bin/dump1090-influxdb";
|
|
|
|
User = "dump1090-influxdb";
|
2021-10-31 23:51:09 +01:00
|
|
|
Group = "adsb";
|
2021-10-15 19:14:17 +02:00
|
|
|
ProtectSystem = "full";
|
|
|
|
ProtectHome = true;
|
|
|
|
Restart = "always";
|
|
|
|
RestartSec = "10s";
|
|
|
|
};
|
|
|
|
};
|
2021-10-14 16:11:56 +02:00
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
dump1090_sdrplus
|
2021-10-30 22:52:01 +02:00
|
|
|
readsb
|
2021-10-14 16:11:56 +02:00
|
|
|
];
|
|
|
|
}
|