X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=nixops%2Fmodules%2Fwebsites%2Ftools%2Fpeertube.nix;h=6cc6d3834b25f4f07c1138f8e09484743a8263d9;hb=daf64e3f7de98e4267823d14fa34891b27b5f657;hp=ab5e08a18c27f8517e7e8de0b67e36059bc3f6f8;hpb=1a7188052f235fb632700478fad0108e4306107d;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/nixops/modules/websites/tools/peertube.nix b/nixops/modules/websites/tools/peertube.nix index ab5e08a..6cc6d38 100644 --- a/nixops/modules/websites/tools/peertube.nix +++ b/nixops/modules/websites/tools/peertube.nix @@ -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 '' ]; }; };