{ self, config, lib, pkgs, ... }: { imports = [ ./hardware-configuration.nix ./hetzner-disk.nix ]; networking = { hostName = "proxy"; interfaces.ens18.ipv4.addresses = [ { address = "141.56.51.1"; prefixLength = 24; } ]; defaultGateway.address = "141.56.51.254"; nameservers = [ "9.9.9.9" "1.1.1.1" ]; firewall = { allowedTCPPorts = [ 22 80 443 1005 2142 ]; }; nftables = { enable = true; }; }; # wenn instanzen in die flake migriert sind könnte man das autogenerierien services = let # jeder Block beschreibt eine Weiterleitung von port 80 und 443 für einen fqdn forwards = { plone = { dest = "141.56.51.3"; domain = "stura.htw-dresden.de"; httpPort = 80; httpsPort = 443; }; plone_alt = { dest = "141.56.51.3"; domain = "www.stura.htw-dresden.de"; httpPort = 80; httpsPort = 443; }; plone_neu = { dest = "141.56.51.3"; domain = "www.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; plone_neu2 = { dest = "141.56.51.3"; domain = "htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; tix = { dest = "141.56.51.220"; domain = "tix.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; vot = { dest = "141.56.51.57"; domain = "vot.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; dat = { dest = "141.56.51.17"; domain = "dat.stu.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; pro = { dest = "141.56.51.15"; domain = "pro.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; cloud = { dest = "141.56.51.16"; domain = "cloud.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; wiki = { dest = "141.56.51.13"; domain = "wiki.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; beach = { dest = "141.56.51.51"; domain = "beach.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; studicloud = { dest = "141.56.51.17"; domain = "dat.stu.htw.stura-dresden.de"; httpPort = 80; httpsPort = 443; }; } # 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; vhosts = builtins.attrNames cfg.services.nginx.virtualHosts; address = (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; in prev // (builtins.foldl' ( val: vhost: val // { "${vhost}" = { dest = address; domain = vhost; httpsPort = 443; httpPort = 80; }; } ) { } vhosts) ) { } ( # 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 = ''
Du hast dich scheinbar verlaufen. Können wir dir hier möglicherweise weiter helfen?