From 3836a30dcab7b948efaff99de7ede06f3e2aa385 Mon Sep 17 00:00:00 2001 From: swaan <4638561+swaan@users.noreply.github.com> Date: Sat, 13 Jun 2026 16:14:52 +0300 Subject: [PATCH 1/3] Update collabora_docker.sh for CODE 26 Fixes https://github.com/CollaboraOnline/online/issues/15918 Adds explicit ProxyPass for /cool/ws to restore WebSocket compatibility with CODE 26 --- apps/collabora_docker.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/collabora_docker.sh b/apps/collabora_docker.sh index d8e54f1727..2b7420f396 100644 --- a/apps/collabora_docker.sh +++ b/apps/collabora_docker.sh @@ -212,6 +212,9 @@ then # Main websocket ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/\$1/ws nocanon + # Websocket for CODE v26+ + ProxyPass /cool/ws wss://127.0.0.1:9980/cool/ws nocanon + # Admin Console websocket ProxyPass /cool/adminws wss://127.0.0.1:9980/cool/adminws From 2c321788fbcdc2fc0bf4aa9ee77e425bfe058ff3 Mon Sep 17 00:00:00 2001 From: swaan <4638561+swaan@users.noreply.github.com> Date: Sun, 14 Jun 2026 00:18:12 +0300 Subject: [PATCH 2/3] Update collabora_docker.sh for CODE 26 Fixes https://github.com/CollaboraOnline/online/issues/15918 Adds explicit ProxyPass for /cool/ws to restore WebSocket compatibility with CODE 26 --- apps/collabora_docker.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/collabora_docker.sh b/apps/collabora_docker.sh index 2b7420f396..01dbf2ab78 100644 --- a/apps/collabora_docker.sh +++ b/apps/collabora_docker.sh @@ -209,11 +209,11 @@ then ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0 ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities - # Main websocket - ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/\$1/ws nocanon + # Main websocket (legacy URL, with the document path encoded into it) + ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/$1/ws nocanon - # Websocket for CODE v26+ - ProxyPass /cool/ws wss://127.0.0.1:9980/cool/ws nocanon + # Main websocket (compact URL, used since 26.04, with the document passed via the WOPISrc query parameter) + ProxyPass /cool/ws wss://127.0.0.1:9980/cool/ws nocanon # Admin Console websocket ProxyPass /cool/adminws wss://127.0.0.1:9980/cool/adminws From d0cb8e5a7f8ee00ce72901ae40f7f64c0d2dac72 Mon Sep 17 00:00:00 2001 From: enoch85 Date: Tue, 7 Jul 2026 18:13:39 +0000 Subject: [PATCH 3/3] Fix shell escaping of the ProxyPassMatch back-reference The vhost is generated from an unquoted heredoc, so $1 must be escaped as \$1 to survive shell expansion (same as \${APACHE_LOG_DIR} above). Without the escape the generated Apache config reads /cool//ws and the legacy websocket URL is never proxied. --- apps/collabora_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/collabora_docker.sh b/apps/collabora_docker.sh index 0405b9f639..349877f6a5 100644 --- a/apps/collabora_docker.sh +++ b/apps/collabora_docker.sh @@ -210,7 +210,7 @@ then ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities # Main websocket (legacy URL, with the document path encoded into it) - ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/$1/ws nocanon + ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/\$1/ws nocanon # Main websocket (compact URL, used since 26.04, with the document passed via the WOPISrc query parameter) ProxyPass /cool/ws wss://127.0.0.1:9980/cool/ws nocanon