{ config, pkgs, ... }: { security.acme.acceptTerms = true; security.acme.defaults.email = "security@urbit.cam"; services.nginx = { enable = true; virtualHosts."s.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8081"; # proxyWebsockets = true; # needed if you need to use WebSocket extraConfig = '' proxy_set_header Host $host; proxy_set_header Forwarded $proxy_add_x_forwarded_for; ''; }; extraConfig = '' chunked_transfer_encoding off; proxy_http_version 1.1; proxy_buffering off; proxy_cache off; ''; }; virtualHosts."h.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8080"; proxyWebsockets = true; # needed if you need to use WebSocket }; }; virtualHosts."f.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8082"; proxyWebsockets = true; # needed if you need to use WebSocket }; }; virtualHosts."b.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8083"; proxyWebsockets = true; # needed if you need to use WebSocket extraConfig = '' proxy_set_header Host $host; proxy_set_header Forwarded $proxy_add_x_forwarded_for; ''; }; }; virtualHosts."k.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8084"; proxyWebsockets = true; # needed if you need to use WebSocket extraConfig = '' proxy_set_header Host $host; proxy_set_header Forwarded $proxy_add_x_forwarded_for; ''; }; }; virtualHosts."j.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8096"; proxyWebsockets = true; # needed if you need to use WebSocket extraConfig = '' proxy_set_header Host $host; proxy_set_header Forwarded $proxy_add_x_forwarded_for; ''; }; }; virtualHosts."hls.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { root = "/var/www/hls"; extraConfig = '' add_header Cache-control no-cache; add_header Access-Control-Allow-Origin *; types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } ''; }; }; virtualHosts."leo.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8090"; # proxyWebsockets = true; # needed if you need to use WebSocket extraConfig = '' proxy_set_header Host $host; proxy_set_header Forwarded $proxy_add_x_forwarded_for; ''; }; extraConfig = '' chunked_transfer_encoding off; proxy_http_version 1.1; proxy_buffering off; proxy_cache off; ''; }; virtualHosts."sayu.urbit.cam" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:8091"; # proxyWebsockets = true; # needed if you need to use WebSocket extraConfig = '' proxy_set_header Host $host; proxy_set_header Forwarded $proxy_add_x_forwarded_for; ''; }; extraConfig = '' chunked_transfer_encoding off; proxy_http_version 1.1; proxy_buffering off; proxy_cache off; ''; }; }; }