{inputs, ...}: let striped-front = inputs.striped-front; sin-address = "192.168.1.14"; in { networking.firewall.allowedTCPPorts = [ 80 443 8448 ]; services.nginx = { enable = true; recommendedProxySettings = true; recommendedTlsSettings = true; virtualHosts = let mkStarr = host: port: { "${host}" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${sin-address}:${port}"; proxyWebsockets = true; extraConfig = '' proxy_ssl_server_name on; proxy_read_timeout 4800s; ''; }; }; }; in ( mkStarr "jellyfin.shobu.fr" "8096" // mkStarr "radarr.shobu.fr" "7878" // mkStarr "sonarr.shobu.fr" "8989" // mkStarr "prowlarr.shobu.fr" "9696" // mkStarr "bazarr.shobu.fr" "6767" // mkStarr "jellyseerr.shobu.fr" "5055" // mkStarr "fileshelter.shobu.fr" "5091" // mkStarr "lidarr.shobu.fr" "8686" // mkStarr "transmission.shobu.fr" "9091" // mkStarr "zimablade-admin.shobu.fr" "61208" // { "shobu.fr" = { enableACME = true; forceSSL = true; root = "${inputs.shoblog-front.packages.x86_64-linux.default}/dist"; }; "data.shobu.fr" = { enableACME = true; forceSSL = true; root = "/mnt/shares/data"; }; "bddtrans.shobu.fr" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${sin-address}:8001"; extraConfig = '' proxy_ssl_server_name on; ''; }; }; "bddtrans-api.shobu.fr" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${sin-address}:8000"; proxyWebsockets = true; extraConfig = '' proxy_ssl_server_name on; ''; }; }; "striped.shobu.fr" = { enableACME = true; forceSSL = true; root = "${striped-front.packages.x86_64-linux.default}/dist"; }; "dashboard.shobu.fr" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${sin-address}:8082"; }; }; "git.shobu.fr" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${sin-address}:3000"; }; }; "files.shobu.fr" = { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://${sin-address}:8086"; }; }; # "matrix.shobu.fr" = { # forceSSL = true; # enableACME = true; # locations."/".extraConfig = '' # return 404; # ''; # locations."/_matrix".proxyPass = "http://${sin-address}:8008"; # locations."/_synapse/client".proxyPass = "http://${sin-address}:8008"; # locations."/.well-known/matrix/server".proxyPass = "http://${sin-address}:8008/.well-known/matrix/server"; # }; } ); }; security.acme = { acceptTerms = true; defaults.email = "shobu_serhao@proton.me"; }; }