summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorAaron Andersen <aaron@fosslib.net>2022-01-06 09:21:33 -0500
committerAaron Andersen <aaron@fosslib.net>2022-01-06 09:25:58 -0500
commit45477f7ce5597ab3cc71fe4214d6b38119476426 (patch)
treefce27a069cc9258af2530a1f89517e1922972e48 /nixos/modules/services
parentf6ee491278eb30e4619253fef211f1c1a92f8f65 (diff)
downloadnixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.tar
nixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.tar.gz
nixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.tar.bz2
nixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.tar.lz
nixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.tar.xz
nixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.tar.zst
nixpkgs-45477f7ce5597ab3cc71fe4214d6b38119476426.zip
nixos/caddy: add globalConfig option
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/web-servers/caddy/default.nix33
1 files changed, 28 insertions, 5 deletions
diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix
index d51effa31c9..a4ada662cfb 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 <literal>Caddyfile</literal>.
+
+        Refer to <link xlink:href="https://caddyserver.com/docs/caddyfile/options#global-options"/>
+        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 = {