diff --git a/configs/nixos/modules/services/reverse-proxy.nix b/configs/nixos/modules/services/reverse-proxy.nix index b5632e9..916ca29 100644 --- a/configs/nixos/modules/services/reverse-proxy.nix +++ b/configs/nixos/modules/services/reverse-proxy.nix @@ -9,34 +9,30 @@ let mkRegistryPath = registryName: host: entry: "registry.${registryName}.${host}.${entry}"; - mkUdpStream = host: entry: port: + mkBackend = address: route: "http://${address}:${toString route.port}"; + + mkVirtualHost = host: entry: let compositeEntry = registry.join host entry; + route = compositeEntry.route; address = compositeEntry.address or (throw "no matching entry in registry.address for ${mkRegistryPath "route" host entry}"); in { - inherit host entry port address; + inherit host entry; + name = route.domain; + value = { + forceSSL = true; + enableACME = true; + locations."/".proxyPass = mkBackend address route; + }; }; generatedVirtualHostList = lib.concatLists ( lib.mapAttrsToList ( host: routes: - lib.mapAttrsToList ( - entry: route: - let - compositeEntry = registry.join host entry; - address = compositeEntry.address or (throw "no matching entry in registry.address for ${mkRegistryPath "route" host entry}"); - in - { - inherit host entry; - name = route.domain; - value = { - forceSSL = true; - enableACME = true; - locations."/".proxyPass = "http://${address}:${toString route.port}"; - }; - } - ) (lib.filterAttrs (_entry: route: route.port != null) routes) + lib.mapAttrsToList (entry: _route: mkVirtualHost host entry) ( + lib.filterAttrs (_entry: route: route.port != null) routes + ) ) registry.route ); @@ -66,6 +62,15 @@ let else lib.listToAttrs generatedVirtualHostList; + mkUdpStream = host: entry: port: + let + compositeEntry = registry.join host entry; + address = compositeEntry.address or (throw "no matching entry in registry.address for ${mkRegistryPath "route" host entry}"); + in + { + inherit host entry port address; + }; + generatedUdpStreams = lib.concatLists ( lib.mapAttrsToList ( host: routes: