-{ lib, pkgs, config, myconfig, mylibs, ... }:
+{ lib, pkgs, config, myconfig, ... }:
let
env = myconfig.env.tools.peertube;
cfg = config.services.myWebsites.tools.peertube;
'';
}];
- services.myWebsites.tools.modules = [
+ services.websites.tools.modules = [
"headers" "proxy" "proxy_http" "proxy_wstunnel"
];
security.acme.certs."eldiron".extraDomains."peertube.immae.eu" = null;
- services.myWebsites.tools.vhostConfs.peertube = {
+ services.websites.tools.vhostConfs.peertube = {
certName = "eldiron";
hosts = [ "peertube.immae.eu" ];
root = null;
extraConfig = [ ''
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_URI} ^/socket.io [NC]
+ RewriteCond %{QUERY_STRING} transport=websocket [NC]
+ RewriteRule /(.*) ws://localhost:${env.listenPort}/$1 [P,NE,QSA,L]
+
+ RewriteCond %{REQUEST_URI} ^/tracker/socket [NC]
+ RewriteRule /(.*) ws://localhost:${env.listenPort}/$1 [P,NE,QSA,L]
+
ProxyPass / http://localhost:${env.listenPort}/
ProxyPassReverse / http://localhost:${env.listenPort}/
ProxyPreserveHost On
RequestHeader set X-Real-IP %{REMOTE_ADDR}s
-
- ProxyPass /tracker/socket ws://127.0.0.1:${env.listenPort}/tracker/socket
- ProxyPassReverse /tracker/socket ws://127.0.0.1:${env.listenPort}/tracker/socket
-
- ProxyPass /socket.io ws://127.0.0.1:${env.listenPort}/socket.io
- ProxyPassReverse /socket.io ws://127.0.0.1:${env.listenPort}/socket.io
'' ];
};
};