
Bring our 5 configs into line with current upstream versions (jitsi-meet_7648 and stable-7648-4 tags from the jitsi-meet and docker-jitsi-meet repositories respectively). Attempt to preserve most of our earlier overrides: * configure Etherpad integration * disable background blurring * disable watermarks * open shared document on join * start with audio and video muted * redirect HTTP to HTTPS * disable XMPP WebSockets * disable P2P connections * templated credentials * templated unique JVB server identifiers Drop any options we previously set which later became defaults (like useRoomAsSharedDocumentName or UTC as the TZ). Identify the upstream repo and tag on which each file is based. Stop claiming Firefox is not recommended, now that the default configuration adds a pre-join page which helps browsers realize they should not treat the audio stream as unsolicited. Switch to newer vars for muting audio and video as a boolean rather than at a participant threshold. Update the docker-compose files to use the stable tag instead of latest, since upstream seems to just stop refreshing the latest tag far too often. Clean up extra envvars we were setting for JVB which we didn't pass through to the containers. Change-Id: I1e5a3836917f3d90ad7dd1c0771871740fda3cda
172 lines
4.4 KiB
Plaintext
172 lines
4.4 KiB
Plaintext
# Unchanged copy of
|
|
# https://github.com/jitsi/docker-jitsi-meet/blob/stable-7648-4/web/rootfs/defaults/meet.conf
|
|
# Licensed under the ASL v2.
|
|
|
|
{{ $ENABLE_COLIBRI_WEBSOCKET := .Env.ENABLE_COLIBRI_WEBSOCKET | default "1" | toBool }}
|
|
{{ $ENABLE_JAAS_COMPONENTS := .Env.ENABLE_JAAS_COMPONENTS | default "0" | toBool }}
|
|
{{ $ENABLE_XMPP_WEBSOCKET := .Env.ENABLE_XMPP_WEBSOCKET | default "1" | toBool }}
|
|
{{ $ENABLE_SUBDOMAINS := .Env.ENABLE_SUBDOMAINS | default "true" | toBool -}}
|
|
{{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}}
|
|
{{ $XMPP_BOSH_URL_BASE := .Env.XMPP_BOSH_URL_BASE | default "http://xmpp.meet.jitsi:5280" -}}
|
|
|
|
server_name _;
|
|
|
|
client_max_body_size 0;
|
|
|
|
root /usr/share/jitsi-meet;
|
|
|
|
# ssi on with javascript for multidomain variables in config.js
|
|
ssi on;
|
|
ssi_types application/x-javascript application/javascript;
|
|
|
|
index index.html index.htm;
|
|
error_page 404 /static/404.html;
|
|
|
|
# Security headers
|
|
add_header X-Content-Type-Options nosniff;
|
|
add_header X-XSS-Protection "1; mode=block";
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_SHARD }}
|
|
add_header X-Jitsi-Shard {{ .Env.DEPLOYMENTINFO_SHARD }};
|
|
{{ end }}
|
|
|
|
# Opt out of FLoC (deprecated)
|
|
add_header Permissions-Policy "interest-cohort=()";
|
|
|
|
location = /config.js {
|
|
alias /config/config.js;
|
|
}
|
|
|
|
location = /interface_config.js {
|
|
alias /config/interface_config.js;
|
|
}
|
|
|
|
location = /external_api.js {
|
|
alias /usr/share/jitsi-meet/libs/external_api.min.js;
|
|
}
|
|
|
|
{{ if $ENABLE_JAAS_COMPONENTS }}
|
|
location = /_api/room-info {
|
|
proxy_pass {{ $XMPP_BOSH_URL_BASE }}/room-info?prefix=$prefix&$args;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
proxy_set_header Host $http_host;
|
|
}
|
|
{{ end }}
|
|
|
|
# ensure all static content can always be found first
|
|
location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$ {
|
|
add_header 'Access-Control-Allow-Origin' '*';
|
|
alias /usr/share/jitsi-meet/$1/$2;
|
|
|
|
# cache all versioned files
|
|
if ($arg_v) {
|
|
expires 1y;
|
|
}
|
|
}
|
|
|
|
{{ if $ENABLE_COLIBRI_WEBSOCKET }}
|
|
# colibri (JVB) websockets
|
|
location ~ ^/colibri-ws/([a-zA-Z0-9-\._]+)/(.*) {
|
|
tcp_nodelay on;
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection $connection_upgrade;
|
|
|
|
proxy_pass http://$1:9090/colibri-ws/$1/$2$is_args$args;
|
|
}
|
|
{{ end }}
|
|
|
|
# BOSH
|
|
location = /http-bind {
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
proxy_set_header Host {{ $XMPP_DOMAIN }};
|
|
|
|
proxy_pass {{ $XMPP_BOSH_URL_BASE }}/http-bind;
|
|
}
|
|
|
|
{{ if $ENABLE_XMPP_WEBSOCKET }}
|
|
# xmpp websockets
|
|
location = /xmpp-websocket {
|
|
tcp_nodelay on;
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Connection $connection_upgrade;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Host {{ $XMPP_DOMAIN }};
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
|
|
proxy_pass {{ $XMPP_BOSH_URL_BASE }}/xmpp-websocket;
|
|
}
|
|
{{ end }}
|
|
|
|
{{ if .Env.ETHERPAD_URL_BASE }}
|
|
# Etherpad-lite
|
|
location ^~ /etherpad/ {
|
|
proxy_buffering off;
|
|
proxy_cache_bypass $http_upgrade;
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
|
|
proxy_pass {{ .Env.ETHERPAD_URL_BASE }}/;
|
|
}
|
|
{{ end }}
|
|
|
|
location ~ ^/([^/?&:'"]+)$ {
|
|
try_files $uri @root_path;
|
|
}
|
|
|
|
location @root_path {
|
|
rewrite ^/(.*)$ / break;
|
|
}
|
|
|
|
{{ if $ENABLE_SUBDOMAINS }}
|
|
location ~ ^/([^/?&:'"]+)/config.js$ {
|
|
set $subdomain "$1.";
|
|
set $subdir "$1/";
|
|
|
|
alias /config/config.js;
|
|
}
|
|
|
|
# BOSH for subdomains
|
|
location ~ ^/([^/?&:'"]+)/http-bind {
|
|
set $subdomain "$1.";
|
|
set $subdir "$1/";
|
|
set $prefix "$1";
|
|
|
|
rewrite ^/(.*)$ /http-bind;
|
|
}
|
|
|
|
{{ if $ENABLE_XMPP_WEBSOCKET }}
|
|
# websockets for subdomains
|
|
location ~ ^/([^/?&:'"]+)/xmpp-websocket {
|
|
set $subdomain "$1.";
|
|
set $subdir "$1/";
|
|
set $prefix "$1";
|
|
|
|
rewrite ^/(.*)$ /xmpp-websocket;
|
|
}
|
|
{{ end }}
|
|
|
|
{{ if $ENABLE_JAAS_COMPONENTS }}
|
|
location ~ ^/([^/?&:'"]+)/_api/room-info {
|
|
set $subdomain "$1.";
|
|
set $subdir "$1/";
|
|
set $prefix "$1";
|
|
|
|
rewrite ^/(.*)$ /_api/room-info;
|
|
}
|
|
{{ end }}
|
|
|
|
# Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
|
|
location ~ ^/([^/?&:'"]+)/(.*)$ {
|
|
set $subdomain "$1.";
|
|
set $subdir "$1/";
|
|
rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
|
|
}
|
|
{{ end }}
|