{jsonConfig, ...}: let # Get all .nix files from the hosts directory hostFiles = builtins.attrNames (builtins.readDir ./hosts); # Filter out non-.nix files hostModules = builtins.filter (n: builtins.match ".*\\.nix" n != null) hostFiles; # Import each host file and merge them importHost = file: import ./hosts/${file} {inherit jsonConfig;}; virtualHosts = builtins.foldl' (acc: file: acc // (importHost file)) {} hostModules; in { services.caddy = { enable = true; inherit virtualHosts; }; }