nix-config/hosts/containers/nncp/default.nix

61 lines
1.5 KiB
Nix
Raw Normal View History

2022-01-15 11:28:23 +01:00
{ config, lib, pkgs, ... }:
{
2022-02-07 13:06:10 +01:00
imports = [ ./neighbours.nix ];
2022-01-15 11:28:23 +01:00
c3d2.mergeNncpSettings = false;
c3d2.hq.statistics.enable = true;
2022-01-30 20:34:20 +01:00
c3d2.autoUpdate = true;
2022-01-15 11:28:23 +01:00
networking = {
hostName = "nncp";
firewall.enable = false;
};
programs.nncp = {
enable = true;
secrets = [ "/etc/nncp.secrets" ];
settings = {
mcd-listen = [ "eth0" ];
mcd-send.eth0 = 60;
neigh = # use c3d2.nncp.neigh but remove this node
2022-01-24 21:02:20 +01:00
let
2022-03-10 17:13:17 +01:00
hourlyCall = {
cron = "0 42 * * * * *"; # 4:00
2022-01-24 21:02:20 +01:00
xx = "tx"; # transmit only
when-tx-exists = true;
};
in lib.mapAttrs (name: value:
value // {
via = lib.lists.remove "c3d2" value.via;
2022-02-07 13:06:10 +01:00
} // (lib.attrsets.optionalAttrs (value.addrs or { } != { }) {
2022-03-10 17:13:17 +01:00
calls = [ hourlyCall ];
2022-01-26 12:47:54 +01:00
})) (builtins.removeAttrs config.c3d2.nncp.neigh [ "c3d2" ]);
2022-01-15 11:28:23 +01:00
};
};
services.collectd.plugins.exec = let
util =
pkgs.runCommand "collectd_nncp" { nativeBuildInputs = [ pkgs.nim ]; } ''
cp ${./collectd_nncp.nim} ./collectd_nncp.nim
nim c --nimcache:. -o:$out ./collectd_nncp.nim
'';
in ''
Exec "${config.services.collectd.user}" "${util}" "${config.programs.nncp.settings.spool}"
'';
users.groups.uucp.members = [ config.services.collectd.user ];
2022-01-15 11:28:23 +01:00
services.nncp = {
2022-01-30 20:34:20 +01:00
caller = {
enable = true;
extraArgs = [ "-autotoss" ];
};
2022-01-15 11:28:23 +01:00
daemon = {
enable = true;
socketActivation.enable = false;
2022-01-30 20:34:20 +01:00
extraArgs = [ "-autotoss" ];
2022-01-15 11:28:23 +01:00
};
};
}