{ meta, dns, lib, ... }: let inherit (lib) mapAttrs' nameValuePair; in with dns.lib.combinators; { SOA = { nameServer = "ns01.lab.dgnum.eu"; adminEmail = "dns@dgnum.eu"; serial = 2019030800; retry = 3600; minimum = 300; }; NS = [ "ns01.lab.dgnum.eu." ]; #A = [ "203.0.113.1" ]; #AAAA = [ "4321:0:1:2:3:4:567:89ab" ]; subdomains = { # Hosted services # NOTE: for now manually supplied, in the future automatically filled in photoprism = host "129.199.146.101" null; immich = host "129.199.146.101" null; homebox = host "129.199.146.102" null; status = host "129.199.146.103" null; kfet = host "129.199.146.230" "2a0e:e701:1120:1000::f:1"; # Nameservers ns01 = host "45.13.104.26" "2a0e:e701:1120:1000:ffff::45.13.104.26"; # *.infra.lab.dgnum.eu infra = { subdomains = mapAttrs' ( host: { site, ... }: nameValuePair "${host}.${site}" ( with meta.network.${host}.addresses; { A = ipv4; AAAA = ipv6; subdomains = { v4.A = ipv4; v6.AAAA = ipv6; }; } ) ) meta.nodes; }; }; }