{ pkgs, inputs,... }: { security.acme = { acceptTerms = true; defaults.email = "acme@zerforschen.plus"; }; security.pam.services.nginx.setEnvironment = false; systemd.services.nginx.serviceConfig = { SupplementaryGroups = [ "shadow" ]; }; services.nginx = { enable = true; additionalModules = [ pkgs.nginxModules.pam ]; recommendedProxySettings = true; recommendedTlsSettings = true; recommendedGzipSettings = true; recommendedOptimisation = true; virtualHosts = #let # servicesDomain = "services.zerforschen.plus"; # mkServiceConfig = host: port: { # addSSL = true; # enableACME = true; # locations."/" = { # proxyPass = "http://${host}:${toString port}/"; # extraConfig = '' # # bind to tailscale ip # proxy_bind 100.88.118.60; # # pam auth # limit_except OPTIONS { # auth_pam "Password Required"; # auth_pam_service_name "nginx"; # } # ''; # }; # }; # pc2 = "vinzenz-pc2.donkey-pentatonic.ts.net"; #in { #"vscode.${servicesDomain}" = lib.mkMerge [ # (mkServiceConfig pc2 8542) # { locations."/".proxyWebsockets = true; } #]; "zerforschen.plus" = { addSSL = true; enableACME = true; root = inputs.zerforschen-plus.packages."${pkgs.system}".zerforschen-plus-content; }; }; }; networking.firewall.allowedTCPPorts = [ 80 443 ]; }