]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/websites/tools/peertube.nix
Start moving websites configuration to modules
[perso/Immae/Config/Nix.git] / nixops / modules / websites / tools / peertube.nix
index ab5e08a18c27f8517e7e8de0b67e36059bc3f6f8..6cc6d3834b25f4f07c1138f8e09484743a8263d9 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, pkgs, config, myconfig, mylibs, ... }:
+{ lib, pkgs, config, myconfig,  ... }:
 let
   env = myconfig.env.tools.peertube;
   cfg = config.services.myWebsites.tools.peertube;
@@ -150,26 +150,29 @@ in {
         '';
     }];
 
-    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
       '' ];
     };
   };