nix-config/modules/secrets/wireguard/default.nix

31 lines
567 B
Nix

{ lib, ... }:
let
peerSpec = {
# "Server"
porthos = {
clientNum = 1;
externalIp = "91.121.177.163";
};
# "Clients"
aramis = {
clientNum = 2;
};
richelieu = {
clientNum = 3;
};
};
makePeer = name: attrs: with lib; {
inherit (attrs) clientNum;
publicKey = fileContents (./. + "/${name}/public.key");
privateKey = fileContents (./. + "/${name}/secret.key");
} // optionalAttrs (attrs ? externalIp) {
inherit (attrs) externalIp;
};
in
{
peers = builtins.mapAttrs makePeer peerSpec;
}