{ dns, lib, ... }: let inherit (lib) mapAttrs' nameValuePair; meta = (import ./../../meta) lib; in with dns.lib.combinators; { SOA = { nameServer = "ns01.beta.dgnum.eu"; adminEmail = "dns@dgnum.eu"; serial = 2019030800; retry = 3600; minimum = 300; }; NS = [ # TODO: add nameservers with GLUE and everything ]; #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; # Nameservers # TODO: fill this in #ns01 = host "" null; # *.infra.beta.dgnum.eu infra = { subdomains = mapAttrs' ( host: { site, ... }: nameValuePair "${host}.${site}" ( with meta.network.${host}.addresses; { A = ipv4; # FIXME: Enable ipv6 in all VM nodes #AAAA = ipv6; subdomains = { v4.A = ipv4; #v6.AAAA = ipv6; }; } ) ) meta.nodes; }; }; }