system/roles/dynamic-dns.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | {
config,
lib,
...
}:
let
zone = "alin.ovh";
server = "pdns.${zone}";
domains = [
"home.${zone}"
];
in
{
age.secrets = {
dyndns.file = ../../secrets/dyndns.age;
};
services.ddclient = {
enable = true;
inherit zone server domains;
protocol = "nsupdate";
passwordFile = config.age.secrets.dyndns.path;
};
networking.firewall = {
allowedTCPPorts = [
80
443
];
allowedUDPPorts = [
443
];
};
services.caddy.virtualHosts = {
${builtins.head domains} = {
extraConfig = lib.mkDefault ''
respond "Hello, world!"
'';
};
};
}
|