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 = {