Skip to content

Commit 825730d

Browse files
web: nginx ws-colibri proxy regex updates (jitsi#1645)
1 parent 54d3aca commit 825730d

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

docker-compose.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ services:
2424
- CALLSTATS_SECRET
2525
- CHROME_EXTENSION_BANNER_JSON
2626
- COLIBRI_WEBSOCKET_PORT
27+
- COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME
28+
- COLIBRI_WEBSOCKET_REGEX
2729
- CONFCODE_URL
2830
- CONFIG_EXTERNAL_CONNECT
2931
- DEFAULT_LANGUAGE
@@ -38,6 +40,7 @@ services:
3840
- DIALOUT_AUTH_URL
3941
- DIALOUT_CODES_URL
4042
- DISABLE_AUDIO_LEVELS
43+
- DISABLE_COLIBRI_WEBSOCKET_JVB_LOOKUP
4144
- DISABLE_DEEP_LINKING
4245
- DISABLE_GRANT_MODERATOR
4346
- DISABLE_HTTPS
@@ -58,6 +61,7 @@ services:
5861
- ENABLE_BREAKOUT_ROOMS
5962
- ENABLE_CALENDAR
6063
- ENABLE_COLIBRI_WEBSOCKET
64+
- ENABLE_COLIBRI_WEBSOCKET_UNSAFE_REGEX
6165
- ENABLE_E2EPING
6266
- ENABLE_FILE_RECORDING_SHARING
6367
- ENABLE_GUESTS

web/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ADD https://raw.githubusercontent.com/acmesh-official/acme.sh/2.8.8/acme.sh /opt
1212
COPY rootfs/ /
1313

1414
RUN apt-dpkg-wrap apt-get update && \
15-
apt-dpkg-wrap apt-get install -y cron nginx-extras jitsi-meet-web socat curl jq && \
15+
apt-dpkg-wrap apt-get install -y dnsutils cron nginx-extras jitsi-meet-web socat curl jq && \
1616
mv /usr/share/jitsi-meet/interface_config.js /defaults && \
1717
rm -f /etc/nginx/conf.d/default.conf && \
1818
apt-cleanup

web/rootfs/defaults/meet.conf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{{ $ENABLE_COLIBRI_WEBSOCKET := .Env.ENABLE_COLIBRI_WEBSOCKET | default "1" | toBool }}
22
{{ $COLIBRI_WEBSOCKET_PORT := .Env.COLIBRI_WEBSOCKET_PORT | default "9090" }}
3+
{{ $COLIBRI_WEBSOCKET_REGEX := .Env.COLIBRI_WEBSOCKET_REGEX | default "jvb" }}
34
{{ $ENABLE_JAAS_COMPONENTS := .Env.ENABLE_JAAS_COMPONENTS | default "0" | toBool }}
45
{{ $ENABLE_OCTO := .Env.ENABLE_OCTO | default "0" | toBool -}}
56
{{ $ENABLE_XMPP_WEBSOCKET := .Env.ENABLE_XMPP_WEBSOCKET | default "1" | toBool }}
@@ -69,7 +70,7 @@ location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.
6970

7071
{{ if $ENABLE_COLIBRI_WEBSOCKET }}
7172
# colibri (JVB) websockets
72-
location ~ ^/colibri-ws/([a-zA-Z0-9-\._]+)/(.*) {
73+
location ~ ^/colibri-ws/({{ $COLIBRI_WEBSOCKET_REGEX }})/(.*) {
7374
tcp_nodelay on;
7475

7576
proxy_http_version 1.1;

web/rootfs/etc/cont-init.d/10-config

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,25 @@ fi
8888

8989
echo "Using Nginx resolver: =$NGINX_RESOLVER="
9090

91+
# colibri-ws settings
92+
COLIBRI_WEBSOCKET_UNSAFE_REGEX="[a-zA-Z0-9-\._]+"
93+
# use custom websocket regex if provided
94+
if [ -z "$COLIBRI_WEBSOCKET_REGEX" ]; then
95+
# default to the previous unsafe behavior only if flag is set
96+
if [[ "$ENABLE_COLIBRI_WEBSOCKET_UNSAFE_REGEX" == "1" ]]; then
97+
export COLIBRI_WEBSOCKET_REGEX="$COLIBRI_WEBSOCKET_UNSAFE_REGEX"
98+
else
99+
# default value to the JVB IP, works in compose and anywhere a dns lookup of the JVB reveals the correct IP for proxying
100+
[ -z "$COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME" ] && export COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME="jvb"
101+
if [[ "$DISABLE_COLIBRI_WEBSOCKET_JVB_LOOKUP" == "1" ]]; then
102+
# otherwise value default to the static value in the template 'jvb'
103+
echo "WARNING: DISABLE_COLIBRI_WEBSOCKET_JVB_LOOKUP is set and no value for COLIBRI_WEBSOCKET_REGEX was provided, using static value 'jvb' for COLIBRI_WEBSOCKET_REGEX"
104+
else
105+
export COLIBRI_WEBSOCKET_REGEX="$(dig +short +search $COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME)"
106+
fi
107+
fi
108+
fi
109+
91110
# copy config files
92111
tpl /defaults/nginx.conf > /config/nginx/nginx.conf
93112

0 commit comments

Comments
 (0)