diff --git a/hosts/proxy/default.nix b/hosts/proxy/default.nix index bb1a9c6..ffc6eb5 100644 --- a/hosts/proxy/default.nix +++ b/hosts/proxy/default.nix @@ -115,17 +115,38 @@ httpPort = 80; httpsPort = 443; }; - } // (builtins.foldl'(prev: name: let - cfg = self.nixosConfigurations.${name}.config; - in prev // { - "${name}" = { - # dest = (builtins.head cfg.networking.interfaces.eth0.ipv4.addresses).address; - dest = (builtins.head cfg.networking.interfaces.${builtins.head (builtins.attrNames cfg.networking.interfaces)}.ipv4.addresses).address; - domain = builtins.head (builtins.attrNames cfg.services.nginx.virtualHosts); - httpsPort = 443; - httpPort = 80; - }; - }) {} (builtins.filter (name: self.nixosConfigurations.${name}.config.services.nginx.enable)(builtins.attrNames self.nixosConfigurations))); + } + # zusätzlich zu den oben definierten wird hier noch ein redirect für jeden nginx virtualhost in diese flake generiert + // (builtins.foldl' + ( + prev: name: + let + cfg = self.nixosConfigurations.${name}.config; + in + prev + // { + "${name}" = { + dest = + (builtins.head + # dieser ausdruck ermittelt den interface namen und die ipv4 addresse als redirect ziel + cfg.networking.interfaces.${builtins.head (builtins.attrNames cfg.networking.interfaces)}.ipv4.addresses + ).address; + # bisher wird ein redirect für den ersten virtualHost generiert + # TODO rediret für jeden virtualHost + domain = builtins.head (builtins.attrNames cfg.services.nginx.virtualHosts); + httpsPort = 443; + httpPort = 80; + }; + } + ) + { } + ( + # alle nixosConfigurations auswählen, die nginx enabled haben + builtins.filter (name: self.nixosConfigurations.${name}.config.services.nginx.enable) ( + builtins.attrNames self.nixosConfigurations + ) + ) + ); indexPage = pkgs.writeTextFile { name = "index.html"; text = ''