Nix configurations for my homelab
at main 884 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7{ 8 options.garden.caddy = { 9 package = { 10 plugins = lib.mkOption { 11 type = lib.types.listOf lib.types.str; 12 default = [ ]; 13 description = "Caddy plugins to install"; 14 }; 15 hash = lib.mkOption { 16 type = lib.types.str; 17 default = lib.fakeSha256; 18 description = "Hash for Caddy plugins"; 19 }; 20 }; 21 layer4 = lib.mkOption { 22 type = lib.types.lines; 23 default = ""; 24 description = "Caddy-L4 configurations"; 25 }; 26 }; 27 28 config = { 29 services.caddy = { 30 package = pkgs.caddy.withPlugins { 31 plugins = config.garden.caddy.package.plugins; 32 hash = config.garden.caddy.package.hash; 33 }; 34 globalConfig = lib.mkIf (config.garden.caddy.layer4 != "") '' 35 layer4 { 36 ${config.garden.caddy.layer4} 37 } 38 ''; 39 }; 40 }; 41}