Add custom libs subdomainOf and rootDomainOf

This commit is contained in:
SebastianStork 2025-10-12 23:15:32 +02:00
parent f3ea2b75e6
commit 8807d38b57
3 changed files with 9 additions and 10 deletions

View file

@ -1,3 +1,7 @@
lib: { lib: {
isTailscaleDomain = domain: domain |> lib.hasSuffix ".ts.net"; isTailscaleDomain = domain: domain |> lib.hasSuffix ".ts.net";
subdomainOf = domain: domain |> lib.splitString "." |> lib.head;
rootDomainOf = domain: domain |> lib.splitString "." |> lib.tail |> lib.concatStringsSep ".";
} }

View file

@ -20,9 +20,6 @@ let
443 443
]; ];
subdomainOf = domain: domain |> lib.splitString "." |> lib.head;
rootDomainOf = domain: domain |> lib.splitString "." |> lib.tail |> lib.concatStringsSep ".";
mkWildCardDomain = mkWildCardDomain =
rootDomain: values: rootDomain: values:
lib.nameValuePair "*.${rootDomain}" { lib.nameValuePair "*.${rootDomain}" {
@ -33,8 +30,8 @@ let
{ domain, port, ... }: { domain, port, ... }:
'' ''
import subdomain-log ${domain} import subdomain-log ${domain}
@${subdomainOf domain} host ${domain} @${lib.custom.subdomainOf domain} host ${domain}
handle @${subdomainOf domain} { handle @${lib.custom.subdomainOf domain} {
reverse_proxy localhost:${toString port} reverse_proxy localhost:${toString port}
} }
''; '';
@ -47,7 +44,7 @@ let
lib.nameValuePair domain { lib.nameValuePair domain {
logFormat = "output file ${config.services.caddy.logDir}/${domain}.log { mode 640 }"; logFormat = "output file ${config.services.caddy.logDir}/${domain}.log { mode 640 }";
extraConfig = '' extraConfig = ''
bind tailscale/${subdomainOf domain} bind tailscale/${lib.custom.subdomainOf domain}
reverse_proxy localhost:${toString port} reverse_proxy localhost:${toString port}
''; '';
}; };
@ -150,7 +147,7 @@ in
''; '';
virtualHosts = virtualHosts =
nonTailscaleHosts nonTailscaleHosts
|> lib.groupBy (value: rootDomainOf value.domain) |> lib.groupBy (value: lib.custom.rootDomainOf value.domain)
|> lib.mapAttrs' mkWildCardDomain; |> lib.mapAttrs' mkWildCardDomain;
}; };
}) })

View file

@ -101,8 +101,6 @@ in
custom.services.gatus.endpoints = custom.services.gatus.endpoints =
let let
getSubdomain = domain: domain |> lib.splitString "." |> lib.head;
defaultEndpoints = defaultEndpoints =
self.nixosConfigurations self.nixosConfigurations
|> lib.mapAttrs (_: value: value.config.meta.domains.list) |> lib.mapAttrs (_: value: value.config.meta.domains.list)
@ -112,7 +110,7 @@ in
|> lib.filter (domain: domain != cfg.domain) |> lib.filter (domain: domain != cfg.domain)
|> lib.map ( |> lib.map (
domain: domain:
lib.nameValuePair (getSubdomain domain) { lib.nameValuePair (lib.custom.subdomainOf domain) {
inherit domain; inherit domain;
group = hostName; group = hostName;
} }