69 lines
1.8 KiB
Nix
69 lines
1.8 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
boot.loader.initScript.enable = lib.mkForce false;
|
|
|
|
c3d2.mergeNncpSettings = false;
|
|
c3d2.hq.statistics.enable = true;
|
|
|
|
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
|
|
let
|
|
nightCall = {
|
|
cron = "0 0 4 * * * *"; # 4:00
|
|
maxonlinetime = 14400; # vier stunde
|
|
xx = "tx"; # transmit only
|
|
when-tx-exists = true;
|
|
};
|
|
in lib.mapAttrs (name: value:
|
|
value // {
|
|
via = lib.lists.remove "c3d2" value.via;
|
|
} // (if (value.addrs or { }) == { } then
|
|
{ }
|
|
else {
|
|
calls = [ nightCall ];
|
|
})) (builtins.removeAttrs config.c3d2.nncp.neigh [ "c3d2" ]);
|
|
};
|
|
};
|
|
|
|
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 ];
|
|
|
|
services.nncp = {
|
|
caller.enable = false;
|
|
daemon = {
|
|
enable = true;
|
|
socketActivation.enable = false;
|
|
};
|
|
};
|
|
|
|
systemd.services."nncp-daemon-yggdrasil" = {
|
|
after = [ "network.target" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
serviceConfig = config.systemd.services."nncp-daemon".serviceConfig // {
|
|
ExecStart =
|
|
"${pkgs.nncp}/bin/nncp-daemon -noprogress -autotoss -yggdrasil 'keyprv;;keypub;tcp://[2a00:8180:2c00:281:9000::1]:1337'";
|
|
};
|
|
};
|
|
|
|
}
|
|
|