diff --git a/lib/default.nix b/lib/default.nix index 71adfb7..83404b7 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,3 +1,7 @@ lib: { isTailscaleDomain = domain: domain |> lib.hasSuffix ".ts.net"; + + subdomainOf = domain: domain |> lib.splitString "." |> lib.head; + + rootDomainOf = domain: domain |> lib.splitString "." |> lib.tail |> lib.concatStringsSep "."; } diff --git a/modules/system/services/caddy.nix b/modules/system/services/caddy.nix index dacdb72..1201c4b 100644 --- a/modules/system/services/caddy.nix +++ b/modules/system/services/caddy.nix @@ -20,9 +20,6 @@ let 443 ]; - subdomainOf = domain: domain |> lib.splitString "." |> lib.head; - rootDomainOf = domain: domain |> lib.splitString "." |> lib.tail |> lib.concatStringsSep "."; - mkWildCardDomain = rootDomain: values: lib.nameValuePair "*.${rootDomain}" { @@ -33,8 +30,8 @@ let { domain, port, ... }: '' import subdomain-log ${domain} - @${subdomainOf domain} host ${domain} - handle @${subdomainOf domain} { + @${lib.custom.subdomainOf domain} host ${domain} + handle @${lib.custom.subdomainOf domain} { reverse_proxy localhost:${toString port} } ''; @@ -47,7 +44,7 @@ let lib.nameValuePair domain { logFormat = "output file ${config.services.caddy.logDir}/${domain}.log { mode 640 }"; extraConfig = '' - bind tailscale/${subdomainOf domain} + bind tailscale/${lib.custom.subdomainOf domain} reverse_proxy localhost:${toString port} ''; }; @@ -150,7 +147,7 @@ in ''; virtualHosts = nonTailscaleHosts - |> lib.groupBy (value: rootDomainOf value.domain) + |> lib.groupBy (value: lib.custom.rootDomainOf value.domain) |> lib.mapAttrs' mkWildCardDomain; }; }) diff --git a/modules/system/web-services/gatus.nix b/modules/system/web-services/gatus.nix index b9355b1..2294737 100644 --- a/modules/system/web-services/gatus.nix +++ b/modules/system/web-services/gatus.nix @@ -101,8 +101,6 @@ in custom.services.gatus.endpoints = let - getSubdomain = domain: domain |> lib.splitString "." |> lib.head; - defaultEndpoints = self.nixosConfigurations |> lib.mapAttrs (_: value: value.config.meta.domains.list) @@ -112,7 +110,7 @@ in |> lib.filter (domain: domain != cfg.domain) |> lib.map ( domain: - lib.nameValuePair (getSubdomain domain) { + lib.nameValuePair (lib.custom.subdomainOf domain) { inherit domain; group = hostName; }