summaryrefslogtreecommitdiff
path: root/modules/ddns.nix
blob: 0253d696ef0f30c6e9a0ed6a3a9da59bb0fd25f2 (plain)
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
{ me, config, ddnnss, ... }:

let
  domain = "rnrd.eu";
in
{
  imports = [ ddnnss.nixosModules.default ];

  age.secrets.bunny-dns = {
    file = ../secrets/bunny-dns.age;
  };

  services.ddnnss = {
    enable = true;
    interval = "30min";

    credentials = {
      bunny-dns = config.age.secrets.bunny-dns.path;
    };

    settings = {
      records = [
        {
          zone = domain;
          name = me.name;
          type = "AAAA";
          provider = "bunny";
          source = "icanhazip";
        }
      ];

      providers.bunny = {
        kind = "bunny";
        keyFile = "$CREDENTIALS_DIRECTORY/bunny-dns";
      };

      sources.icanhazip = {
        kind = "icanhazip";
      };
    };
  };
}