diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix index 9518e145c8c4..3bc82c5ed875 100644 --- a/nixos/modules/services/web-servers/caddy/default.nix +++ b/nixos/modules/services/web-servers/caddy/default.nix @@ -45,7 +45,23 @@ let settingsFormat.generate "caddy.json" cfg.settings else let - Caddyfile = pkgs.writeTextDir "Caddyfile" '' + writeCaddyfile = + text: + pkgs.runCommandLocal "Caddyfile" + { + inherit text; + passAsFile = [ "text" ]; + } + '' + mkdir -p $out + cp "$textPath" $out/Caddyfile + + # 'validate' cannot be used for validation, due to log location access + # See https://github.com/caddyserver/caddy/issues/6788 + ${lib.getExe cfg.package} adapt --config $out/Caddyfile + ''; + + Caddyfile = writeCaddyfile '' { ${cfg.globalConfig} }