Pipeserver is a simple webserver that uses [websockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications) to distribute text received on stdin to connected webpages. By piping other processes into pipeserver, you can stream their messages and eventually produce customized javascript interfaces based on the content. Installation of prerequisites: pip3 install aiohttp aiohttp_jinja2 Usage: python3 pipeserver --template pipeserver.html But of course the fun is to pipe into it... liquidsoap -v my.liq | python3 pipeserver --template pipeserver.html ## Server proxies ### nginx When behind an nginx proxy such as: # Appel du serveur local sur le port désormais alloué à apache proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; You will need to add to support websockets through the connection: # websocket stuff proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; ### apache Untested... ``` a2enmod proxy a2enmod proxy_http a2enmod proxy_wstunnel ``` ``` ServerName www.domain2.com RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:8080/$1 [P,L] ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ServerName ws.serverlab.ca RewriteEngine on RewriteCond ${HTTP:Upgrade} websocket [NC] RewriteCond ${HTTP:Connection} upgrade [NC] RewriteRule .* "wss:/localhost:3000/$1" [P,L] ProxyPass / https://localhost:3000/ ProxyPassReverse / https://localhost:3000/ ProxyRequests off ``` [source](https://stackoverflow.com/questions/27526281/websockets-and-apache-proxy-how-to-configure-mod-proxy-wstunnel)