Skip to content

Commit

Permalink
nixos/caddy: Fix default log file for http:// hostnames (#371802)
Browse files Browse the repository at this point in the history
  • Loading branch information
donovanglover authored Jan 10, 2025
2 parents 24a2206 + dacfe3f commit 24a8c64
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
2 changes: 1 addition & 1 deletion nixos/modules/services/web-servers/caddy/vhost-options.nix
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ in
logFormat = mkOption {
type = types.lines;
default = ''
output file ${cfg.logDir}/access-${config.hostName}.log
output file ${cfg.logDir}/access-${lib.replaceStrings [ "/" " " ] [ "_" "_" ] config.hostName}.log
'';
defaultText = ''
output file ''${config.services.caddy.logDir}/access-''${hostName}.log
Expand Down
15 changes: 14 additions & 1 deletion nixos/tests/caddy.nix
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ import ./make-test-python.nix (
"http://localhost:8081" = { };
};
};
specialisation.multiple-hostnames.configuration = {
services.caddy.virtualHosts = {
"http://localhost:8080 http://localhost:8081" = { };
};
};
specialisation.rfc42.configuration = {
services.caddy.settings = {
apps.http.servers.default = {
Expand Down Expand Up @@ -70,7 +75,7 @@ import ./make-test-python.nix (
services.caddy = {
package = pkgs.caddy.withPlugins {
plugins = [ "github.com/caddyserver/replace-response@v0.0.0-20241211194404-3865845790a7" ];
hash = "sha256-zgMdtOJbmtRSfTlrrg8njr11in2C7OAXLB+34V23jek=";
hash = "sha256-BorJJWICgAWU7DrpDZJWifMnIYtGWldt/4S1VELwGJI=";
};
configFile = pkgs.writeText "Caddyfile" ''
{
Expand All @@ -93,6 +98,7 @@ import ./make-test-python.nix (
explicitConfigFile = "${nodes.webserver.system.build.toplevel}/specialisation/explicit-config-file";
justReloadSystem = "${nodes.webserver.system.build.toplevel}/specialisation/config-reload";
multipleConfigs = "${nodes.webserver.system.build.toplevel}/specialisation/multiple-configs";
multipleHostnames = "${nodes.webserver.system.build.toplevel}/specialisation/multiple-hostnames";
rfc42Config = "${nodes.webserver.system.build.toplevel}/specialisation/rfc42";
withPluginsConfig = "${nodes.webserver.system.build.toplevel}/specialisation/with-plugins";
in
Expand All @@ -117,6 +123,13 @@ import ./make-test-python.nix (
webserver.wait_for_open_port(8080)
webserver.wait_for_open_port(8081)
with subtest("a virtual host with multiple hostnames works"):
webserver.succeed(
"${multipleHostnames}/bin/switch-to-configuration test >&2"
)
webserver.wait_for_open_port(8080)
webserver.wait_for_open_port(8081)
with subtest("rfc42 settings config"):
webserver.succeed(
"${rfc42Config}/bin/switch-to-configuration test >&2"
Expand Down

0 comments on commit 24a8c64

Please sign in to comment.