{ pkgs, ... }: { services.nginx = { enable = true; # enable all recommended settings recommendedTlsSettings = true; recommendedOptimisation = true; recommendedGzipSettings = true; recommendedProxySettings = true; virtualHosts = let mkRedirect = host: { locations."/".return = "307 https://${host}$request_uri"; forceSSL = true; enableACME = true; }; in { "_" = { rejectSSL = true; extraConfig = "return 444;"; }; "514fpv.one" = { root = pkgs.callPackage ./site { }; forceSSL = true; enableACME = true; }; "www.514fpv.one" = { globalRedirect = "514fpv.one"; enableACME = true; }; "uptime.514fpv.one" = { locations."/" = { proxyPass = "http://127.0.0.1:4000"; proxyWebsockets = true; }; forceSSL = true; enableACME = true; }; # redirections to home server "src.514fpv.one" = mkRedirect "src.514fpv.io:2096"; "cloud.514fpv.one" = mkRedirect "cloud.514fpv.io:2096"; }; }; networking.firewall.allowedTCPPorts = [ 80 443 ]; }