mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 16:21:34 +01:00
Extract mkVirtualHostConfig function
This commit is contained in:
parent
4f72e57193
commit
da9008c379
1 changed files with 16 additions and 13 deletions
|
|
@ -19,6 +19,17 @@ let
|
||||||
nonTailscaleHostsExist = lib.any (v: !isTailscaleDomain v.domain) (lib.attrValues virtualHosts);
|
nonTailscaleHostsExist = lib.any (v: !isTailscaleDomain v.domain) (lib.attrValues virtualHosts);
|
||||||
|
|
||||||
getSubdomain = domain: domain |> lib.splitString "." |> lib.head;
|
getSubdomain = domain: domain |> lib.splitString "." |> lib.head;
|
||||||
|
|
||||||
|
mkVirtualHostConfig = domain: port: {
|
||||||
|
logFormat = "output file ${config.services.caddy.logDir}/access-${domain}.log { mode 640 }";
|
||||||
|
extraConfig = ''
|
||||||
|
${lib.optionalString (isTailscaleDomain domain) ''
|
||||||
|
bind tailscale/${getSubdomain domain}
|
||||||
|
tailscale_auth
|
||||||
|
''}
|
||||||
|
reverse_proxy localhost:${toString port}
|
||||||
|
'';
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.custom.services.caddy.virtualHosts = lib.mkOption {
|
options.custom.services.caddy.virtualHosts = lib.mkOption {
|
||||||
|
|
@ -51,19 +62,11 @@ in
|
||||||
{
|
{
|
||||||
services.caddy = {
|
services.caddy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHosts = lib.mapAttrs' (
|
virtualHosts =
|
||||||
_: value:
|
virtualHosts
|
||||||
lib.nameValuePair value.domain {
|
|> lib.mapAttrs' (
|
||||||
logFormat = "output file ${config.services.caddy.logDir}/access-${value.domain}.log { mode 640 }";
|
_: value: lib.nameValuePair value.domain (mkVirtualHostConfig value.domain value.port)
|
||||||
extraConfig = lib.concatStrings [
|
);
|
||||||
(lib.optionalString (isTailscaleDomain value.domain) ''
|
|
||||||
bind tailscale/${getSubdomain value.domain}
|
|
||||||
tailscale_auth
|
|
||||||
'')
|
|
||||||
"reverse_proxy localhost:${toString value.port}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
) virtualHosts;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = lib.mkIf nonTailscaleHostsExist [
|
networking.firewall.allowedTCPPorts = lib.mkIf nonTailscaleHostsExist [
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue