diff options
| author | Franck Cuny <franck@fcuny.net> | 2025-11-23 09:47:45 -0800 |
|---|---|---|
| committer | Franck Cuny <franck@fcuny.net> | 2025-11-23 09:47:45 -0800 |
| commit | 6697e18fabf835d63613daab00d3bf6176725880 (patch) | |
| tree | 461f8be1f02df35f8a55f9f5f9c0334072b87e51 /profiles/reverse-proxy.nix | |
| parent | cgit: convert org-mode to HTML (diff) | |
| download | infra-6697e18fabf835d63613daab00d3bf6176725880.tar.gz | |
move reverse proxy configuration to a profile
Diffstat (limited to 'profiles/reverse-proxy.nix')
| -rw-r--r-- | profiles/reverse-proxy.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/profiles/reverse-proxy.nix b/profiles/reverse-proxy.nix new file mode 100644 index 0000000..dd98ff2 --- /dev/null +++ b/profiles/reverse-proxy.nix @@ -0,0 +1,82 @@ +{ + pkgs, + lib, + ... +}: +let + httpHost = "10.100.0.60"; + mkWebfinger = config: file: pkgs.writeTextDir file (lib.generators.toJSON { } config); + mkWebfingers = + { subject, ... }@config: + map (mkWebfinger config) [ + subject + (lib.escapeURL subject) + ]; + webfingerRoot = pkgs.symlinkJoin { + name = "felschr.com-webfinger"; + paths = lib.flatten ( + builtins.map mkWebfingers [ + { + subject = "acct:franck@fcuny.net"; + links = [ + { + rel = "http://openid.net/specs/connect/1.0/issuer"; + href = "https://auth.fcuny.net"; + } + ]; + } + ] + ); + }; +in +{ + networking.firewall.allowedTCPPorts = [ + 80 + 443 + ]; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + recommendedGzipSettings = true; + recommendedOptimisation = true; + recommendedTlsSettings = true; + virtualHosts = { + "code.fcuny.net" = { + enableACME = true; + acmeRoot = null; + forceSSL = true; + locations."/".proxyPass = "http://${httpHost}"; + }; + "auth.fcuny.net" = { + enableACME = true; + acmeRoot = null; + forceSSL = true; + locations."/".proxyPass = "http://${httpHost}:9092"; + }; + "reader.fcuny.net" = { + enableACME = true; + acmeRoot = null; + forceSSL = true; + locations."/".proxyPass = "http://${httpHost}:8002"; + }; + "fcuny.net" = { + enableACME = true; + acmeRoot = null; + forceSSL = true; + locations."/".proxyPass = "http://${httpHost}:8070"; + locations."/.well-known/webfinger" = { + root = webfingerRoot; + extraConfig = '' + add_header Access-Control-Allow-Origin "*"; + default_type "application/jrd+json"; + types { application/jrd+json json; } + if ($arg_resource) { + rewrite ^(.*)$ /$arg_resource break; + } + ''; + }; + }; + }; + }; +} |
