summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/web-servers/caddy.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/web-servers/caddy.nix')
-rw-r--r--nixos/modules/services/web-servers/caddy.nix20
1 files changed, 18 insertions, 2 deletions
diff --git a/nixos/modules/services/web-servers/caddy.nix b/nixos/modules/services/web-servers/caddy.nix
index 297b73273392..6ecfc113ca26 100644
--- a/nixos/modules/services/web-servers/caddy.nix
+++ b/nixos/modules/services/web-servers/caddy.nix
@@ -20,8 +20,24 @@ let
--config ${configFile} --adapter ${cfg.adapter} > $out
'';
tlsJSON = pkgs.writeText "tls.json" (builtins.toJSON tlsConfig);
- configJSON = pkgs.runCommand "caddy-config.json" { } ''
- ${pkgs.jq}/bin/jq -s '.[0] * .[1]' ${adaptedConfig} ${tlsJSON} > $out
+
+ # merge the TLS config options we expose with the ones originating in the Caddyfile
+ configJSON =
+ let tlsConfigMerge = ''
+ {"apps":
+ {"tls":
+ {"automation":
+ {"policies":
+ (if .[0].apps.tls.automation.policies == .[1]?.apps.tls.automation.policies
+ then .[0].apps.tls.automation.policies
+ else (.[0].apps.tls.automation.policies + .[1]?.apps.tls.automation.policies)
+ end)
+ }
+ }
+ }
+ }'';
+ in pkgs.runCommand "caddy-config.json" { } ''
+ ${pkgs.jq}/bin/jq -s '.[0] * ${tlsConfigMerge}' ${adaptedConfig} ${tlsJSON} > $out
'';
in {
imports = [