55 lines
1.4 KiB
Nix
55 lines
1.4 KiB
Nix
{ config, ... }:
|
|
|
|
let const = config.constants; hn = config.networking.hostName; in {
|
|
networking = {
|
|
domain = config.constants.domain;
|
|
firewall.allowedTCPPorts = with const.port; [ http https ];
|
|
hostId = "e6449321";
|
|
networkmanager = {
|
|
enable = true;
|
|
wifi.backend = "iwd";
|
|
};
|
|
nftables.enable = true;
|
|
tempAddresses = "disabled";
|
|
wireguard.interfaces.wgn = {
|
|
ips = [ "10.32.54.3/32" ];
|
|
peers = [{
|
|
allowedIPs = [ "10.32.54.0/24" ];
|
|
endpoint = "${const.domain}:${toString const.port.wireguard-server}";
|
|
persistentKeepalive = 54;
|
|
publicKey = "0j8+alXU/f2UgWN61R6+Wjs9xelGRwpSbe5NyOwWlF4=";
|
|
}];
|
|
privateKeyFile = config.sops.secrets."wireguard/${hn}".path;
|
|
};
|
|
wireless.iwd.enable = true;
|
|
};
|
|
|
|
services = {
|
|
cloudflare-dyndns = {
|
|
enable = true;
|
|
apiTokenFile = config.sops.secrets."cloudflare/${hn}".path;
|
|
domains = builtins.attrNames config.services.caddy.virtualHosts;
|
|
ipv4 = false;
|
|
ipv6 = true;
|
|
};
|
|
openssh = {
|
|
enable = true;
|
|
hostKeys = [{
|
|
comment = "host@${hn}";
|
|
path = "/etc/ssh/host";
|
|
rounds = 100;
|
|
type = "ed25519";
|
|
}];
|
|
settings = {
|
|
PasswordAuthentication = false;
|
|
KbdInteractiveAuthentication = false;
|
|
};
|
|
};
|
|
resolved.enable = true;
|
|
};
|
|
|
|
sops.secrets = {
|
|
"cloudflare/${hn}" = { };
|
|
"wireguard/${hn}" = { };
|
|
};
|
|
}
|