28 lines
692 B
Nix
28 lines
692 B
Nix
{ config, lib, pkgs, ... }:
|
|
{
|
|
options.services.wg.client.enable = lib.mkEnableOption "Enable Wireguard client";
|
|
|
|
config = lib.mkIf config.services.wg.client.enable {
|
|
boot.kernelModules = [ "wireguard" ];
|
|
|
|
systemd.network = {
|
|
netdevs = {
|
|
"10-wg0" = {
|
|
netdevConfig = {
|
|
Kind = "wireguard";
|
|
Name = "wg0";
|
|
MTUBytes = "1300";
|
|
};
|
|
wireguardConfig = {
|
|
PrivateKeyFile = pkgs.writeText "wgclientsecret" config.secrets.wg.clientKey;
|
|
ListenPort = 9918;
|
|
};
|
|
};
|
|
};
|
|
networks."wg0" = {
|
|
matchConfig.Name = "wg0";
|
|
DHCP = "no";
|
|
};
|
|
};
|
|
};
|
|
}
|