2022-01-15 11:28:23 +01:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
{
|
2022-11-01 00:21:38 +01:00
|
|
|
imports = [ ./neighbours.nix ];
|
2022-02-07 13:06:10 +01:00
|
|
|
|
2022-11-01 00:21:38 +01:00
|
|
|
microvm.interfaces = [{
|
2022-06-20 00:41:20 +02:00
|
|
|
type = "tap";
|
|
|
|
id = "c3d2-nncp";
|
|
|
|
mac = "de:ec:9a:6f:3f:63";
|
2022-11-01 00:21:38 +01:00
|
|
|
}];
|
2022-06-20 00:41:20 +02:00
|
|
|
|
2022-12-18 22:16:29 +01:00
|
|
|
c3d2 = {
|
|
|
|
deployment = {
|
|
|
|
server = "server10";
|
|
|
|
autoNetSetup = false;
|
|
|
|
};
|
|
|
|
hq.statistics.enable = true;
|
2023-05-21 15:37:27 +02:00
|
|
|
nncp.mergeSettings = false;
|
2022-06-20 00:41:20 +02:00
|
|
|
};
|
2022-01-15 11:28:23 +01:00
|
|
|
|
2022-06-21 18:32:15 +02:00
|
|
|
system.stateVersion = "22.05";
|
|
|
|
|
2022-01-15 11:28:23 +01:00
|
|
|
networking = {
|
|
|
|
hostName = "nncp";
|
|
|
|
firewall.enable = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.nncp = {
|
|
|
|
enable = true;
|
|
|
|
secrets = [ "/etc/nncp.secrets" ];
|
|
|
|
settings = {
|
2022-06-20 00:41:20 +02:00
|
|
|
mcd-listen = [ "c3d2" ];
|
|
|
|
mcd-send.c3d2 = 60;
|
2022-01-15 11:28:23 +01:00
|
|
|
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 = {
|
2022-09-01 21:28:20 +02:00
|
|
|
cron = "0 42 * * * * *";
|
2022-01-24 21:02:20 +01:00
|
|
|
xx = "tx"; # transmit only
|
|
|
|
when-tx-exists = true;
|
|
|
|
};
|
2022-12-04 08:53:28 +01:00
|
|
|
in lib.mapAttrs (_: value:
|
2022-01-24 21:02:20 +01:00
|
|
|
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
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-01-23 17:18:58 +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
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|