mirror of
https://github.com/JulienMalka/snowfield.git
synced 2025-06-08 10:09:04 +02:00
feat(dns,nginx): add some weird magic
This commit is contained in:
parent
ab03b23b45
commit
714a279fc2
8 changed files with 127 additions and 72 deletions
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue