mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 19:51:34 +01:00
caddy: Refactor slightly
This commit is contained in:
parent
930e635a51
commit
8ecd6e51e6
1 changed files with 8 additions and 9 deletions
|
|
@ -13,18 +13,14 @@ let
|
||||||
isTailscaleDomain = domain: domain |> lib.hasSuffix config.custom.services.tailscale.domain;
|
isTailscaleDomain = domain: domain |> lib.hasSuffix config.custom.services.tailscale.domain;
|
||||||
|
|
||||||
tailscaleHosts = virtualHosts |> lib.filter (value: isTailscaleDomain value.domain);
|
tailscaleHosts = virtualHosts |> lib.filter (value: isTailscaleDomain value.domain);
|
||||||
tailscaleHostsExist = tailscaleHosts != [ ];
|
|
||||||
|
|
||||||
nonTailscaleHosts = virtualHosts |> lib.filter (value: !isTailscaleDomain value.domain);
|
nonTailscaleHosts = virtualHosts |> lib.filter (value: !isTailscaleDomain value.domain);
|
||||||
nonTailscaleHostsExist = nonTailscaleHosts != [ ];
|
|
||||||
|
|
||||||
getSubdomain = domain: domain |> lib.splitString "." |> lib.head;
|
|
||||||
getRootDomain = domain: domain |> lib.splitString "." |> lib.tail |> lib.concatStringsSep ".";
|
|
||||||
|
|
||||||
webPorts = [
|
webPorts = [
|
||||||
80
|
80
|
||||||
443
|
443
|
||||||
];
|
];
|
||||||
|
|
||||||
|
getSubdomain = domain: domain |> lib.splitString "." |> lib.head;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.custom.services.caddy = {
|
options.custom.services.caddy = {
|
||||||
|
|
@ -95,7 +91,7 @@ in
|
||||||
custom.persist.directories = [ "/var/lib/caddy" ];
|
custom.persist.directories = [ "/var/lib/caddy" ];
|
||||||
}
|
}
|
||||||
|
|
||||||
(lib.mkIf nonTailscaleHostsExist {
|
(lib.mkIf (nonTailscaleHosts != [ ]) {
|
||||||
sops = {
|
sops = {
|
||||||
secrets."porkbun/api-key" = {
|
secrets."porkbun/api-key" = {
|
||||||
owner = user;
|
owner = user;
|
||||||
|
|
@ -127,6 +123,7 @@ in
|
||||||
'';
|
'';
|
||||||
virtualHosts =
|
virtualHosts =
|
||||||
let
|
let
|
||||||
|
getRootDomain = domain: domain |> lib.splitString "." |> lib.tail |> lib.concatStringsSep ".";
|
||||||
mkWildCardDomain = name: values: {
|
mkWildCardDomain = name: values: {
|
||||||
name = "*.${name}";
|
name = "*.${name}";
|
||||||
value = {
|
value = {
|
||||||
|
|
@ -147,11 +144,13 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
nonTailscaleHosts |> lib.groupBy (x: x.domain |> getRootDomain) |> lib.mapAttrs' mkWildCardDomain;
|
nonTailscaleHosts
|
||||||
|
|> lib.groupBy (value: getRootDomain value.domain)
|
||||||
|
|> lib.mapAttrs' mkWildCardDomain;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf tailscaleHostsExist {
|
(lib.mkIf (tailscaleHosts != [ ]) {
|
||||||
sops.secrets."tailscale/service-auth-key" = {
|
sops.secrets."tailscale/service-auth-key" = {
|
||||||
owner = user;
|
owner = user;
|
||||||
restartUnits = [ "caddy.service" ];
|
restartUnits = [ "caddy.service" ];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue