30 lines
774 B
Nix
30 lines
774 B
Nix
{
|
|
lib,
|
|
config,
|
|
settings,
|
|
...
|
|
}:
|
|
{
|
|
|
|
services.data-mesher.initNetwork =
|
|
let
|
|
# for a given machine, read it's public key and remove any new lines
|
|
readHostKey =
|
|
machine:
|
|
let
|
|
path = "${config.clan.core.settings.directory}/vars/per-machine/${machine}/data-mesher-host-key/public_key/value";
|
|
in
|
|
builtins.elemAt (lib.splitString "\n" (builtins.readFile path)) 1;
|
|
in
|
|
{
|
|
enable = true;
|
|
keyPath = config.clan.core.vars.generators.data-mesher-network-key.files.private_key.path;
|
|
|
|
tld = settings.network.tld;
|
|
hostTTL = settings.network.hostTTL;
|
|
|
|
# admin and signer host public keys
|
|
signingKeys = builtins.map readHostKey (builtins.attrNames settings.bootstrapNodes);
|
|
};
|
|
}
|