feat(dns,nginx): add some weird magic

This commit is contained in:
Luj 2024-10-26 04:09:35 +02:00
parent ab03b23b45
commit 714a279fc2
Signed by: luj
GPG key ID: 6FC74C847011FD83
8 changed files with 127 additions and 72 deletions

View file

@ -1,20 +1,9 @@
{
lib,
config,
dnsLib,
...
}:
let
cfg = config.machine.meta;
allowedDomains = [
"luj.fr"
"julienmalka.me"
"malka.family"
"luj"
"malka.sh"
];
isVPNDomain = domain: lib.dns.domainToZone [ "luj" ] domain != null;
SOA = {
nameServer = "ns";
adminEmail = "dns@malka.sh";
@ -57,27 +46,4 @@ with lib;
};
};
config =
let
# list of domains that are defined in the current configuration through virtualHosts
domains = dns.domainsFromConfiguration allowedDomains config;
# AttrSet domain -> { records }
recordsPerDomain = map (
domain:
mapAttrs' (
n: v:
nameValuePair (dns.domainToZone allowedDomains n) (
let
subdomain = dns.getDomainPrefix allowedDomains n;
in
if elem subdomain allowedDomains then v else { subdomains."${subdomain}" = v; }
)
) (dns.domainToRecords domain cfg (isVPNDomain domain))
) domains;
in
{
machine.meta.zones = mkMerge recordsPerDomain;
};
}