Skip to content

Commit fc763b6

Browse files
committed
Fix TeslaMate subpath websocket proxy
1 parent e510d88 commit fc763b6

1 file changed

Lines changed: 32 additions & 3 deletions

File tree

frontend/nginx/default.conf

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
geo $dollar_sign {
2+
default "$";
3+
}
4+
5+
map $http_upgrade $connection_upgrade {
6+
default upgrade;
7+
"" close;
8+
}
9+
110
server {
211
listen 80;
312
server_name _;
@@ -49,21 +58,41 @@ server {
4958
rewrite ^/teslamate/(.*)$ /$1 break;
5059
proxy_pass http://$teslamate_upstream;
5160
proxy_http_version 1.1;
61+
proxy_set_header Accept-Encoding "";
5262
proxy_set_header Host $host;
5363
proxy_set_header X-Real-IP $remote_addr;
5464
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
5565
proxy_set_header X-Forwarded-Proto $scheme;
5666
proxy_set_header X-Forwarded-Prefix /teslamate;
5767
proxy_set_header Upgrade $http_upgrade;
58-
proxy_set_header Connection "upgrade";
68+
proxy_set_header Connection $connection_upgrade;
5969
proxy_read_timeout 3600s;
6070
proxy_redirect / /teslamate/;
6171
sub_filter_once off;
62-
sub_filter_types text/css application/javascript;
72+
sub_filter_types *;
6373
sub_filter 'href="/' 'href="/teslamate/';
6474
sub_filter 'src="/' 'src="/teslamate/';
6575
sub_filter 'action="/' 'action="/teslamate/';
66-
sub_filter '"/live/websocket' '"/teslamate/live/websocket';
76+
sub_filter '"/live' '"/teslamate/live';
77+
sub_filter '"/js/' '"/teslamate/js/';
78+
sub_filter 'url(/' 'url(/teslamate/';
79+
sub_filter 'baseUrl:window.location.origin' 'baseUrl:window.location.origin+"/teslamate"';
80+
sub_filter 'url:this.redirect?void 0:this.href||void 0' 'url:this.redirect?void 0:(this.href!==null?this.href.replace("/teslamate","/"):this.href)||void 0';
81+
sub_filter 'onRedirect({to:o,flash:r}){this.liveSocket.redirect(o,r)}' 'onRedirect({to:o,flash:r}){this.liveSocket.redirect(o.replace(o.startsWith("/")?/^\//gm:/\/${dollar_sign}/gm, "/teslamate/"),r)}';
82+
}
83+
84+
location /live/websocket {
85+
set $teslamate_upstream teslamate:4000;
86+
proxy_pass http://$teslamate_upstream;
87+
proxy_http_version 1.1;
88+
proxy_set_header Host $host;
89+
proxy_set_header X-Real-IP $remote_addr;
90+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
91+
proxy_set_header X-Forwarded-Proto $scheme;
92+
proxy_set_header X-Forwarded-Prefix /teslamate;
93+
proxy_set_header Upgrade $http_upgrade;
94+
proxy_set_header Connection $connection_upgrade;
95+
proxy_read_timeout 3600s;
6796
}
6897

6998
location /assets/ {

0 commit comments

Comments
 (0)