Duet3D / DuetWebControl

A completely new web interface for the Duet electronics
GNU General Public License v3.0
406 stars 228 forks source link

[FeatureRequest]: Support to run behind Proxy with relative paths. #470

Open sergioamr opened 1 year ago

sergioamr commented 1 year ago

Is your feature request related to a problem? Please describe.

In our current setup we have around 60 Duets which are coordinated through a common interface, with relative paths in the following format:

/FARM1/ARM1/ /FARM2/ARM2/ ... In order to run it through a proxy server, we encounter several issues: First the file is already compressed and we had to use the following for the proxy to work. (not really an issue anymore, since we managed to make it work by deflating the GZ distributed file, and it might help someone to proxy) ``` ProxyPass /arm1/ http://192.168.104.1:10001/ ProxyPassReverse / http://192.168.104.1:10001/ ProxyHTMLEnable On SetOutputFilter INFLATE;proxy-html;DEFLATE ProxyHTMLCharsetOut * ProxyHTMLURLMap / http://192.168.104.1:10001/ ``` Our problem comes from the web sockets and commands to rr_reply and rr_model, which have their paths hardcoded by process.env.BASE_URL. ### Describe the solution you propose. Would there be an option to make it work with relative paths, or append a GET parameter ?root=/NEW_PATH/ ### Describe alternatives you've considered I cannot find an alternative, only writing a patch and diverge from the main branch. ### Provide any additional context or information. ![image](https://github.com/Duet3D/DuetWebControl/assets/7228031/95b36185-926a-40e6-a2fe-dda0ffaa3ee8) ![image](https://github.com/Duet3D/DuetWebControl/assets/7228031/f0b88510-a662-4869-9c49-dacf8208120c)