diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix index d51effa31c97..a4ada662cfbd 100644 --- a/nixos/modules/services/web-servers/caddy/default.nix +++ b/nixos/modules/services/web-servers/caddy/default.nix @@ -28,11 +28,7 @@ let let Caddyfile = pkgs.writeText "Caddyfile" '' { - ${optionalString (cfg.email != null) "email ${cfg.email}"} - ${optionalString (cfg.acmeCA != null) "acme_ca ${cfg.acmeCA}"} - log { - ${cfg.logFormat} - } + ${cfg.globalConfig} } ${cfg.extraConfig} ''; @@ -183,6 +179,26 @@ in ''; }; + globalConfig = mkOption { + type = types.lines; + default = ""; + example = '' + debug + servers { + protocol { + experimental_http3 + } + } + ''; + description = '' + Additional lines of configuration appended to the global config section + of the Caddyfile. + + Refer to + for details on supported values. + ''; + }; + extraConfig = mkOption { type = types.lines; default = ""; @@ -253,6 +269,13 @@ in ]; services.caddy.extraConfig = concatMapStringsSep "\n" mkVHostConf virtualHosts; + services.caddy.globalConfig = '' + ${optionalString (cfg.email != null) "email ${cfg.email}"} + ${optionalString (cfg.acmeCA != null) "acme_ca ${cfg.acmeCA}"} + log { + ${cfg.logFormat} + } + ''; systemd.packages = [ cfg.package ]; systemd.services.caddy = {