From 42a2153a15079feb45a7a699527a469be9dff96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 21 Nov 2023 17:40:07 +0100 Subject: [PATCH 01/62] misc: working on unstable --- docker-compose.yml | 8 ++++---- jibri.yml | 2 +- jigasi.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a6065b0f20..e8f1c306b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.5' services: # Frontend web: - image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-9111} + image: jitsi/web:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -170,7 +170,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9111} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -299,7 +299,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9111} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -375,7 +375,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9111} + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' diff --git a/jibri.yml b/jibri.yml index 165f0d029f..a0b4937dbe 100644 --- a/jibri.yml +++ b/jibri.yml @@ -2,7 +2,7 @@ version: '3.5' services: jibri: - image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-9111} + image: jitsi/jibri:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} volumes: - ${CONFIG}/jibri:/config:Z diff --git a/jigasi.yml b/jigasi.yml index 754691dae3..210d5916cc 100644 --- a/jigasi.yml +++ b/jigasi.yml @@ -3,7 +3,7 @@ version: '3.5' services: # SIP gateway (audio) jigasi: - image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable-9111} + image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}:${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}/udp' From fa2b4db2d1c2fefe7dbcbd923ffe3711b2fa4a07 Mon Sep 17 00:00:00 2001 From: Daniel McAssey Date: Fri, 1 Dec 2023 12:34:39 +0000 Subject: [PATCH 02/62] jicofo, jigasi, jvb: fix SENTRY_DSN not being read --- docker-compose.yml | 4 ++-- jicofo/rootfs/defaults/logging.properties | 6 ++++-- jigasi.yml | 2 +- jigasi/rootfs/defaults/logging.properties | 4 +++- jvb/rootfs/defaults/logging.properties | 6 ++++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e8f1c306b9..76f2236162 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -353,7 +353,7 @@ services: - MAX_BRIDGE_PARTICIPANTS - OCTO_BRIDGE_SELECTION_STRATEGY - PROSODY_VISITORS_MUC_PREFIX - - SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}" + - SENTRY_DSN - SENTRY_ENVIRONMENT - SENTRY_RELEASE - TZ @@ -416,7 +416,7 @@ services: - JVB_XMPP_PORT - JVB_XMPP_SERVER - PUBLIC_URL - - SENTRY_DSN="${JVB_SENTRY_DSN:-0}" + - SENTRY_DSN - SENTRY_ENVIRONMENT - SENTRY_RELEASE - COLIBRI_REST_ENABLED diff --git a/jicofo/rootfs/defaults/logging.properties b/jicofo/rootfs/defaults/logging.properties index 16a7e5631a..5641132bf4 100644 --- a/jicofo/rootfs/defaults/logging.properties +++ b/jicofo/rootfs/defaults/logging.properties @@ -1,7 +1,9 @@ -{{ if .Env.SENTRY_DSN | default "0" | toBool }} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} + +{{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} -handlers= java.util.logging.ConsoleHandler +handlers=java.util.logging.ConsoleHandler {{ end }} java.util.logging.ConsoleHandler.level = ALL diff --git a/jigasi.yml b/jigasi.yml index 210d5916cc..2952b92cf5 100644 --- a/jigasi.yml +++ b/jigasi.yml @@ -48,7 +48,7 @@ services: - GC_CLIENT_ID - GC_CLIENT_CERT_URL - SHUTDOWN_REST_ENABLED - - SENTRY_DSN="${JIGASI_SENTRY_DSN:-0}" + - SENTRY_DSN - SENTRY_ENVIRONMENT - SENTRY_RELEASE - TZ diff --git a/jigasi/rootfs/defaults/logging.properties b/jigasi/rootfs/defaults/logging.properties index b52000a25d..4ee839ed77 100644 --- a/jigasi/rootfs/defaults/logging.properties +++ b/jigasi/rootfs/defaults/logging.properties @@ -1,4 +1,6 @@ -{{ if .Env.SENTRY_DSN | default "0" | toBool }} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} + +{{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers=java.util.logging.ConsoleHandler diff --git a/jvb/rootfs/defaults/logging.properties b/jvb/rootfs/defaults/logging.properties index 4b67430c40..6a2dc3ba9d 100644 --- a/jvb/rootfs/defaults/logging.properties +++ b/jvb/rootfs/defaults/logging.properties @@ -1,7 +1,9 @@ -{{ if .Env.SENTRY_DSN | default "0" | toBool }} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} + +{{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} -handlers= java.util.logging.ConsoleHandler +handlers=java.util.logging.ConsoleHandler {{ end }} java.util.logging.ConsoleHandler.level = ALL From 8415c84c10c5eac7255a1cbb3267ccc1231b66f5 Mon Sep 17 00:00:00 2001 From: Daniel McAssey Date: Fri, 1 Dec 2023 12:36:21 +0000 Subject: [PATCH 03/62] logging: fix reference to old variable --- jicofo/rootfs/defaults/logging.properties | 2 +- jigasi/rootfs/defaults/logging.properties | 2 +- jvb/rootfs/defaults/logging.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jicofo/rootfs/defaults/logging.properties b/jicofo/rootfs/defaults/logging.properties index 5641132bf4..a473db7bea 100644 --- a/jicofo/rootfs/defaults/logging.properties +++ b/jicofo/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default .Env.JICOFO_SENTRY_DSN -}} {{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler diff --git a/jigasi/rootfs/defaults/logging.properties b/jigasi/rootfs/defaults/logging.properties index 4ee839ed77..d2deccd53e 100644 --- a/jigasi/rootfs/defaults/logging.properties +++ b/jigasi/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default .Env.JICOFO_SENTRY_DSN -}} {{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler diff --git a/jvb/rootfs/defaults/logging.properties b/jvb/rootfs/defaults/logging.properties index 6a2dc3ba9d..512ff098cf 100644 --- a/jvb/rootfs/defaults/logging.properties +++ b/jvb/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default .Env.JICOFO_SENTRY_DSN -}} {{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler From 073f85d76ce179ed3c28dd37e6ecedcd0137b6ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Fri, 1 Dec 2023 14:17:50 +0100 Subject: [PATCH 04/62] Revert "logging: fix reference to old variable" This reverts commit 8415c84c10c5eac7255a1cbb3267ccc1231b66f5. --- jicofo/rootfs/defaults/logging.properties | 2 +- jigasi/rootfs/defaults/logging.properties | 2 +- jvb/rootfs/defaults/logging.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jicofo/rootfs/defaults/logging.properties b/jicofo/rootfs/defaults/logging.properties index a473db7bea..5641132bf4 100644 --- a/jicofo/rootfs/defaults/logging.properties +++ b/jicofo/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default .Env.JICOFO_SENTRY_DSN -}} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} {{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler diff --git a/jigasi/rootfs/defaults/logging.properties b/jigasi/rootfs/defaults/logging.properties index d2deccd53e..4ee839ed77 100644 --- a/jigasi/rootfs/defaults/logging.properties +++ b/jigasi/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default .Env.JICOFO_SENTRY_DSN -}} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} {{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler diff --git a/jvb/rootfs/defaults/logging.properties b/jvb/rootfs/defaults/logging.properties index 512ff098cf..6a2dc3ba9d 100644 --- a/jvb/rootfs/defaults/logging.properties +++ b/jvb/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default .Env.JICOFO_SENTRY_DSN -}} +{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} {{ if $SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler From dbffba1d6c0dce2ceb7ec746e16cc66ddc3b2970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Fri, 1 Dec 2023 14:17:50 +0100 Subject: [PATCH 05/62] Revert "jicofo, jigasi, jvb: fix SENTRY_DSN not being read" This reverts commit fa2b4db2d1c2fefe7dbcbd923ffe3711b2fa4a07. --- docker-compose.yml | 4 ++-- jicofo/rootfs/defaults/logging.properties | 6 ++---- jigasi.yml | 2 +- jigasi/rootfs/defaults/logging.properties | 4 +--- jvb/rootfs/defaults/logging.properties | 6 ++---- 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 76f2236162..e8f1c306b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -353,7 +353,7 @@ services: - MAX_BRIDGE_PARTICIPANTS - OCTO_BRIDGE_SELECTION_STRATEGY - PROSODY_VISITORS_MUC_PREFIX - - SENTRY_DSN + - SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}" - SENTRY_ENVIRONMENT - SENTRY_RELEASE - TZ @@ -416,7 +416,7 @@ services: - JVB_XMPP_PORT - JVB_XMPP_SERVER - PUBLIC_URL - - SENTRY_DSN + - SENTRY_DSN="${JVB_SENTRY_DSN:-0}" - SENTRY_ENVIRONMENT - SENTRY_RELEASE - COLIBRI_REST_ENABLED diff --git a/jicofo/rootfs/defaults/logging.properties b/jicofo/rootfs/defaults/logging.properties index 5641132bf4..16a7e5631a 100644 --- a/jicofo/rootfs/defaults/logging.properties +++ b/jicofo/rootfs/defaults/logging.properties @@ -1,9 +1,7 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} - -{{ if $SENTRY_DSN }} +{{ if .Env.SENTRY_DSN | default "0" | toBool }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} -handlers=java.util.logging.ConsoleHandler +handlers= java.util.logging.ConsoleHandler {{ end }} java.util.logging.ConsoleHandler.level = ALL diff --git a/jigasi.yml b/jigasi.yml index 2952b92cf5..210d5916cc 100644 --- a/jigasi.yml +++ b/jigasi.yml @@ -48,7 +48,7 @@ services: - GC_CLIENT_ID - GC_CLIENT_CERT_URL - SHUTDOWN_REST_ENABLED - - SENTRY_DSN + - SENTRY_DSN="${JIGASI_SENTRY_DSN:-0}" - SENTRY_ENVIRONMENT - SENTRY_RELEASE - TZ diff --git a/jigasi/rootfs/defaults/logging.properties b/jigasi/rootfs/defaults/logging.properties index 4ee839ed77..b52000a25d 100644 --- a/jigasi/rootfs/defaults/logging.properties +++ b/jigasi/rootfs/defaults/logging.properties @@ -1,6 +1,4 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} - -{{ if $SENTRY_DSN }} +{{ if .Env.SENTRY_DSN | default "0" | toBool }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers=java.util.logging.ConsoleHandler diff --git a/jvb/rootfs/defaults/logging.properties b/jvb/rootfs/defaults/logging.properties index 6a2dc3ba9d..4b67430c40 100644 --- a/jvb/rootfs/defaults/logging.properties +++ b/jvb/rootfs/defaults/logging.properties @@ -1,9 +1,7 @@ -{{ $SENTRY_DSN := .Env.SENTRY_DSN | default $JICOFO_SENTRY_DSN -}} - -{{ if $SENTRY_DSN }} +{{ if .Env.SENTRY_DSN | default "0" | toBool }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} -handlers=java.util.logging.ConsoleHandler +handlers= java.util.logging.ConsoleHandler {{ end }} java.util.logging.ConsoleHandler.level = ALL From e6a0c0461ed3040fa8c4c9e2c17940b7fae85faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Thu, 30 Nov 2023 22:51:13 +0100 Subject: [PATCH 06/62] jibri: add check for /dev/shm size If the container was staryed without a /dev/shm of at least 2GB (defaults to 6MB in Docker) Chrome will behave erratically or crash. Catch this with a tiny binary and make the container fail to start. Ref: https://github.com/jitsi/docker-jitsi-meet/issues/1653 --- jibri/Dockerfile | 8 +++++++- jibri/rootfs/etc/cont-init.d/10-config | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/jibri/Dockerfile b/jibri/Dockerfile index 52f8698cba..fbe9506a0b 100644 --- a/jibri/Dockerfile +++ b/jibri/Dockerfile @@ -20,6 +20,12 @@ RUN apt-dpkg-wrap apt-get update && \ apt-dpkg-wrap apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" jibri libgl1-mesa-dri procps jitsi-upload-integrations jitsi-autoscaler-sidecar jq pulseaudio dbus dbus-x11 rtkit unzip fonts-noto && \ /usr/bin/install-chrome.sh && \ apt-cleanup && \ - adduser jibri rtkit + adduser jibri rtkit && \ + case ${TARGETPLATFORM} in \ + "linux/amd64") SC_ARCH=x86_64 ;; \ + "linux/arm64") SC_ARCH=aarch64 ;; \ + esac && \ + wget -qO /usr/bin/shm-check https://github.com/saghul/shm-check/releases/download/v1.0.0/shm-check-${SC_ARCH} && \ + chmod +x /usr/bin/shm-check VOLUME /config diff --git a/jibri/rootfs/etc/cont-init.d/10-config b/jibri/rootfs/etc/cont-init.d/10-config index a90c673b15..9d3b1f517b 100644 --- a/jibri/rootfs/etc/cont-init.d/10-config +++ b/jibri/rootfs/etc/cont-init.d/10-config @@ -1,5 +1,11 @@ #!/usr/bin/with-contenv bash +# Check if /dev/shm is large enough (2GB at least) +if ! shm-check; then + echo "/dev/shm must be at least 2GB in size" + exit 1 +fi + if [[ -z $JIBRI_RECORDER_PASSWORD || -z $JIBRI_XMPP_PASSWORD ]]; then echo 'FATAL ERROR: Jibri recorder password and auth password must be set' exit 1 From 71b3892d64fad284522df49b873e0c6890c5b237 Mon Sep 17 00:00:00 2001 From: Matthias Kesler Date: Sun, 3 Dec 2023 09:28:06 +0100 Subject: [PATCH 07/62] jicofo,jvb,jigasi: fix SENTRY_DSN cannot be defined --- jicofo/rootfs/defaults/logging.properties | 2 +- jigasi/rootfs/defaults/logging.properties | 2 +- jvb/rootfs/defaults/logging.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jicofo/rootfs/defaults/logging.properties b/jicofo/rootfs/defaults/logging.properties index 16a7e5631a..6fad54a0a4 100644 --- a/jicofo/rootfs/defaults/logging.properties +++ b/jicofo/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ if .Env.SENTRY_DSN | default "0" | toBool }} +{{ if .Env.SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers= java.util.logging.ConsoleHandler diff --git a/jigasi/rootfs/defaults/logging.properties b/jigasi/rootfs/defaults/logging.properties index b52000a25d..d7d0da2bff 100644 --- a/jigasi/rootfs/defaults/logging.properties +++ b/jigasi/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ if .Env.SENTRY_DSN | default "0" | toBool }} +{{ if .Env.SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers=java.util.logging.ConsoleHandler diff --git a/jvb/rootfs/defaults/logging.properties b/jvb/rootfs/defaults/logging.properties index 4b67430c40..e99f245c56 100644 --- a/jvb/rootfs/defaults/logging.properties +++ b/jvb/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ if .Env.SENTRY_DSN | default "0" | toBool }} +{{ if .Env.SENTRY_DSN }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers= java.util.logging.ConsoleHandler From 940cd974faf4ab6adb26dc65e5c57cde6b5be6e7 Mon Sep 17 00:00:00 2001 From: must_eat Date: Sun, 26 Nov 2023 06:28:12 +0300 Subject: [PATCH 08/62] env.example: add jicofo and jvb env vars for defining max memory. --- env.example | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/env.example b/env.example index d2a1f7ba43..30dafb31a9 100644 --- a/env.example +++ b/env.example @@ -36,6 +36,12 @@ TZ=UTC # https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker#running-behind-nat-or-on-a-lan-environment #JVB_ADVERTISE_IPS=192.168.1.1,1.2.3.4 +# +# Memory limits for Java components +# + +#JICOFO_MAX_MEMORY=3072m +#VIDEOBRIDGE_MAX_MEMORY=3072m # # JaaS Components (beta) From ee2f3c93e0b128b64e726b939739e50d0c227190 Mon Sep 17 00:00:00 2001 From: must_eat Date: Sun, 26 Nov 2023 06:31:44 +0300 Subject: [PATCH 09/62] docker-compose.yml: expose jicofo and jvb env vars for defining max memory. --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index e8f1c306b9..e25752fd23 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -338,6 +338,7 @@ services: - JICOFO_ENABLE_HEALTH_CHECKS - JICOFO_ENABLE_REST - JICOFO_HEALTH_CHECKS_USE_PRESENCE + - JICOFO_MAX_MEMORY - JICOFO_MULTI_STREAM_BACKWARD_COMPAT - JICOFO_OCTO_REGION - JIBRI_BREWERY_MUC @@ -422,6 +423,7 @@ services: - COLIBRI_REST_ENABLED - SHUTDOWN_REST_ENABLED - TZ + - VIDEOBRIDGE_MAX_MEMORY - XMPP_AUTH_DOMAIN - XMPP_INTERNAL_MUC_DOMAIN - XMPP_SERVER From b4428bf2611f5de363fbc07b76d60f5013da050c Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Thu, 7 Dec 2023 09:11:33 -0600 Subject: [PATCH 10/62] prosody: use mod_smacks.lua from prosody since 0.12.4 --- prosody/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/prosody/Dockerfile b/prosody/Dockerfile index b00a4b1011..f9a745722b 100644 --- a/prosody/Dockerfile +++ b/prosody/Dockerfile @@ -47,6 +47,7 @@ RUN wget -qO /etc/apt/trusted.gpg.d/prosody.gpg https://prosody.im/files/prosody lua-unbound && \ apt-dpkg-wrap apt-get -d install -y jitsi-meet-prosody && \ dpkg -x /var/cache/apt/archives/jitsi-meet-prosody*.deb /tmp/pkg && \ + rm /tmp/pkg/usr/share/jitsi-meet/prosody-plugins/mod_smacks.lua && \ mv /tmp/pkg/usr/share/jitsi-meet/prosody-plugins /prosody-plugins && \ rm -rf /tmp/pkg /var/cache/apt && \ apt-cleanup && \ From 453161597401173693e36c68fc2479aca087cdc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Fri, 8 Dec 2023 11:04:08 +0100 Subject: [PATCH 11/62] prosody: add smacks to guest vhost Fixes: https://github.com/jitsi/docker-jitsi-meet/issues/1545 --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index ce9c36a828..0aadb95c94 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -263,6 +263,9 @@ VirtualHost "{{ $XMPP_GUEST_DOMAIN }}" authentication = "{{ $GUEST_AUTH_TYPE }}" modules_enabled = { "ping"; + {{ if $ENABLE_XMPP_WEBSOCKET }} + "smacks"; -- XEP-0198: Stream Management + {{ end }} } c2s_require_encryption = false From 4c009ad8c2e421572ad362bce2ef1e9835c7e1e5 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Fri, 15 Dec 2023 09:46:44 -0600 Subject: [PATCH 12/62] jvb: fix version for autoscaler config * jvb: fix version for autoscaler config --- jvb/rootfs/etc/cont-init.d/10-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jvb/rootfs/etc/cont-init.d/10-config b/jvb/rootfs/etc/cont-init.d/10-config index 127e71715c..5e65dff575 100644 --- a/jvb/rootfs/etc/cont-init.d/10-config +++ b/jvb/rootfs/etc/cont-init.d/10-config @@ -51,7 +51,7 @@ if [ -n "$AUTOSCALER_URL" ]; then if [ -f "$AUTOSCALER_SIDECAR_KEY_FILE" ]; then echo "AUTOSCALER_URL found, enabling autoscaler sidecar" - export JVB_VERSION="dpkg -s jitsi-videobridge2 | grep Version | awk '{print $2}' | sed 's/..$//'" + export JVB_VERSION="$(dpkg -s jitsi-videobridge2 | grep Version | awk '{print $2}' | sed 's/..$//')" [ -z "$AUTOSCALER_SIDECAR_PORT" ] && export AUTOSCALER_SIDECAR_PORT="6000" [ -z "$JIBRI_WEBHOOK_SUBSCRIBERS" ] && export JIBRI_WEBHOOK_SUBSCRIBERS="http://localhost:$AUTOSCALER_SIDECAR_PORT/hook" From 431cdccbfe4e64fe4e29fc76e6eddb59b947e62a Mon Sep 17 00:00:00 2001 From: Cedric Roijakkers Date: Tue, 19 Dec 2023 12:24:09 +0100 Subject: [PATCH 13/62] web: allow desktop framerate to be automatically determined by the browser --- docker-compose.yml | 1 + web/rootfs/defaults/settings-config.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e25752fd23..5819c3ef4a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,6 +34,7 @@ services: - DEPLOYMENTINFO_REGION - DEPLOYMENTINFO_SHARD - DEPLOYMENTINFO_USERREGION + - DESKTOP_SHARING_FRAMERATE_AUTO - DESKTOP_SHARING_FRAMERATE_MIN - DESKTOP_SHARING_FRAMERATE_MAX - DIALIN_NUMBERS_URL diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index be2d79f8d6..ed2c3ccb6a 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -47,6 +47,7 @@ {{ $ENABLE_NOISY_MIC_DETECTION := .Env.ENABLE_NOISY_MIC_DETECTION | default "true" | toBool -}} {{ $START_VIDEO_MUTED := .Env.START_VIDEO_MUTED | default 10 -}} {{ $START_WITH_VIDEO_MUTED := .Env.START_WITH_VIDEO_MUTED | default "false" | toBool -}} +{{ $DESKTOP_SHARING_FRAMERATE_AUTO := .Env.DESKTOP_SHARING_FRAMERATE_AUTO | default "true" | toBool -}} {{ $DESKTOP_SHARING_FRAMERATE_MIN := .Env.DESKTOP_SHARING_FRAMERATE_MIN | default 5 -}} {{ $DESKTOP_SHARING_FRAMERATE_MAX := .Env.DESKTOP_SHARING_FRAMERATE_MAX | default 5 -}} {{ $TESTING_OCTO_PROBABILITY := .Env.TESTING_OCTO_PROBABILITY | default "0" -}} @@ -92,11 +93,12 @@ config.flags.sourceNameSignaling = true; config.flags.sendMultipleVideoStreams = true; config.flags.receiveMultipleVideoStreams = true; - +{{ if not $DESKTOP_SHARING_FRAMERATE_AUTO }} // ScreenShare Configuration. // config.desktopSharingFrameRate = { min: {{ $DESKTOP_SHARING_FRAMERATE_MIN }}, max: {{ $DESKTOP_SHARING_FRAMERATE_MAX }} }; +{{ end }} // Audio configuration. // From 4fba8b5d985a16ad95cc6b813e74dda265096ea6 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 19 Dec 2023 12:53:00 -0600 Subject: [PATCH 14/62] task: support logging to file in JVB container (#1675) --- docker-compose.yml | 1 + jvb/rootfs/etc/services.d/jvb/run | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5819c3ef4a..f8b3d45431 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -408,6 +408,7 @@ services: - JVB_PORT - JVB_MUC_NICKNAME - JVB_STUN_SERVERS + - JVB_LOG_FILE - JVB_OCTO_BIND_ADDRESS - JVB_OCTO_REGION - JVB_OCTO_RELAY_ID diff --git a/jvb/rootfs/etc/services.d/jvb/run b/jvb/rootfs/etc/services.d/jvb/run index 09b9c3e118..d499fc0674 100644 --- a/jvb/rootfs/etc/services.d/jvb/run +++ b/jvb/rootfs/etc/services.d/jvb/run @@ -4,4 +4,7 @@ export JAVA_SYS_PROPS="-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/ -Dnet. DAEMON=/usr/share/jitsi-videobridge/jvb.sh -exec s6-setuidgid jvb /bin/bash -c "exec $DAEMON" +JVB_CMD="exec $DAEMON" +[ -n "$JVB_LOG_FILE" ] && JVB_CMD="$JVB_CMD 2>&1 | tee $JVB_LOG_FILE" + +exec s6-setuidgid jvb /bin/bash -c "$JVB_CMD" From 3519113ef9403d2f944b12fe51ac69e7c3623929 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 19 Dec 2023 12:53:53 -0600 Subject: [PATCH 15/62] jvb: finish script for graceful shutdown (#1676) --- jvb/rootfs/etc/services.d/jvb/finish | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 jvb/rootfs/etc/services.d/jvb/finish diff --git a/jvb/rootfs/etc/services.d/jvb/finish b/jvb/rootfs/etc/services.d/jvb/finish new file mode 100644 index 0000000000..9f7171a418 --- /dev/null +++ b/jvb/rootfs/etc/services.d/jvb/finish @@ -0,0 +1,9 @@ +#!/usr/bin/with-contenv bash + +# When the jvb is shutdown (or gracefully shutdown), it exits with code 0. +# In this case, we don't want S6 to restart the service. We want to stop all +# services and shutdown the container. + +if [[ $1 -eq 0 ]]; then + s6-svscanctl -t /var/run/s6/services +fi From 2e3c272bdf8532a745027baf4cd5a1903cb17c19 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 19 Dec 2023 13:16:09 -0600 Subject: [PATCH 16/62] jvb: fix terminate script for autoscaler sidecar * jvb: fix terminate script for autoscaler sidecar --- jvb/rootfs/defaults/autoscaler-sidecar.config | 2 +- jvb/rootfs/opt/jitsi/shutdown.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100755 jvb/rootfs/opt/jitsi/shutdown.sh diff --git a/jvb/rootfs/defaults/autoscaler-sidecar.config b/jvb/rootfs/defaults/autoscaler-sidecar.config index 777942a681..69b83726ed 100644 --- a/jvb/rootfs/defaults/autoscaler-sidecar.config +++ b/jvb/rootfs/defaults/autoscaler-sidecar.config @@ -5,7 +5,7 @@ export SHUTDOWN_POLLING_INTERVAL={{ $SHUTDOWN_POLLING_INTERVAL }} export STATS_POLLING_INTERVAL={{ $STATS_POLLING_INTERVAL }} export PORT={{ .Env.AUTOSCALER_SIDECAR_PORT }} export GRACEFUL_SHUTDOWN_SCRIPT="/usr/share/jitsi-videobridge/graceful_shutdown.sh" -export TERMINATE_SCRIPT="/opt/jitsi/jvb/shutdown.sh" +export TERMINATE_SCRIPT="/opt/jitsi/shutdown.sh" export ENABLE_REPORT_STATS=true export POLLING_URL="{{ .Env.AUTOSCALER_URL }}/sidecar/poll" export STATUS_URL="{{ .Env.AUTOSCALER_URL }}/sidecar/status" diff --git a/jvb/rootfs/opt/jitsi/shutdown.sh b/jvb/rootfs/opt/jitsi/shutdown.sh new file mode 100755 index 0000000000..7a42791c58 --- /dev/null +++ b/jvb/rootfs/opt/jitsi/shutdown.sh @@ -0,0 +1,3 @@ +# shutdown everything + +s6-svscanctl -t /var/run/s6/services From b8a9080fde9a03fd98dede16094f152be51312a3 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 19 Dec 2023 13:21:06 -0600 Subject: [PATCH 17/62] task: fix shutdown script * task: fix shutdown script --- jvb/rootfs/opt/jitsi/shutdown.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jvb/rootfs/opt/jitsi/shutdown.sh b/jvb/rootfs/opt/jitsi/shutdown.sh index 7a42791c58..d7808909ab 100755 --- a/jvb/rootfs/opt/jitsi/shutdown.sh +++ b/jvb/rootfs/opt/jitsi/shutdown.sh @@ -1,3 +1,4 @@ -# shutdown everything +#!/usr/bin/with-contenv bash +# shutdown everything s6-svscanctl -t /var/run/s6/services From 60100d6ce273f46386126539598be91790fb698e Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 19 Dec 2023 15:22:53 -0600 Subject: [PATCH 18/62] jvb: expose public IP in autoscaler sidecar config (#1679) --- jvb/rootfs/defaults/autoscaler-sidecar.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jvb/rootfs/defaults/autoscaler-sidecar.config b/jvb/rootfs/defaults/autoscaler-sidecar.config index 69b83726ed..31ad83338f 100644 --- a/jvb/rootfs/defaults/autoscaler-sidecar.config +++ b/jvb/rootfs/defaults/autoscaler-sidecar.config @@ -15,4 +15,4 @@ export ASAP_SIGNING_KEY_FILE="{{ .Env.AUTOSCALER_SIDECAR_KEY_FILE }}" export ASAP_JWT_KID="{{ .Env.AUTOSCALER_SIDECAR_KEY_ID }}" export INSTANCE_TYPE="JVB" export INSTANCE_ID="{{ .Env.AUTOSCALER_SIDECAR_INSTANCE_ID }}" -export INSTANCE_METADATA='{"environment":"{{ .Env.XMPP_ENV_NAME }}","region":"{{ .Env.AUTOSCALER_SIDECAR_REGION }}","group":"{{ .Env.AUTOSCALER_SIDECAR_GROUP_NAME }}","name":"{{ .Env.JVB_INSTANCE_ID }}","version":"{{ .Env.JVB_VERSION }}","privateIp":"{{ .Env.LOCAL_ADDRESS }}","hostId":"{{ .Env.AUTOSCALER_SIDECAR_HOST_ID }}"}' +export INSTANCE_METADATA='{"environment":"{{ .Env.XMPP_ENV_NAME }}","region":"{{ .Env.AUTOSCALER_SIDECAR_REGION }}","group":"{{ .Env.AUTOSCALER_SIDECAR_GROUP_NAME }}","name":"{{ .Env.JVB_INSTANCE_ID }}","version":"{{ .Env.JVB_VERSION }}","privateIp":"{{ .Env.LOCAL_ADDRESS }}","publicIp":"{{ .Env.JVB_ADVERTISE_IPS }}","hostId":"{{ .Env.AUTOSCALER_SIDECAR_HOST_ID }}"}' From 11cbfccd8bb1c5511480c8f676412a5aada32faf Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Thu, 21 Dec 2023 16:34:21 -0600 Subject: [PATCH 19/62] web: provide bosh URL as relative only if flagged (#1682) --- docker-compose.yml | 1 + web/rootfs/defaults/system-config.js | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index f8b3d45431..ab524e5f0f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,7 @@ services: - AUDIO_QUALITY_OPUS_BITRATE - AUTO_CAPTION_ON_RECORD - BRANDING_DATA_URL + - BOSH_RELATIVE - CALLSTATS_CUSTOM_SCRIPT_URL - CALLSTATS_ID - CALLSTATS_SECRET diff --git a/web/rootfs/defaults/system-config.js b/web/rootfs/defaults/system-config.js index 2d6f8d081c..5dbe4b28f3 100644 --- a/web/rootfs/defaults/system-config.js +++ b/web/rootfs/defaults/system-config.js @@ -1,3 +1,4 @@ +{{ $BOSH_RELATIVE := .Env.BOSH_RELATIVE | default "false" | toBool -}} {{ $CONFIG_EXTERNAL_CONNECT := .Env.CONFIG_EXTERNAL_CONNECT | default "false" | toBool -}} {{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "false" | toBool -}} {{ $ENABLE_AUTH_DOMAIN := .Env.ENABLE_AUTH_DOMAIN | default "true" | toBool -}} @@ -44,7 +45,19 @@ config.hosts.authdomain = '{{ $XMPP_DOMAIN }}'; {{ end -}} {{ end -}} +{{ if $BOSH_RELATIVE -}} +{{ if $ENABLE_SUBDOMAINS -}} +config.bosh = '/'+ subdir + 'http-bind'; +{{ else -}} config.bosh = '/http-bind'; +{{ end -}} +{{ else -}} +{{ if $ENABLE_SUBDOMAINS -}} +config.bosh = 'https://{{ $PUBLIC_URL_DOMAIN}}/' + subdir + 'http-bind'; +{{ else -}} +config.bosh = 'https://{{ $PUBLIC_URL_DOMAIN}}/http-bind'; +{{ end -}} +{{ end -}} {{ if $ENABLE_XMPP_WEBSOCKET -}} {{ if $ENABLE_SUBDOMAINS -}} From 483bbde1ee4ff9341d5d606d8e6777c2cf2b1776 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 2 Jan 2024 10:38:24 -0600 Subject: [PATCH 20/62] web: trim deprecated options and defaults * web: trim deprecated options and defaults --- docker-compose.yml | 3 --- web/rootfs/defaults/settings-config.js | 33 ++++++++++---------------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ab524e5f0f..6ab0e49908 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -71,7 +71,6 @@ services: - ENABLE_HTTP_REDIRECT - ENABLE_IPV6 - ENABLE_LETSENCRYPT - - ENABLE_LIPSYNC - ENABLE_NO_AUDIO_DETECTION - ENABLE_NOISY_MIC_DETECTION - ENABLE_OCTO @@ -136,8 +135,6 @@ services: - START_WITH_AUDIO_MUTED - START_VIDEO_MUTED - START_WITH_VIDEO_MUTED - - TESTING_CAP_SCREENSHARE_BITRATE - - TESTING_OCTO_PROBABILITY - TOKEN_AUTH_URL - TOOLBAR_BUTTONS - TRANSLATION_LANGUAGES diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index ed2c3ccb6a..cd861c0e56 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -4,7 +4,6 @@ {{ $ENABLE_CALENDAR := .Env.ENABLE_CALENDAR | default "false" | toBool -}} {{ $ENABLE_FILE_RECORDING_SHARING := .Env.ENABLE_FILE_RECORDING_SHARING | default "false" | toBool -}} {{ $ENABLE_IPV6 := .Env.ENABLE_IPV6 | default "true" | toBool -}} -{{ $ENABLE_LIPSYNC := .Env.ENABLE_LIPSYNC | default "false" | toBool -}} {{ $ENABLE_NO_AUDIO_DETECTION := .Env.ENABLE_NO_AUDIO_DETECTION | default "true" | toBool -}} {{ $ENABLE_P2P := .Env.ENABLE_P2P | default "true" | toBool -}} {{ $ENABLE_PREJOIN_PAGE := .Env.ENABLE_PREJOIN_PAGE | default "true" | toBool -}} @@ -50,8 +49,6 @@ {{ $DESKTOP_SHARING_FRAMERATE_AUTO := .Env.DESKTOP_SHARING_FRAMERATE_AUTO | default "true" | toBool -}} {{ $DESKTOP_SHARING_FRAMERATE_MIN := .Env.DESKTOP_SHARING_FRAMERATE_MIN | default 5 -}} {{ $DESKTOP_SHARING_FRAMERATE_MAX := .Env.DESKTOP_SHARING_FRAMERATE_MAX | default 5 -}} -{{ $TESTING_OCTO_PROBABILITY := .Env.TESTING_OCTO_PROBABILITY | default "0" -}} -{{ $TESTING_CAP_SCREENSHARE_BITRATE := .Env.TESTING_CAP_SCREENSHARE_BITRATE | default "1" -}} {{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}} {{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}} {{ $DISABLE_DEEP_LINKING := .Env.DISABLE_DEEP_LINKING | default "false" | toBool -}} @@ -80,7 +77,10 @@ if (!config.constraints.hasOwnProperty('video')) config.constraints.video = {}; config.resolution = {{ $RESOLUTION }}; config.constraints.video.height = { ideal: {{ $RESOLUTION }}, max: {{ $RESOLUTION }}, min: {{ $RESOLUTION_MIN }} }; config.constraints.video.width = { ideal: {{ $RESOLUTION_WIDTH }}, max: {{ $RESOLUTION_WIDTH }}, min: {{ $RESOLUTION_WIDTH_MIN }}}; -config.disableSimulcast = {{ not $ENABLE_SIMULCAST }}; + +{{ if not $ENABLE_SIMULCAST -}} +config.disableSimulcast = true; +{{ end -}} config.startVideoMuted = {{ $START_VIDEO_MUTED }}; config.startWithVideoMuted = {{ $START_WITH_VIDEO_MUTED }}; @@ -119,7 +119,9 @@ config.startAudioMuted = {{ $START_AUDIO_MUTED }}; config.startWithAudioMuted = {{ $START_WITH_AUDIO_MUTED }}; config.startSilent = {{ $START_SILENT }}; config.enableOpusRed = {{ $ENABLE_OPUS_RED }}; -config.disableAudioLevels = {{ $DISABLE_AUDIO_LEVELS }}; +{{ if $DISABLE_AUDIO_LEVELS -}} +config.disableAudioLevels = true; +{{ end -}} config.enableNoisyMicDetection = {{ $ENABLE_NOISY_MIC_DETECTION }}; @@ -344,11 +346,12 @@ config.roomPasswordNumberOfDigits = {{ $ROOM_PASSWORD_DIGITS }}; // Advanced. // -// Lipsync hack in jicofo, may not be safe. -config.enableLipSync = {{ $ENABLE_LIPSYNC }}; - -config.enableRemb = {{ $ENABLE_REMB }}; -config.enableTcc = {{ $ENABLE_TCC }}; +{{ if not $ENABLE_REMB -}} +config.enableRemb = false; +{{ end -}} +{{ if not $ENABLE_TCC -}} +config.enableTcc = false; +{{ end -}} // Enable IPv6 support. config.useIPv6 = {{ $ENABLE_IPV6 }}; @@ -400,16 +403,6 @@ config.deploymentInfo.region = '{{ .Env.DEPLOYMENTINFO_REGION }}'; config.deploymentInfo.userRegion = '{{ $DEPLOYMENTINFO_USERREGION }}'; {{ end -}} - -// Testing -// - -if (!config.hasOwnProperty('testing')) config.testing = {}; -if (!config.testing.hasOwnProperty('octo')) config.testing.octo = {}; - -config.testing.capScreenshareBitrate = {{ $TESTING_CAP_SCREENSHARE_BITRATE }}; -config.testing.octo.probability = {{ $TESTING_OCTO_PROBABILITY }}; - // Deep Linking config.disableDeepLinking = {{ $DISABLE_DEEP_LINKING }}; From ec8615a292d86cb54ab47db32ced070ecde62019 Mon Sep 17 00:00:00 2001 From: bgrozev Date: Tue, 2 Jan 2024 10:48:35 -0600 Subject: [PATCH 21/62] fix: Fix default JIBRI_PENDING_TIMEOUT. (#1686) --- jicofo/rootfs/defaults/jicofo.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 1b1510ac92..05a7bf4d78 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -14,7 +14,7 @@ {{ $JIBRI_BREWERY_MUC := .Env.JIBRI_BREWERY_MUC | default "jibribrewery" -}} {{ $JIGASI_BREWERY_MUC := .Env.JIGASI_BREWERY_MUC | default "jigasibrewery" -}} {{ $JVB_BREWERY_MUC := .Env.JVB_BREWERY_MUC | default "jvbbrewery" -}} -{{ $JIBRI_PENDING_TIMEOUT := .Env.JIBRI_PENDING_TIMEOUT | default 90 -}} +{{ $JIBRI_PENDING_TIMEOUT := .Env.JIBRI_PENDING_TIMEOUT | default "90 seconds" -}} {{ $JVB_XMPP_AUTH_DOMAIN := .Env.JVB_XMPP_AUTH_DOMAIN | default "auth.jvb.meet.jitsi" -}} {{ $JVB_XMPP_INTERNAL_MUC_DOMAIN := .Env.JVB_XMPP_INTERNAL_MUC_DOMAIN | default "muc.jvb.meet.jitsi" -}} {{ $JVB_XMPP_PORT := .Env.JVB_XMPP_PORT | default "6222" -}} From aa898e457a2bcae378944557005fff6bcb3aa2c1 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 2 Jan 2024 11:13:40 -0600 Subject: [PATCH 22/62] jicofo: fix visitors auth domain (#1687) * jicofo: fix visitors auth domain * include compose --- docker-compose.yml | 1 + jicofo/rootfs/defaults/jicofo.conf | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6ab0e49908..688f19df06 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -359,6 +359,7 @@ services: - TZ - VISITORS_MAX_PARTICIPANTS - VISITORS_MAX_VISITORS_PER_NODE + - VISITORS_XMPP_AUTH_DOMAIN - VISITORS_XMPP_SERVER - VISITORS_XMPP_DOMAIN - XMPP_DOMAIN diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 05a7bf4d78..221ae8a2f8 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -21,6 +21,7 @@ {{ $JVB_XMPP_SERVER := .Env.JVB_XMPP_SERVER | default "xmpp.jvb.meet.jitsi" -}} {{ $VISITORS_MAX_VISITORS_PER_NODE := .Env.VISITORS_MAX_VISITORS_PER_NODE | default "250" }} {{ $VISITORS_MUC_PREFIX := .Env.PROSODY_VISITORS_MUC_PREFIX | default "muc" -}} +{{ $VISITORS_XMPP_AUTH_DOMAIN := .Env.VISITORS_XMPP_AUTH_DOMAIN | default "auth.meet.jitsi" -}} {{ $VISITORS_XMPP_DOMAIN := .Env.VISITORS_XMPP_DOMAIN | default "meet.jitsi" -}} {{ $VISITORS_XMPP_SERVER := .Env.VISITORS_XMPP_SERVER | default "" -}} {{ $VISITORS_XMPP_SERVERS := splitList "," $VISITORS_XMPP_SERVER -}} @@ -237,7 +238,7 @@ jicofo { hostname = {{ $SERVER._0 }} {{ $DEFAULT_PORT := add $VISITORS_XMPP_PORT $index }} port = {{ $SERVER._1 | default $DEFAULT_PORT }} - domain = "{{ $XMPP_AUTH_DOMAIN }}" + domain = "{{ $VISITORS_XMPP_AUTH_DOMAIN }}" xmpp-domain = v{{ $index }}.{{ $VISITORS_XMPP_DOMAIN }} password = "{{ $ENV.JICOFO_AUTH_PASSWORD }}" disable-certificate-verification = true From 1ad045ea0d707481c6c5465acc418f208fac6b5a Mon Sep 17 00:00:00 2001 From: bgrozev Date: Tue, 2 Jan 2024 12:17:31 -0600 Subject: [PATCH 23/62] feat: Add an option to enable sctp for relays. (#1688) --- docker-compose.yml | 1 + jicofo/rootfs/defaults/jicofo.conf | 2 ++ 2 files changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 688f19df06..bd0045266e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -317,6 +317,7 @@ services: - ENABLE_CODEC_OPUS_RED - ENABLE_JVB_XMPP_SERVER - ENABLE_OCTO + - ENABLE_OCTO_SCTP - ENABLE_RECORDING - ENABLE_SCTP - ENABLE_VISITORS diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 221ae8a2f8..0ecdaf3cb7 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -7,6 +7,7 @@ {{ $ENABLE_SCTP := .Env.ENABLE_SCTP | default "0" | toBool -}} {{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "0" | toBool -}} {{ $ENABLE_OCTO := .Env.ENABLE_OCTO | default "0" | toBool -}} +{{ $ENABLE_OCTO_SCTP := .Env.ENABLE_OCTO_SCTP | default $ENABLE_SCTP | toBool -}} {{ $ENABLE_AUTO_LOGIN := .Env.ENABLE_AUTO_LOGIN | default "1" | toBool -}} {{ $ENABLE_REST := .Env.JICOFO_ENABLE_REST | default "0" | toBool -}} {{ $ENABLE_JVB_XMPP_SERVER := .Env.ENABLE_JVB_XMPP_SERVER | default "0" | toBool -}} @@ -203,6 +204,7 @@ jicofo { // two MUST be in sync (otherwise bridges will crash because they won't know how to // deal with octo channels). enabled = {{ $ENABLE_OCTO }} + sctp-datachannels = {{ $ENABLE_OCTO_SCTP }} } {{ if $ENABLE_REST }} From 78fb030bbeadef2be4df025fa9c5dfdb806342ef Mon Sep 17 00:00:00 2001 From: bgrozev Date: Tue, 2 Jan 2024 12:52:47 -0600 Subject: [PATCH 24/62] fix: Fix typo in var name. (#1690) --- jicofo/rootfs/defaults/jicofo.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 0ecdaf3cb7..5c222f8598 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -145,7 +145,7 @@ jicofo { {{ end }} {{ if .Env.JICOFO_CONF_SOURCE_SIGNALING_DELAYS }} - source-signaling-delays = {{ .Env.JICOFO_SOURCE_SIGNALING_DELAYS }} + source-signaling-delays = {{ .Env.JICOFO_CONF_SOURCE_SIGNALING_DELAYS }} {{ end }} {{ if .Env.JICOFO_CONF_MAX_AUDIO_SENDERS }} From 2a6788593f3a0dca7fae4983e0f3d28c108f7a39 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 2 Jan 2024 13:39:36 -0600 Subject: [PATCH 25/62] jicofo: trusted domain list * jicofo: always trust auth domain * jicofo: allow trusted domain list --- docker-compose.yml | 1 + jicofo/rootfs/defaults/jicofo.conf | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index bd0045266e..970d7671b3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -341,6 +341,7 @@ services: - JICOFO_MAX_MEMORY - JICOFO_MULTI_STREAM_BACKWARD_COMPAT - JICOFO_OCTO_REGION + - JICOFO_TRUSTED_DOMAINS - JIBRI_BREWERY_MUC - JIBRI_REQUEST_RETRIES - JIBRI_PENDING_TIMEOUT diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 5c222f8598..b0fe406b30 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -7,7 +7,7 @@ {{ $ENABLE_SCTP := .Env.ENABLE_SCTP | default "0" | toBool -}} {{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "0" | toBool -}} {{ $ENABLE_OCTO := .Env.ENABLE_OCTO | default "0" | toBool -}} -{{ $ENABLE_OCTO_SCTP := .Env.ENABLE_OCTO_SCTP | default $ENABLE_SCTP | toBool -}} +{{ $ENABLE_OCTO_SCTP := .Env.ENABLE_OCTO_SCTP | default .Env.ENABLE_SCTP | toBool -}} {{ $ENABLE_AUTO_LOGIN := .Env.ENABLE_AUTO_LOGIN | default "1" | toBool -}} {{ $ENABLE_REST := .Env.JICOFO_ENABLE_REST | default "0" | toBool -}} {{ $ENABLE_JVB_XMPP_SERVER := .Env.ENABLE_JVB_XMPP_SERVER | default "0" | toBool -}} @@ -34,6 +34,10 @@ {{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}} {{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}} {{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}} +{{ $TRUSTED_DOMAIN_LIST := .Env.JICOFO_TRUSTED_DOMAINS | default ($ENABLE_RECORDING | ternary $XMPP_RECORDER_DOMAIN "") -}} +{{ $TRUSTED_DOMAINS := splitList "," $TRUSTED_DOMAIN_LIST -}} +{{ $ENV := .Env }} + {{ $ENV := .Env }} jicofo { @@ -272,8 +276,8 @@ jicofo { disable-certificate-verification = true } {{ end }} - {{ if $ENABLE_RECORDING }} - trusted-domains = [ "{{ $XMPP_RECORDER_DOMAIN }}" ] - {{ end }} + + trusted-domains = [ {{ range $index, $element := $TRUSTED_DOMAINS }}{{ if gt $index 0 }},{{ end }}"{{ $element }}"{{ end}} ] + } } From 5cc0ef0180ca7cdf4f8379b8a68e06e9fd5c66d1 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 2 Jan 2024 13:55:07 -0600 Subject: [PATCH 26/62] jicofo: fix duplicate line * jicofo: fix duplicate line --- jicofo/rootfs/defaults/jicofo.conf | 2 -- 1 file changed, 2 deletions(-) diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index b0fe406b30..3b8ffdbd99 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -38,8 +38,6 @@ {{ $TRUSTED_DOMAINS := splitList "," $TRUSTED_DOMAIN_LIST -}} {{ $ENV := .Env }} -{{ $ENV := .Env }} - jicofo { {{ if $JICOFO_ENABLE_AUTH }} authentication { From ab30f56e2711afc965d326cba58e7b9731fc51ee Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 2 Jan 2024 14:36:24 -0600 Subject: [PATCH 27/62] prosody: enable muc_meeting_id in lobby component * prosody: enable muc_meeting_id in lobby component --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index 0aadb95c94..e08787f5e2 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -406,6 +406,7 @@ Component "lobby.{{ $XMPP_DOMAIN }}" "muc" muc_room_locking = false muc_room_default_public_jids = true modules_enabled = { + "muc_meeting_id"; {{ if $ENABLE_RATE_LIMITS -}} "muc_rate_limit"; {{ end -}} From 52eef2eb23178963c28bcbf88f226439c1cc31c9 Mon Sep 17 00:00:00 2001 From: bgrozev Date: Tue, 2 Jan 2024 15:13:12 -0600 Subject: [PATCH 28/62] feat: Add an option to set jibri-sip brewery jid. (#1689) --- docker-compose.yml | 1 + jicofo/rootfs/defaults/jicofo.conf | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 970d7671b3..aca3853a17 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -204,6 +204,7 @@ services: - GLOBAL_MODULES - JIBRI_RECORDER_USER - JIBRI_RECORDER_PASSWORD + - JIBRI_SIP_BREWERY_MUC - JIBRI_XMPP_USER - JIBRI_XMPP_PASSWORD - JICOFO_AUTH_PASSWORD diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 3b8ffdbd99..2cb69929ac 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -190,6 +190,12 @@ jicofo { } {{ end }} + {{ if .Env.JIBRI_SIP_BREWERY_MUC }} + jibri-sip { + brewery-jid = "{{ .Env.JIBRI_SIP_BREWERY_MUC }}" + } + {{ end }} + {{ if and .Env.JIGASI_SIP_URI $JIGASI_BREWERY_MUC }} jigasi { brewery-jid = "{{ $JIGASI_BREWERY_MUC }}@{{ $XMPP_INTERNAL_MUC_DOMAIN }}" From 46b98b5a7a54347cc28d863f179accbf22ca969c Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Wed, 3 Jan 2024 11:51:30 -0600 Subject: [PATCH 29/62] prosody: brewery mode for jvb/jicofo discovery muc * prosody: brewery mode for jvb/jicofo discovery muc * do not include c2s limits in brewery mode --- .../rootfs/defaults/conf.d/brewery.cfg.lua | 36 +++++++++++++++++++ prosody/rootfs/defaults/prosody.cfg.lua | 14 +++++++- .../rules.d/jvb_muc_presence_filter.pfw | 13 +++++++ prosody/rootfs/etc/cont-init.d/10-config | 23 +++++++++++- 4 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 prosody/rootfs/defaults/conf.d/brewery.cfg.lua create mode 100644 prosody/rootfs/defaults/rules.d/jvb_muc_presence_filter.pfw diff --git a/prosody/rootfs/defaults/conf.d/brewery.cfg.lua b/prosody/rootfs/defaults/conf.d/brewery.cfg.lua new file mode 100644 index 0000000000..d225cb8ec0 --- /dev/null +++ b/prosody/rootfs/defaults/conf.d/brewery.cfg.lua @@ -0,0 +1,36 @@ +{{ $REGION_NAME := .Env.PROSODY_REGION_NAME | default "default" -}} +{{ $RELEASE_NUMBER := .Env.RELEASE_NUMBER | default "" -}} +{{ $SHARD_NAME := .Env.SHARD | default "default" -}} +{{ $JVB_XMPP_AUTH_DOMAIN := .Env.JVB_XMPP_AUTH_DOMAIN | default "auth.jvb.meet.jitsi" -}} +{{ $JVB_XMPP_INTERNAL_MUC_DOMAIN := .Env.JVB_XMPP_INTERNAL_MUC_DOMAIN | default "muc.jvb.meet.jitsi" -}} +{{ $JVB_AUTH_USER := .Env.JVB_AUTH_USER | default "jvb" -}} + +admins = { + "focus@{{ $JVB_XMPP_AUTH_DOMAIN }}", + "{{ $JVB_AUTH_USER }}@{{ $JVB_XMPP_AUTH_DOMAIN }}" +} + +plugin_paths = { "/prosody-plugins/", "/prosody-plugins-custom" } + +VirtualHost "{{ $JVB_XMPP_AUTH_DOMAIN }}" + modules_enabled = { + "ping"; + } + authentication = "internal_hashed" + ssl = { + key = "/config/certs/{{ $JVB_XMPP_AUTH_DOMAIN }}.key"; + certificate = "/config/certs/{{ $JVB_XMPP_AUTH_DOMAIN }}.crt"; + } + +Component "{{ $JVB_XMPP_INTERNAL_MUC_DOMAIN }}" "muc" + modules_enabled = { + "ping", + "muc_hide_all"; + "muc_filter_access"; + } + storage = "memory" + muc_room_cache_size = 10000 + muc_filter_whitelist="{{ $JVB_XMPP_AUTH_DOMAIN }}" + muc_room_locking = false + muc_room_default_public_jids = true + diff --git a/prosody/rootfs/defaults/prosody.cfg.lua b/prosody/rootfs/defaults/prosody.cfg.lua index c72a06dec4..77e4512a9f 100644 --- a/prosody/rootfs/defaults/prosody.cfg.lua +++ b/prosody/rootfs/defaults/prosody.cfg.lua @@ -99,7 +99,10 @@ modules_enabled = { --"watchregistrations"; -- Alert admins of registrations --"motd"; -- Send a message to users when they log in --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. - + {{ if eq .Env.PROSODY_MODE "brewery" -}} + "firewall"; -- Enable firewalling + "secure_interfaces"; + {{ end -}} {{ if $ENABLE_S2S -}} "s2s_bidi"; "certs_s2soutinjection"; @@ -114,6 +117,13 @@ modules_enabled = { component_ports = { } https_ports = { } + +{{ if eq .Env.PROSODY_MODE "brewery" -}} +firewall_scripts = { + "/config/rules.d/jvb_muc_presence_filter.pfw"; +}; +{{ end -}} + -- These modules are auto-loaded, but should you want -- to disable them then uncomment them here: modules_disabled = { @@ -129,6 +139,7 @@ modules_disabled = { -- For more information see http://prosody.im/doc/creating_accounts allow_registration = false; +{{ if ne .Env.PROSODY_MODE "brewery" -}} -- Enable rate limits for incoming client and server connections limits = { {{ if ne $PROSODY_C2S_LIMIT "" }} @@ -142,6 +153,7 @@ limits = { }; {{ end }} } +{{ end -}} --Prosody garbage collector settings --For more information see https://prosody.im/doc/advanced_gc diff --git a/prosody/rootfs/defaults/rules.d/jvb_muc_presence_filter.pfw b/prosody/rootfs/defaults/rules.d/jvb_muc_presence_filter.pfw new file mode 100644 index 0000000000..2f7713a2d2 --- /dev/null +++ b/prosody/rootfs/defaults/rules.d/jvb_muc_presence_filter.pfw @@ -0,0 +1,13 @@ +{{ $JVB_XMPP_AUTH_DOMAIN := .Env.JVB_XMPP_AUTH_DOMAIN | default "auth.jvb.meet.jitsi" -}} +{{ $JVB_XMPP_INTERNAL_MUC_DOMAIN := .Env.JVB_XMPP_INTERNAL_MUC_DOMAIN | default "muc.jvb.meet.jitsi" -}} +{{ $JVB_AUTH_USER := .Env.JVB_AUTH_USER | default "jvb" -}} +{{ $JVB_BREWERY_MUC := .Env.JVB_BREWERY_MUC | default "jvbbrewery" -}} +# Drop all presence from a jvb in a MUC to a jvb +FROM: {{ $JVB_BREWERY_MUC }}@{{ $JVB_XMPP_INTERNAL_MUC_DOMAIN }} +TO: {{ $JVB_AUTH_USER }}@{{ $JVB_XMPP_AUTH_DOMAIN }} +KIND: presence +# Seems safer to allow all "unavailable" to pass +TYPE: available +# Allow self-presence (code=110) +NOT INSPECT: {http://jabber.org/protocol/muc#user}x/status@code=110 +DROP. diff --git a/prosody/rootfs/etc/cont-init.d/10-config b/prosody/rootfs/etc/cont-init.d/10-config index ce02571577..b55196f4bb 100644 --- a/prosody/rootfs/etc/cont-init.d/10-config +++ b/prosody/rootfs/etc/cont-init.d/10-config @@ -29,17 +29,35 @@ fi mkdir /config/certs cp -r /defaults/* /config +[ -z "$PROSODY_MODE" ] && PROSODY_MODE="client" + if [[ "$PROSODY_MODE" == "visitors" ]]; then echo "Prosody visitor mode, using alternate config" PROSODY_SITE_CFG="visitors.cfg.lua" rm /config/conf.d/jitsi-meet.cfg.lua + rm /config/conf.d/brewery.cfg.lua # force jicofo into auth domain for visitor-mode prosody [ -z "$XMPP_AUTH_DOMAIN" ] && XMPP_AUTH_DOMAIN="auth.meet.jitsi" export PROSODY_ADMINS="focus@$XMPP_AUTH_DOMAIN" +elif [[ "$PROSODY_MODE" == "brewery" ]]; then + echo "Prosody brewery mode, using alternate config" + PROSODY_SITE_CFG="brewery.cfg.lua" + rm /config/conf.d/jitsi-meet.cfg.lua + rm /config/conf.d/visitors.cfg.lua + # force jicofo into auth domain for brewer prosody + [ -z "$JVB_XMPP_AUTH_DOMAIN" ] && JVB_XMPP_AUTH_DOMAIN="auth.meet.jitsi" + # ensure proper certs are generated + export XMPP_AUTH_DOMAIN="$JVB_XMPP_AUTH_DOMAIN" + # brewery mode requires C2S encryption + export C2S_REQUIRE_ENCRYPTION="true" + + mkdir -p /config/rules.d + tpl /defaults/rules.d/jvb_muc_presence_filter.pfw > /config/rules.d/jvb_muc_presence_filter.pfw else echo "Prosody normal mode, using default config" PROSODY_SITE_CFG="jitsi-meet.cfg.lua" rm /config/conf.d/visitors.cfg.lua + rm /config/conf.d/brewery.cfg.lua fi tpl /defaults/prosody.cfg.lua > $PROSODY_CFG tpl /defaults/conf.d/$PROSODY_SITE_CFG > /config/conf.d/$PROSODY_SITE_CFG @@ -60,7 +78,8 @@ fi prosodyctl --config $PROSODY_CFG register focus $XMPP_AUTH_DOMAIN $JICOFO_AUTH_PASSWORD -if [[ "$PROSODY_MODE" != "visitors" ]]; then +# if we are in client mode, we need to subscribe the focus user to the focus component proxy +if [[ "$PROSODY_MODE" == "client" ]]; then prosodyctl --config $PROSODY_CFG mod_roster_command subscribe focus.$XMPP_DOMAIN focus@$XMPP_AUTH_DOMAIN fi @@ -112,6 +131,8 @@ if [[ "$PROSODY_MODE" == "visitors" ]]; then # echo for using all default values echo | prosodyctl --config $PROSODY_CFG cert generate $FULL_VISITORS_XMPP_DOMAIN fi +elif [[ "$PROSODY_MODE" == "brewery" ]]; then + echo "No need to generate certs for main XMPP domain in brewery mode" else if [[ ! -f /config/certs/$XMPP_DOMAIN.crt ]]; then # echo for using all default values From 2915176b2e4c19478a7cbd9ecd1caada4f8171fe Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Wed, 3 Jan 2024 12:36:46 -0600 Subject: [PATCH 30/62] prosody: skip recorder account unless in client mode * prosody: skip recorder account unless in client mode --- prosody/rootfs/etc/cont-init.d/10-config | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/prosody/rootfs/etc/cont-init.d/10-config b/prosody/rootfs/etc/cont-init.d/10-config index b55196f4bb..2f3b138080 100644 --- a/prosody/rootfs/etc/cont-init.d/10-config +++ b/prosody/rootfs/etc/cont-init.d/10-config @@ -105,13 +105,15 @@ if [[ ! -z $JIBRI_XMPP_PASSWORD ]]; then prosodyctl --config $PROSODY_CFG register $JIBRI_XMPP_USER $XMPP_AUTH_DOMAIN $JIBRI_XMPP_PASSWORD fi -if [[ ! -z $JIBRI_RECORDER_PASSWORD ]]; then - OLD_JIBRI_RECORDER_PASSWORD=passw0rd - if [[ "$JIBRI_RECORDER_PASSWORD" == "$OLD_JIBRI_RECORDER_PASSWORD" ]]; then - echo 'FATAL ERROR: Jibri recorder password must be changed, check the README' - exit 1 +if [[ "$PROSODY_MODE" == "client" ]]; then + if [[ ! -z $JIBRI_RECORDER_PASSWORD ]]; then + OLD_JIBRI_RECORDER_PASSWORD=passw0rd + if [[ "$JIBRI_RECORDER_PASSWORD" == "$OLD_JIBRI_RECORDER_PASSWORD" ]]; then + echo 'FATAL ERROR: Jibri recorder password must be changed, check the README' + exit 1 + fi + prosodyctl --config $PROSODY_CFG register $JIBRI_RECORDER_USER $XMPP_RECORDER_DOMAIN $JIBRI_RECORDER_PASSWORD fi - prosodyctl --config $PROSODY_CFG register $JIBRI_RECORDER_USER $XMPP_RECORDER_DOMAIN $JIBRI_RECORDER_PASSWORD fi if [[ ! -z $JIGASI_XMPP_PASSWORD ]]; then From 80e4ee6341df077e126c19116b8c83ae6c011fcb Mon Sep 17 00:00:00 2001 From: bgrozev Date: Wed, 3 Jan 2024 16:20:29 -0600 Subject: [PATCH 31/62] Remove unnecessary modules and properties (#1697) * Only enable dialback when s2s is enabled. * Remove vcard, pep, register modules. * Only set smacks properties when xmpp ws is enabled. --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 7 +++++++ prosody/rootfs/defaults/prosody.cfg.lua | 10 +--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index e08787f5e2..5a04b4e3ea 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -117,6 +117,13 @@ asap_accepted_audiences = { "{{ join "\",\"" (splitList "," .Env.JWT_ACCEPTED_AU consider_bosh_secure = true; consider_websocket_secure = true; +{{ if $ENABLE_XMPP_WEBSOCKET }} +smacks_max_unacked_stanzas = 5; +smacks_hibernation_time = 60; +smacks_max_hibernated_sessions = 1; +smacks_max_old_sessions = 1; +{{ end }} + {{ if $ENABLE_JAAS_COMPONENTS }} VirtualHost "jigasi.meet.jitsi" modules_enabled = { diff --git a/prosody/rootfs/defaults/prosody.cfg.lua b/prosody/rootfs/defaults/prosody.cfg.lua index 77e4512a9f..23f20d9eaf 100644 --- a/prosody/rootfs/defaults/prosody.cfg.lua +++ b/prosody/rootfs/defaults/prosody.cfg.lua @@ -63,12 +63,10 @@ modules_enabled = { "roster"; -- Allow users to have a roster. Recommended ;) "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in. "tls"; -- Add support for secure TLS on c2s/s2s connections - "dialback"; -- s2s dialback support "disco"; -- Service discovery -- Not essential, but recommended "private"; -- Private XML storage (for room bookmarks, etc.) - "vcard"; -- Allow users to set vCards "limits"; -- Enable bandwidth limiting for XMPP connections -- These are commented by default as they have a performance impact @@ -80,8 +78,6 @@ modules_enabled = { "uptime"; -- Report how long server has been running "time"; -- Let others know the time here on this server "ping"; -- Replies to XMPP pings with pongs - "pep"; -- Enables users to publish their mood, activity, playing music and more - "register"; -- Allow users to register on this server using a client and change passwords -- Admin interfaces "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands @@ -104,6 +100,7 @@ modules_enabled = { "secure_interfaces"; {{ end -}} {{ if $ENABLE_S2S -}} + "dialback"; -- s2s dialback support "s2s_bidi"; "certs_s2soutinjection"; "s2sout_override"; @@ -305,9 +302,4 @@ http_interfaces = { "*" } data_path = "/config/data" -smacks_max_unacked_stanzas = 5; -smacks_hibernation_time = 60; -smacks_max_hibernated_sessions = 1; -smacks_max_old_sessions = 1; - Include "conf.d/*.cfg.lua" From e41e4f480d8f8790c05f2d498fa0e5a41f14a1b3 Mon Sep 17 00:00:00 2001 From: bgrozev Date: Thu, 4 Jan 2024 14:59:09 -0600 Subject: [PATCH 32/62] Require tls by default. (#1698) --- prosody/rootfs/defaults/prosody.cfg.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prosody/rootfs/defaults/prosody.cfg.lua b/prosody/rootfs/defaults/prosody.cfg.lua index 23f20d9eaf..a1ec9ca98f 100644 --- a/prosody/rootfs/defaults/prosody.cfg.lua +++ b/prosody/rootfs/defaults/prosody.cfg.lua @@ -1,4 +1,4 @@ -{{ $C2S_REQUIRE_ENCRYPTION := .Env.PROSODY_C2S_REQUIRE_ENCRYPTION | default "0" | toBool -}} +{{ $C2S_REQUIRE_ENCRYPTION := .Env.PROSODY_C2S_REQUIRE_ENCRYPTION | default "1" | toBool -}} {{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "0" | toBool -}} {{ $ENABLE_GUEST_DOMAIN := and $ENABLE_AUTH (.Env.ENABLE_GUESTS | default "0" | toBool) -}} {{ $ENABLE_VISITORS := .Env.ENABLE_VISITORS | default "0" | toBool -}} From 884560678521d735de77bdb11e78aa206da7004e Mon Sep 17 00:00:00 2001 From: bgrozev Date: Thu, 4 Jan 2024 15:37:18 -0600 Subject: [PATCH 33/62] Move trusted_proxies from visitors to main prosody config file. (#1699) --- prosody/rootfs/defaults/conf.d/visitors.cfg.lua | 8 -------- prosody/rootfs/defaults/prosody.cfg.lua | 7 +++++++ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua index 35fd209bc9..96b4677d87 100644 --- a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua @@ -15,8 +15,6 @@ {{ $RELEASE_NUMBER := .Env.RELEASE_NUMBER | default "" -}} {{ $SHARD_NAME := .Env.SHARD | default "default" -}} {{ $S2S_PORT := .Env.PROSODY_S2S_PORT | default "5269" -}} -{{ $TRUSTED_PROXIES := .Env.PROSODY_TRUSTED_PROXIES | default "127.0.0.1,::1" -}} -{{ $TRUSTED_PROXY_LIST := splitList "," $TRUSTED_PROXIES -}} {{ $TURN_HOST := .Env.TURN_HOST | default "" -}} {{ $TURN_HOSTS := splitList "," $TURN_HOST -}} {{ $TURN_PORT := .Env.TURN_PORT | default "443" -}} @@ -92,12 +90,6 @@ consider_websocket_secure = true; consider_bosh_secure = true; bosh_max_inactivity = 60; -trusted_proxies = { -{{ range $index, $proxy := $TRUSTED_PROXY_LIST }} - "{{ $proxy }}"; -{{ end }} -} - -- this is added to make certs_s2soutinjection work s2sout_override = { ["{{ $XMPP_MUC_DOMAIN }}"] = "tcp://{{ $XMPP_SERVER }}:{{ $XMPP_SERVER_S2S_PORT }}"; -- needed for visitors to send messages to main room diff --git a/prosody/rootfs/defaults/prosody.cfg.lua b/prosody/rootfs/defaults/prosody.cfg.lua index a1ec9ca98f..8864b8bdae 100644 --- a/prosody/rootfs/defaults/prosody.cfg.lua +++ b/prosody/rootfs/defaults/prosody.cfg.lua @@ -15,6 +15,8 @@ {{ $PROSODY_HTTP_PORT := .Env.PROSODY_HTTP_PORT | default "5280" -}} {{ $PROSODY_ADMINS := .Env.PROSODY_ADMINS | default "" -}} {{ $PROSODY_ADMIN_LIST := splitList "," $PROSODY_ADMINS -}} +{{ $TRUSTED_PROXIES := .Env.PROSODY_TRUSTED_PROXIES | default "127.0.0.1,::1" -}} +{{ $TRUSTED_PROXY_LIST := splitList "," $TRUSTED_PROXIES -}} {{ $PROSODY_S2S_LIMIT := .Env.PROSODY_S2S_LIMIT | default "30kb/s" -}} {{ $S2S_PORT := .Env.PROSODY_S2S_PORT | default "5269" }} {{ $VISITORS_MUC_PREFIX := .Env.PROSODY_VISITORS_MUC_PREFIX | default "muc" -}} @@ -114,6 +116,11 @@ modules_enabled = { component_ports = { } https_ports = { } +trusted_proxies = { +{{ range $index, $proxy := $TRUSTED_PROXY_LIST }} + "{{ $proxy }}"; +{{ end }} +} {{ if eq .Env.PROSODY_MODE "brewery" -}} firewall_scripts = { From c21a59856237f2c02a88f0e9b3d4b3934a9be229 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Thu, 4 Jan 2024 15:39:36 -0600 Subject: [PATCH 34/62] prosody: visitors config whitespace fix (#1694) --- prosody/rootfs/defaults/conf.d/visitors.cfg.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua index 96b4677d87..51520ebe6a 100644 --- a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua @@ -129,8 +129,7 @@ VirtualHost 'v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}' {{ if .Env.XMPP_CONFIGURATION -}} {{ join "\n " (splitList "," .Env.XMPP_CONFIGURATION) }} - {{ end -}} - + {{- end }} VirtualHost '{{ $XMPP_AUTH_DOMAIN}}' modules_enabled = { From 7f86006c3f5f8b26e168d5b49fd2608ac06be003 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Mon, 8 Jan 2024 12:24:53 -0600 Subject: [PATCH 35/62] prosody: remove muc_meeting_id from lobby * prosody: remove muc_meeting_id from lobby --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index 5a04b4e3ea..a711318d86 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -413,7 +413,6 @@ Component "lobby.{{ $XMPP_DOMAIN }}" "muc" muc_room_locking = false muc_room_default_public_jids = true modules_enabled = { - "muc_meeting_id"; {{ if $ENABLE_RATE_LIMITS -}} "muc_rate_limit"; {{ end -}} From 5093efb4bbe644ba3ea64aa251400bd31ad66d6d Mon Sep 17 00:00:00 2001 From: Jaya Allamsetty Date: Wed, 10 Jan 2024 14:58:17 -0500 Subject: [PATCH 36/62] feat: Add testing flag for Av1 --- docker-compose.yml | 1 + web/rootfs/defaults/settings-config.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index aca3853a17..58c2723c8f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -135,6 +135,7 @@ services: - START_WITH_AUDIO_MUTED - START_VIDEO_MUTED - START_WITH_VIDEO_MUTED + - TESTING_AV1_SUPPORT - TOKEN_AUTH_URL - TOOLBAR_BUTTONS - TRANSLATION_LANGUAGES diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index cd861c0e56..bb9b903eed 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -67,6 +67,7 @@ {{ $ROOM_PASSWORD_DIGITS := .Env.ROOM_PASSWORD_DIGITS | default "false" -}} {{ $WHITEBOARD_COLLAB_SERVER_PUBLIC_URL := .Env.WHITEBOARD_COLLAB_SERVER_PUBLIC_URL | default "" -}} {{ $WHITEBOARD_ENABLED := .Env.WHITEBOARD_ENABLED | default "false" | toBool -}} +{{ $TESTING_AV1_SUPPORT := .Env.TESTING_AV1_SUPPORT | default "false" | toBool -}} // Video configuration. // @@ -477,3 +478,7 @@ config.e2eping.maxMessagePerSecond = {{ .Env.E2EPING_MAX_MESSAGE_PER_SECOND }}; if (!config.hasOwnProperty('whiteboard')) config.whiteboard = {}; config.whiteboard.enabled = {{ $WHITEBOARD_ENABLED }}; config.whiteboard.collabServerBaseUrl = '{{ $WHITEBOARD_COLLAB_SERVER_PUBLIC_URL }}'; + +// Testing +if (!config.hasOwnProperty('testing')) config.testing = {}; +config.testing.enableAv1Support = {{ $TESTING_AV1_SUPPORT }}; From 3a888fdf46b357cae12498cad85e8d201b8bb6b5 Mon Sep 17 00:00:00 2001 From: abin Date: Thu, 11 Jan 2024 17:49:08 +0800 Subject: [PATCH 37/62] jicofo: add support for max-ssrcs-per-user config --- docker-compose.yml | 2 ++ jicofo/rootfs/defaults/jicofo.conf | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 58c2723c8f..d7fe4f7510 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -373,6 +373,8 @@ services: - XMPP_RECORDER_DOMAIN - XMPP_SERVER - XMPP_PORT + - MAX_SSRCS_PER_USER + - MAX_SSRC_GROUPS_PER_USER depends_on: - prosody networks: diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 2cb69929ac..b020516e07 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -34,6 +34,8 @@ {{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}} {{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}} {{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}} +{{ $MAX_SSRCS_PER_USER := .Env.MAX_SSRCS_PER_USER | default "20" -}} +{{ $MAX_SSRC_GROUPS_PER_USER := .Env.MAX_SSRC_GROUPS_PER_USER | default $MAX_SSRCS_PER_USER -}} {{ $TRUSTED_DOMAIN_LIST := .Env.JICOFO_TRUSTED_DOMAINS | default ($ENABLE_RECORDING | ternary $XMPP_RECORDER_DOMAIN "") -}} {{ $TRUSTED_DOMAINS := splitList "," $TRUSTED_DOMAIN_LIST -}} {{ $ENV := .Env }} @@ -142,6 +144,10 @@ jicofo { initial-timeout = "{{ .Env.JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT }}" {{ end }} + max-ssrcs-per-user = "{{ $MAX_SSRCS_PER_USER }}" + + max-ssrc-groups-per-user = "{{ $MAX_SSRC_GROUPS_PER_USER }}" + {{ if .Env.JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT }} single-participant-timeout = "{{ .Env.JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT }}" {{ end }} From 1dbe5cda68038403b417caf641ce476f0fa7d571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Thu, 11 Jan 2024 10:42:49 +0100 Subject: [PATCH 38/62] web: cleanup config Remove no longer necessary checks since we build the whole config from scratch. Drop no longer valid options: - Callstats - useIPv6 - External connect --- docker-compose.yml | 4 - web/rootfs/defaults/settings-config.js | 181 ++++++++++++------------- web/rootfs/defaults/system-config.js | 17 +-- 3 files changed, 95 insertions(+), 107 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d7fe4f7510..dd3b35c775 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,15 +20,11 @@ services: - AUTO_CAPTION_ON_RECORD - BRANDING_DATA_URL - BOSH_RELATIVE - - CALLSTATS_CUSTOM_SCRIPT_URL - - CALLSTATS_ID - - CALLSTATS_SECRET - CHROME_EXTENSION_BANNER_JSON - COLIBRI_WEBSOCKET_PORT - COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME - COLIBRI_WEBSOCKET_REGEX - CONFCODE_URL - - CONFIG_EXTERNAL_CONNECT - DEFAULT_LANGUAGE - DEPLOYMENTINFO_ENVIRONMENT - DEPLOYMENTINFO_ENVIRONMENT_TYPE diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index bb9b903eed..5deb8b748d 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -3,7 +3,6 @@ {{ $ENABLE_BREAKOUT_ROOMS := .Env.ENABLE_BREAKOUT_ROOMS | default "true" | toBool -}} {{ $ENABLE_CALENDAR := .Env.ENABLE_CALENDAR | default "false" | toBool -}} {{ $ENABLE_FILE_RECORDING_SHARING := .Env.ENABLE_FILE_RECORDING_SHARING | default "false" | toBool -}} -{{ $ENABLE_IPV6 := .Env.ENABLE_IPV6 | default "true" | toBool -}} {{ $ENABLE_NO_AUDIO_DETECTION := .Env.ENABLE_NO_AUDIO_DETECTION | default "true" | toBool -}} {{ $ENABLE_P2P := .Env.ENABLE_P2P | default "true" | toBool -}} {{ $ENABLE_PREJOIN_PAGE := .Env.ENABLE_PREJOIN_PAGE | default "true" | toBool -}} @@ -19,7 +18,6 @@ {{ $ENABLE_REMB := .Env.ENABLE_REMB | default "true" | toBool -}} {{ $ENABLE_REQUIRE_DISPLAY_NAME := .Env.ENABLE_REQUIRE_DISPLAY_NAME | default "false" | toBool -}} {{ $ENABLE_SIMULCAST := .Env.ENABLE_SIMULCAST | default "true" | toBool -}} -{{ $ENABLE_STATS_ID := .Env.ENABLE_STATS_ID | default "false" | toBool -}} {{ $ENABLE_STEREO := .Env.ENABLE_STEREO | default "false" | toBool -}} {{ $ENABLE_OPUS_RED := .Env.ENABLE_OPUS_RED | default "false" | toBool -}} {{ $ENABLE_TALK_WHILE_MUTED := .Env.ENABLE_TALK_WHILE_MUTED | default "false" | toBool -}} @@ -72,12 +70,13 @@ // Video configuration. // -if (!config.hasOwnProperty('constraints')) config.constraints = {}; -if (!config.constraints.hasOwnProperty('video')) config.constraints.video = {}; - config.resolution = {{ $RESOLUTION }}; -config.constraints.video.height = { ideal: {{ $RESOLUTION }}, max: {{ $RESOLUTION }}, min: {{ $RESOLUTION_MIN }} }; -config.constraints.video.width = { ideal: {{ $RESOLUTION_WIDTH }}, max: {{ $RESOLUTION_WIDTH }}, min: {{ $RESOLUTION_WIDTH_MIN }}}; +config.constraints = { + video: { + height: { ideal: {{ $RESOLUTION }}, max: {{ $RESOLUTION }}, min: {{ $RESOLUTION_MIN }} }, + width: { ideal: {{ $RESOLUTION_WIDTH }}, max: {{ $RESOLUTION_WIDTH }}, min: {{ $RESOLUTION_WIDTH_MIN }}}, + } +}; {{ if not $ENABLE_SIMULCAST -}} config.disableSimulcast = true; @@ -89,17 +88,22 @@ config.startWithVideoMuted = {{ $START_WITH_VIDEO_MUTED }}; config.startBitrate = '{{ .Env.START_BITRATE }}'; {{ end -}} -if (!config.hasOwnProperty('flags')) config.flags = {}; -config.flags.sourceNameSignaling = true; -config.flags.sendMultipleVideoStreams = true; -config.flags.receiveMultipleVideoStreams = true; +config.flags = { + sourceNameSignaling: true + sendMultipleVideoStreams: true, + receiveMultipleVideoStreams: true +}; + -{{ if not $DESKTOP_SHARING_FRAMERATE_AUTO }} // ScreenShare Configuration. // -config.desktopSharingFrameRate = { min: {{ $DESKTOP_SHARING_FRAMERATE_MIN }}, max: {{ $DESKTOP_SHARING_FRAMERATE_MAX }} }; -{{ end }} +{{ if not $DESKTOP_SHARING_FRAMERATE_AUTO -}} +config.desktopSharingFrameRate = { + min: {{ $DESKTOP_SHARING_FRAMERATE_MIN }}, + max: {{ $DESKTOP_SHARING_FRAMERATE_MAX }} +}; +{{ end -}} // Audio configuration. // @@ -108,8 +112,9 @@ config.enableNoAudioDetection = {{ $ENABLE_NO_AUDIO_DETECTION }}; config.enableTalkWhileMuted = {{ $ENABLE_TALK_WHILE_MUTED }}; config.disableAP = {{ not $ENABLE_AUDIO_PROCESSING }}; -if (!config.hasOwnProperty('audioQuality')) config.audioQuality = {}; -config.audioQuality.stereo = {{ $ENABLE_STEREO }}; +config.audioQuality = { + stereo: {{ $ENABLE_STEREO }} +}; {{ if .Env.AUDIO_QUALITY_OPUS_BITRATE -}} config.audioQuality.opusMaxAverageBitrate = '{{ .Env.AUDIO_QUALITY_OPUS_BITRATE }}'; @@ -120,18 +125,16 @@ config.startAudioMuted = {{ $START_AUDIO_MUTED }}; config.startWithAudioMuted = {{ $START_WITH_AUDIO_MUTED }}; config.startSilent = {{ $START_SILENT }}; config.enableOpusRed = {{ $ENABLE_OPUS_RED }}; -{{ if $DISABLE_AUDIO_LEVELS -}} -config.disableAudioLevels = true; -{{ end -}} +config.disableAudioLevels = {{ $DISABLE_AUDIO_LEVELS }}; config.enableNoisyMicDetection = {{ $ENABLE_NOISY_MIC_DETECTION }}; // Peer-to-Peer options. // -if (!config.hasOwnProperty('p2p')) config.p2p = {}; - -config.p2p.enabled = {{ $ENABLE_P2P }}; +config.p2p = { + enabled: {{ $ENABLE_P2P }} +}; // Breakout Rooms @@ -157,28 +160,32 @@ config.etherpad_base = '{{ $PUBLIC_URL }}/etherpad/p/'; config.hiddenDomain = '{{ $XMPP_RECORDER_DOMAIN }}'; -if (!config.hasOwnProperty('recordingService')) config.recordingService = {}; - -// Whether to enable file recording or not using the "service" defined by the finalizer in Jibri -config.recordingService.enabled = {{ $ENABLE_SERVICE_RECORDING }}; +config.recordingService = { + // Whether to enable file recording or not using the "service" defined by the finalizer in Jibri + enabled: {{ $ENABLE_SERVICE_RECORDING }}, -// Whether to show the possibility to share file recording with other people -// (e.g. meeting participants), based on the actual implementation -// on the backend. -config.recordingService.sharingEnabled = {{ $ENABLE_FILE_RECORDING_SHARING }}; + // Whether to show the possibility to share file recording with other people + // (e.g. meeting participants), based on the actual implementation + // on the backend. + sharingEnabled: {{ $ENABLE_FILE_RECORDING_SHARING }} +}; // Live streaming configuration. -if (!config.hasOwnProperty('liveStreaming')) config.liveStreaming = {}; -config.liveStreaming.enabled = {{ $ENABLE_LIVESTREAMING }}; -config.liveStreaming.dataPrivacyLink= '{{ $ENABLE_LIVESTREAMING_DATA_PRIVACY_LINK }}'; -config.liveStreaming.helpLink= '{{ $ENABLE_LIVESTREAMING_HELP_LINK }}'; -config.liveStreaming.termsLink= '{{ $ENABLE_LIVESTREAMING_TERMS_LINK }}'; -config.liveStreaming.validatorRegExpString= '{{ $ENABLE_LIVESTREAMING_VALIDATOR_REGEXP_STRING }}'; +config.liveStreaming = { + enabled: {{ $ENABLE_LIVESTREAMING }}, + dataPrivacyLink: '{{ $ENABLE_LIVESTREAMING_DATA_PRIVACY_LINK }}', + helpLink: '{{ $ENABLE_LIVESTREAMING_HELP_LINK }}', + termsLink: '{{ $ENABLE_LIVESTREAMING_TERMS_LINK }}', + validatorRegExpString: '{{ $ENABLE_LIVESTREAMING_VALIDATOR_REGEXP_STRING }}' +}; + {{ if .Env.DROPBOX_APPKEY -}} // Enable the dropbox integration. -if (!config.hasOwnProperty('dropbox')) config.dropbox = {}; -config.dropbox.appKey = '{{ .Env.DROPBOX_APPKEY }}'; +config.dropbox = { + appKey = '{{ .Env.DROPBOX_APPKEY }}' +}; + {{ if .Env.DROPBOX_REDIRECT_URI -}} // A URL to redirect the user to, after authenticating // by default uses: @@ -186,20 +193,21 @@ config.dropbox.appKey = '{{ .Env.DROPBOX_APPKEY }}'; config.dropbox.redirectURI = '{{ .Env.DROPBOX_REDIRECT_URI }}'; {{ end -}} {{ end -}} -{{ end -}} +{{ end -}} // Local recording configuration. -if (!config.hasOwnProperty('localRecording')) config.localRecording = {}; -config.localRecording.disable = {{ $DISABLE_LOCAL_RECORDING }}; -config.localRecording.notifyAllParticipants = {{ $ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT }}; -config.localRecording.disableSelfRecording = {{ $ENABLE_LOCAL_RECORDING_SELF_START }}; +config.localRecording = { + disable: {{ $DISABLE_LOCAL_RECORDING }}, + notifyAllParticipants: {{ $ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT }}, + disableSelfRecording: {{ $ENABLE_LOCAL_RECORDING_SELF_START }} +}; // Analytics. // -if (!config.hasOwnProperty('analytics')) config.analytics = {}; +config.analytics = {}; {{ if .Env.AMPLITUDE_ID -}} // The Amplitude APP Key: @@ -230,24 +238,6 @@ config.analytics.scriptURLs = [ '{{ join "','" (splitList "," .Env.ANALYTICS_SCR config.analytics.whiteListedEvents = [ '{{ join "','" (splitList "," .Env.ANALYTICS_WHITELISTED_EVENTS) }}' ]; {{ end -}} -{{ if .Env.CALLSTATS_CUSTOM_SCRIPT_URL -}} -config.callStatsCustomScriptUrl = '{{ .Env.CALLSTATS_CUSTOM_SCRIPT_URL }}'; -{{ end -}} - -{{ if .Env.CALLSTATS_ID -}} -// To enable sending statistics to callstats.io you must provide the -// Application ID and Secret. -config.callStatsID = '{{ .Env.CALLSTATS_ID }}'; -{{ end -}} - -{{ if .Env.CALLSTATS_ID -}} -config.callStatsSecret = '{{ .Env.CALLSTATS_SECRET }}'; -{{ end -}} - -// Enables callstatsUsername to be reported as statsId and used -// by callstats as repoted remote id. -config.enableStatsID = {{ $ENABLE_STATS_ID }}; - // Dial in/out services. // @@ -304,11 +294,12 @@ config.peopleSearchQueryTypes = ['user','conferenceRooms']; // // Prejoin page. -if (!config.hasOwnProperty('prejoinConfig')) config.prejoinConfig = {}; -config.prejoinConfig.enabled = {{ $ENABLE_PREJOIN_PAGE }}; +config.prejoinConfig = { + enabled: {{ $ENABLE_PREJOIN_PAGE }}, -// Hides the participant name editing field in the prejoin screen. -config.prejoinConfig.hideDisplayName = {{ $HIDE_PREJOIN_DISPLAY_NAME }}; + // Hides the participant name editing field in the prejoin screen. + hideDisplayName: {{ $HIDE_PREJOIN_DISPLAY_NAME }} +}; // List of buttons to hide from the extra join options dropdown on prejoin screen. {{ if .Env.HIDE_PREJOIN_EXTRA_BUTTONS -}} @@ -316,7 +307,9 @@ config.prejoinConfig.hideExtraJoinButtons = [ '{{ join "','" (splitList "," .Env {{ end -}} // Welcome page. -config.enableWelcomePage = {{ $ENABLE_WELCOME_PAGE }}; +config.welcomePage = { + disabled = {{ not $ENABLE_WELCOME_PAGE }}; +}; // Close page. config.enableClosePage = {{ $ENABLE_CLOSE_PAGE }}; @@ -354,18 +347,19 @@ config.enableRemb = false; config.enableTcc = false; {{ end -}} -// Enable IPv6 support. -config.useIPv6 = {{ $ENABLE_IPV6 }}; // Transcriptions (subtitles and buttons can be configured in interface_config) -config.transcription = { enabled: {{ $ENABLE_TRANSCRIPTIONS }} }; -config.transcription.translationLanguages = {{ $TRANSLATION_LANGUAGES }}; -config.transcription.translationLanguagesHead = {{ $TRANSLATION_LANGUAGES_HEAD }}; -config.transcription.useAppLanguage = {{ $USE_APP_LANGUAGE }}; -config.transcription.preferredLanguage = '{{ $PREFERRED_LANGUAGE }}'; -config.transcription.disableStartForAll = {{ $DISABLE_START_FOR_ALL }}; -config.transcription.autoCaptionOnRecord = {{ $AUTO_CAPTION_ON_RECORD }}; - +config.transcription = { + enabled: {{ $ENABLE_TRANSCRIPTIONS }}, + translationLanguages = {{ $TRANSLATION_LANGUAGES }}, + translationLanguagesHead = {{ $TRANSLATION_LANGUAGES_HEAD }}, + useAppLanguage = {{ $USE_APP_LANGUAGE }}, + preferredLanguage = '{{ $PREFERRED_LANGUAGE }}', + disableStartForAll = {{ $DISABLE_START_FOR_ALL }}, + autoCaptionOnRecord = {{ $AUTO_CAPTION_ON_RECORD }}, +}; + +// Dynamic branding {{ if .Env.DYNAMIC_BRANDING_URL -}} // External API url used to receive branding specific information. config.dynamicBrandingUrl = '{{ .Env.DYNAMIC_BRANDING_URL }}'; @@ -374,7 +368,7 @@ config.brandingDataUrl = '{{ .Env.BRANDING_DATA_URL }}'; {{ end -}} {{ if .Env.TOKEN_AUTH_URL -}} -// Authenticate using external service or just focus external auth window if there is one already. +// Authenticate using external service config.tokenAuthUrl = '{{ .Env.TOKEN_AUTH_URL }}'; {{ end -}} @@ -382,7 +376,7 @@ config.tokenAuthUrl = '{{ .Env.TOKEN_AUTH_URL }}'; // Deployment information. // -if (!config.hasOwnProperty('deploymentInfo')) config.deploymentInfo = {}; +config.deploymentInfo = {}; {{ if .Env.DEPLOYMENTINFO_ENVIRONMENT -}} config.deploymentInfo.environment = '{{ .Env.DEPLOYMENTINFO_ENVIRONMENT }}'; @@ -455,15 +449,18 @@ config.hiddenPremeetingButtons = [ '{{ join "','" (splitList "," .Env.HIDE_PREME {{ end -}} // Configure remote participant video menu -if (!config.hasOwnProperty('remoteVideoMenu')) config.remoteVideoMenu = {}; -config.remoteVideoMenu.disabled = {{ $DISABLE_REMOTE_VIDEO_MENU }}; -config.remoteVideoMenu.disableKick = {{ $DISABLE_KICKOUT }}; -config.remoteVideoMenu.disableGrantModerator = {{ $DISABLE_GRANT_MODERATOR }}; -config.remoteVideoMenu.disablePrivateChat = {{ $DISABLE_PRIVATE_CHAT }}; +config.remoteVideoMenu = { + disabled: {{ $DISABLE_REMOTE_VIDEO_MENU }}, + disableKick: {{ $DISABLE_KICKOUT }}, + disableGrantModerator: {{ $DISABLE_GRANT_MODERATOR }}, + disablePrivateChat: {{ $DISABLE_PRIVATE_CHAT }} +}; // Configure e2eping -if (!config.hasOwnProperty('e2eping')) config.e2eping = {}; -config.e2eping.enabled = {{ $ENABLE_E2EPING }}; +config.e2eping = { + enabled: {{ $ENABLE_E2EPING }} +}; + {{ if .Env.E2EPING_NUM_REQUESTS -}} config.e2eping.numRequests = {{ .Env.E2EPING_NUM_REQUESTS }}; {{ end -}} @@ -475,10 +472,12 @@ config.e2eping.maxMessagePerSecond = {{ .Env.E2EPING_MAX_MESSAGE_PER_SECOND }}; {{ end }} // Settings for the Excalidraw whiteboard integration. -if (!config.hasOwnProperty('whiteboard')) config.whiteboard = {}; -config.whiteboard.enabled = {{ $WHITEBOARD_ENABLED }}; -config.whiteboard.collabServerBaseUrl = '{{ $WHITEBOARD_COLLAB_SERVER_PUBLIC_URL }}'; +config.whiteboard = { + enabled: {{ $WHITEBOARD_ENABLED }}, + collabServerBaseUrl: '{{ $WHITEBOARD_COLLAB_SERVER_PUBLIC_URL }}' +}; // Testing -if (!config.hasOwnProperty('testing')) config.testing = {}; -config.testing.enableAv1Support = {{ $TESTING_AV1_SUPPORT }}; +config.testing = { + enableAv1Support: {{ $TESTING_AV1_SUPPORT }} +}; diff --git a/web/rootfs/defaults/system-config.js b/web/rootfs/defaults/system-config.js index 5dbe4b28f3..b680acf40a 100644 --- a/web/rootfs/defaults/system-config.js +++ b/web/rootfs/defaults/system-config.js @@ -1,5 +1,4 @@ {{ $BOSH_RELATIVE := .Env.BOSH_RELATIVE | default "false" | toBool -}} -{{ $CONFIG_EXTERNAL_CONNECT := .Env.CONFIG_EXTERNAL_CONNECT | default "false" | toBool -}} {{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "false" | toBool -}} {{ $ENABLE_AUTH_DOMAIN := .Env.ENABLE_AUTH_DOMAIN | default "true" | toBool -}} {{ $ENABLE_GUESTS := .Env.ENABLE_GUESTS | default "false" | toBool -}} @@ -12,10 +11,11 @@ {{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "muc.meet.jitsi" -}} {{ $XMPP_MUC_DOMAIN_PREFIX := (split "." $XMPP_MUC_DOMAIN)._0 -}} {{ $JVB_PREFER_SCTP := .Env.JVB_PREFER_SCTP | default "false" | toBool -}} + // Jitsi Meet configuration. var config = {}; -if (!config.hasOwnProperty('hosts')) config.hosts = {}; +config.hosts = {}; config.hosts.domain = '{{ $XMPP_DOMAIN }}'; config.focusUserJid = 'focus@{{$XMPP_AUTH_DOMAIN}}'; @@ -67,15 +67,8 @@ config.websocket = 'wss://{{ $PUBLIC_URL_DOMAIN }}/xmpp-websocket'; {{ end -}} {{ end -}} -{{ if $CONFIG_EXTERNAL_CONNECT -}} -{{ if $ENABLE_SUBDOMAINS -}} -config.externalConnectUrl = '/' + subdir + 'http-pre-bind'; -{{ else -}} -config.externalConnectUrl = '/http-pre-bind'; -{{ end -}} -{{ end -}} - {{ if $JVB_PREFER_SCTP -}} -if (!config.hasOwnProperty('bridgeChannel')) config.bridgeChannel = {}; -config.bridgeChannel.preferSctp=true; +config.bridgeChannel = { + preferSctp: true +}; {{ end -}} From 1cba0b580318e077ca2e2385ead0858875dba67d Mon Sep 17 00:00:00 2001 From: Jaya Allamsetty Date: Wed, 10 Jan 2024 17:22:28 -0500 Subject: [PATCH 39/62] web: Fix the maxbitrates config setting. Also, remove the 'enforcePreferredCodec' setting which is no longer supported. --- docker-compose.yml | 5 ++- web/rootfs/defaults/settings-config.js | 61 ++++++++++++++++++-------- 2 files changed, 47 insertions(+), 19 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index dd3b35c775..39fc548c3c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -141,16 +141,19 @@ services: - VIDEOQUALITY_BITRATE_H264_LOW - VIDEOQUALITY_BITRATE_H264_STANDARD - VIDEOQUALITY_BITRATE_H264_HIGH + - VIDEOQUALITY_BITRATE_H264_SS_HIGH - VIDEOQUALITY_BITRATE_VP8_LOW - VIDEOQUALITY_BITRATE_VP8_STANDARD - VIDEOQUALITY_BITRATE_VP8_HIGH + - VIDEOQUALITY_BITRATE_VP8_SS_HIGH - VIDEOQUALITY_BITRATE_VP9_LOW - VIDEOQUALITY_BITRATE_VP9_STANDARD - VIDEOQUALITY_BITRATE_VP9_HIGH + - VIDEOQUALITY_BITRATE_VP9_SS_HIGH - VIDEOQUALITY_BITRATE_AV1_LOW - VIDEOQUALITY_BITRATE_AV1_STANDARD - VIDEOQUALITY_BITRATE_AV1_HIGH - - VIDEOQUALITY_ENFORCE_PREFERRED_CODEC + - VIDEOQUALITY_BITRATE_AV1_SS_HIGH - VIDEOQUALITY_PREFERRED_CODEC - XMPP_AUTH_DOMAIN - XMPP_BOSH_URL_BASE diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index 5deb8b748d..a11d8b6d13 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -50,7 +50,6 @@ {{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}} {{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}} {{ $DISABLE_DEEP_LINKING := .Env.DISABLE_DEEP_LINKING | default "false" | toBool -}} -{{ $VIDEOQUALITY_ENFORCE_PREFERRED_CODEC := .Env.VIDEOQUALITY_ENFORCE_PREFERRED_CODEC | default "false" | toBool -}} {{ $DISABLE_POLLS := .Env.DISABLE_POLLS | default "false" | toBool -}} {{ $DISABLE_REACTIONS := .Env.DISABLE_REACTIONS | default "false" | toBool -}} {{ $DISABLE_REMOTE_VIDEO_MENU := .Env.DISABLE_REMOTE_VIDEO_MENU | default "false" | toBool -}} @@ -406,30 +405,56 @@ config.disableDeepLinking = {{ $DISABLE_DEEP_LINKING }}; config.p2p.preferredCodec = '{{ .Env.P2P_PREFERRED_CODEC }}'; {{ end -}} -// Enable preferred video Codec -if (!config.hasOwnProperty('videoQuality')) config.videoQuality = {}; +// Video quality settings. +// + +config.videoQuality = {}; {{ if .Env.VIDEOQUALITY_PREFERRED_CODEC -}} config.videoQuality.preferredCodec = '{{ .Env.VIDEOQUALITY_PREFERRED_CODEC }}'; {{ end -}} -config.videoQuality.enforcePreferredCodec = {{ $VIDEOQUALITY_ENFORCE_PREFERRED_CODEC }}; - -if (!config.videoQuality.hasOwnProperty('maxBitratesVideo')) config.videoQuality.maxBitratesVideo = null; -{{ if and .Env.VIDEOQUALITY_BITRATE_H264_LOW .Env.VIDEOQUALITY_BITRATE_H264_STANDARD .Env.VIDEOQUALITY_BITRATE_H264_HIGH -}} -config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {} -config.videoQuality.maxBitratesVideo.H264 = { low: {{ .Env.VIDEOQUALITY_BITRATE_H264_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_H264_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_H264_HIGH }} }; +{{ if and .Env.VIDEOQUALITY_BITRATE_AV1_LOW .Env.VIDEOQUALITY_BITRATE_AV1_STANDARD .Env.VIDEOQUALITY_BITRATE_AV1_HIGH .Env.VIDEOQUALITY_BITRATE_AV1_SS_HIGH -}} +config.videoQuality.av1 = { + maxBitratesVideo: { + low: {{ .Env.VIDEOQUALITY_BITRATE_AV1_LOW }}, + standard: {{ .Env.VIDEOQUALITY_BITRATE_AV1_STANDARD }}, + high: {{ .Env.VIDEOQUALITY_BITRATE_AV1_HIG }}, + ssHigh: {{ .Env.VIDEOQUALITY_BITRATE_AV1_SS_HIGH }} + } +} {{ end -}} -{{ if and .Env.VIDEOQUALITY_BITRATE_VP8_LOW .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD .Env.VIDEOQUALITY_BITRATE_VP8_HIGH -}} -config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {} -config.videoQuality.maxBitratesVideo.VP8 = { low: {{ .Env.VIDEOQUALITY_BITRATE_VP8_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_VP8_HIGH }} }; + +{{ if and .Env.VIDEOQUALITY_BITRATE_H264_LOW .Env.VIDEOQUALITY_BITRATE_H264_STANDARD .Env.VIDEOQUALITY_BITRATE_H264_HIGH .Env.VIDEOQUALITY_BITRATE_H264_SS_HIGH -}} +config.videoQuality.h264 = { + maxBitratesVideo: { + low: {{ .Env.VIDEOQUALITY_BITRATE_H264_LOW }}, + standard: {{ .Env.VIDEOQUALITY_BITRATE_H264_STANDARD }}, + high: {{ .Env.VIDEOQUALITY_BITRATE_H264_HIGH }}, + ssHigh: {{ .Env.VIDEOQUALITY_BITRATE_H264_SS_HIGH }} + } +} {{ end -}} -{{ if and .Env.VIDEOQUALITY_BITRATE_VP9_LOW .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD .Env.VIDEOQUALITY_BITRATE_VP9_HIGH -}} -config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {} -config.videoQuality.maxBitratesVideo.VP9 = { low: {{ .Env.VIDEOQUALITY_BITRATE_VP9_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_VP9_HIGH }} }; + +{{ if and .Env.VIDEOQUALITY_BITRATE_VP8_LOW .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD .Env.VIDEOQUALITY_BITRATE_VP8_HIGH .Env.VIDEOQUALITY_BITRATE_VP8_SS_HIGH -}} +config.videoQuality.vp8 = { + maxBitratesVideo: { + low: {{ .Env.VIDEOQUALITY_BITRATE_VP8_LOW }}, + standard: {{ .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD }}, + high: {{ .Env.VIDEOQUALITY_BITRATE_VP8_HIGH }}, + ssHigh: {{ .Env.VIDEOQUALITY_BITRATE_VP8_SS_HIGH }} + } +} {{ end -}} -{{ if and .Env.VIDEOQUALITY_BITRATE_AV1_LOW .Env.VIDEOQUALITY_BITRATE_AV1_STANDARD .Env.VIDEOQUALITY_BITRATE_AV1_HIGH -}} -config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {} -config.videoQuality.maxBitratesVideo.AV1 = { low: {{ .Env.VIDEOQUALITY_BITRATE_AV1_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_AV1_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_AV1_HIGH }} }; + +{{ if and .Env.VIDEOQUALITY_BITRATE_VP9_LOW .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD .Env.VIDEOQUALITY_BITRATE_VP9_HIGH .Env.VIDEOQUALITY_BITRATE_VP9_SS_HIGH -}} +config.videoQuality.vp9 = { + maxBitratesVideo: { + low: {{ .Env.VIDEOQUALITY_BITRATE_VP9_LOW }}, + standard: {{ .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD }}, + high: {{ .Env.VIDEOQUALITY_BITRATE_VP9_HIGH }}, + ssHigh: {{ .Env.VIDEOQUALITY_BITRATE_VP9_SS_HIGH }} + } +} {{ end -}} // Reactions From d64ae1c193ced9f0776616f71fe1057051ab391d Mon Sep 17 00:00:00 2001 From: Jaya Allamsetty Date: Thu, 11 Jan 2024 10:06:06 -0500 Subject: [PATCH 40/62] web: remove 'startBitrate' that is no longer supported. --- docker-compose.yml | 1 - web/rootfs/defaults/settings-config.js | 7 +------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 39fc548c3c..d33b8c1ddc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -126,7 +126,6 @@ services: - RESOLUTION_WIDTH_MIN - START_AUDIO_MUTED - START_AUDIO_ONLY - - START_BITRATE - START_SILENT - START_WITH_AUDIO_MUTED - START_VIDEO_MUTED diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index a11d8b6d13..7f3e3f1656 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -83,17 +83,12 @@ config.disableSimulcast = true; config.startVideoMuted = {{ $START_VIDEO_MUTED }}; config.startWithVideoMuted = {{ $START_WITH_VIDEO_MUTED }}; -{{ if .Env.START_BITRATE -}} -config.startBitrate = '{{ .Env.START_BITRATE }}'; -{{ end -}} - config.flags = { - sourceNameSignaling: true + sourceNameSignaling: true, sendMultipleVideoStreams: true, receiveMultipleVideoStreams: true }; - // ScreenShare Configuration. // From df88c7c1e31ace0c2c8aba9662f33b25530bb977 Mon Sep 17 00:00:00 2001 From: Kurt Garloff Date: Fri, 12 Jan 2024 14:12:24 +0100 Subject: [PATCH 41/62] Fix/web settings prop syntax (#1706) --- web/rootfs/defaults/settings-config.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index 7f3e3f1656..85dbd24208 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -302,7 +302,7 @@ config.prejoinConfig.hideExtraJoinButtons = [ '{{ join "','" (splitList "," .Env // Welcome page. config.welcomePage = { - disabled = {{ not $ENABLE_WELCOME_PAGE }}; + disabled: {{ not $ENABLE_WELCOME_PAGE }} }; // Close page. @@ -345,12 +345,12 @@ config.enableTcc = false; // Transcriptions (subtitles and buttons can be configured in interface_config) config.transcription = { enabled: {{ $ENABLE_TRANSCRIPTIONS }}, - translationLanguages = {{ $TRANSLATION_LANGUAGES }}, - translationLanguagesHead = {{ $TRANSLATION_LANGUAGES_HEAD }}, - useAppLanguage = {{ $USE_APP_LANGUAGE }}, - preferredLanguage = '{{ $PREFERRED_LANGUAGE }}', - disableStartForAll = {{ $DISABLE_START_FOR_ALL }}, - autoCaptionOnRecord = {{ $AUTO_CAPTION_ON_RECORD }}, + translationLanguages: {{ $TRANSLATION_LANGUAGES }}, + translationLanguagesHead: {{ $TRANSLATION_LANGUAGES_HEAD }}, + useAppLanguage: {{ $USE_APP_LANGUAGE }}, + preferredLanguage: '{{ $PREFERRED_LANGUAGE }}', + disableStartForAll: {{ $DISABLE_START_FOR_ALL }}, + autoCaptionOnRecord: {{ $AUTO_CAPTION_ON_RECORD }}, }; // Dynamic branding From 2a3f8fd5e94f90a3d17ab11cbfb8bde540e5e06b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Fri, 12 Jan 2024 14:57:06 +0100 Subject: [PATCH 42/62] web: fix config.js syntax --- web/rootfs/defaults/settings-config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index 85dbd24208..eda44c0054 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -177,7 +177,7 @@ config.liveStreaming = { {{ if .Env.DROPBOX_APPKEY -}} // Enable the dropbox integration. config.dropbox = { - appKey = '{{ .Env.DROPBOX_APPKEY }}' + appKey: '{{ .Env.DROPBOX_APPKEY }}' }; {{ if .Env.DROPBOX_REDIRECT_URI -}} From 458477984239f6e50d0f0eaad04bba1b843b3917 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Fri, 12 Jan 2024 09:50:33 -0600 Subject: [PATCH 43/62] jicofo: fix enable sctp octo defaults (#1708) --- jicofo/rootfs/defaults/jicofo.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index b020516e07..3559cffc45 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -7,7 +7,7 @@ {{ $ENABLE_SCTP := .Env.ENABLE_SCTP | default "0" | toBool -}} {{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "0" | toBool -}} {{ $ENABLE_OCTO := .Env.ENABLE_OCTO | default "0" | toBool -}} -{{ $ENABLE_OCTO_SCTP := .Env.ENABLE_OCTO_SCTP | default .Env.ENABLE_SCTP | toBool -}} +{{ $ENABLE_OCTO_SCTP := .Env.ENABLE_OCTO_SCTP | default (.Env.ENABLE_SCTP | default "0") | toBool -}} {{ $ENABLE_AUTO_LOGIN := .Env.ENABLE_AUTO_LOGIN | default "1" | toBool -}} {{ $ENABLE_REST := .Env.JICOFO_ENABLE_REST | default "0" | toBool -}} {{ $ENABLE_JVB_XMPP_SERVER := .Env.ENABLE_JVB_XMPP_SERVER | default "0" | toBool -}} From 1365d7f403b17c0a57bca5bbd96dc206b0c13178 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Fri, 12 Jan 2024 10:00:48 -0600 Subject: [PATCH 44/62] base-java: include jdk package * base-java: include jdk package --- base-java/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-java/Dockerfile b/base-java/Dockerfile index fc69468984..c28dc6043b 100644 --- a/base-java/Dockerfile +++ b/base-java/Dockerfile @@ -4,5 +4,5 @@ FROM ${JITSI_REPO}/base:${BASE_TAG} RUN mkdir -p /usr/share/man/man1 && \ apt-dpkg-wrap apt-get update && \ - apt-dpkg-wrap apt-get install -y openjdk-11-jre-headless && \ + apt-dpkg-wrap apt-get install -y openjdk-11-jre-headless openjdk-11-jdk-headless && \ apt-cleanup From 9b686c6f4aa74cd33ddcd4dd35decc76a9470e1e Mon Sep 17 00:00:00 2001 From: damencho Date: Fri, 12 Jan 2024 14:58:16 -0600 Subject: [PATCH 45/62] prosody: Drops unused module. --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index a711318d86..bd05685d0a 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -193,7 +193,6 @@ VirtualHost "{{ $XMPP_DOMAIN }}" "websocket"; "smacks"; -- XEP-0198: Stream Management {{ end }} - "pubsub"; "ping"; "speakerstats"; "conference_duration"; From 21f04ead6ef732d2de051d4415ffdfbc556c0ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 15 Jan 2024 11:37:58 +0100 Subject: [PATCH 46/62] base: update tpl --- base/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/Dockerfile b/base/Dockerfile index 2140dcaefc..fb708d0984 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -16,7 +16,7 @@ RUN case ${TARGETPLATFORM} in \ esac && \ apt-dpkg-wrap apt-get update && \ apt-dpkg-wrap apt-get install -y apt-transport-https apt-utils ca-certificates gnupg wget && \ - wget -qO /usr/bin/tpl https://github.com/jitsi/tpl/releases/download/v1.0.4/tpl-linux-${TPL_ARCH} && \ + wget -qO /usr/bin/tpl https://github.com/jitsi/tpl/releases/download/v1.1.0/tpl-linux-${TPL_ARCH} && \ wget -qO - https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-${S6_ARCH}.tar.gz | tar xfz - -C / && \ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmour > /etc/apt/trusted.gpg.d/jitsi.gpg && \ echo "deb https://download.jitsi.org $JITSI_RELEASE/" > /etc/apt/sources.list.d/jitsi.list && \ From d31e16465627a7c7aef5acbe62a3355603eb69d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 15 Jan 2024 11:48:36 +0100 Subject: [PATCH 47/62] build: simplify detection of the target platform It can be done within the container, rather than having to compute it in the Makefile and then pass it as an argument. --- Makefile | 20 +------------------- base/Dockerfile | 14 ++++++-------- jibri/Dockerfile | 9 +++++---- jibri/rootfs/usr/bin/install-chrome.sh | 4 +++- 4 files changed, 15 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 12c9485730..2bb18425da 100644 --- a/Makefile +++ b/Makefile @@ -2,20 +2,9 @@ FORCE_REBUILD ?= 0 JITSI_RELEASE ?= stable JITSI_BUILD ?= unstable JITSI_REPO ?= jitsi -NATIVE_ARCH ?= $(shell uname -m) JITSI_SERVICES := base base-java web prosody jicofo jvb jigasi jibri -ifeq ($(NATIVE_ARCH),x86_64) - TARGETPLATFORM := linux/amd64 -else ifeq ($(NATIVE_ARCH),aarch64) - TARGETPLATFORM := linux/arm64 -else ifeq ($(NATIVE_ARCH),arm64) - TARGETPLATFORM := linux/arm64 -else - TARGETPLATFORM := unsupported -endif - BUILD_ARGS := \ --build-arg JITSI_REPO=$(JITSI_REPO) \ --build-arg JITSI_RELEASE=$(JITSI_RELEASE) @@ -43,19 +32,12 @@ buildx: $(addprefix buildx_,$(JITSI_SERVICES)): $(MAKE) --no-print-directory JITSI_SERVICE=$(patsubst buildx_%,%,$@) buildx -ifeq ($(TARGETPLATFORM), unsupported) build: - @echo "Unsupported native architecture" - @exit 1 -else -build: - @echo "Building for $(TARGETPLATFORM)" docker build \ - $(BUILD_ARGS) --build-arg TARGETPLATFORM=$(TARGETPLATFORM) \ + $(BUILD_ARGS) \ --progress plain \ --tag $(JITSI_REPO)/$(JITSI_SERVICE) \ $(JITSI_SERVICE) -endif $(addprefix build_,$(JITSI_SERVICES)): $(MAKE) --no-print-directory JITSI_SERVICE=$(patsubst build_%,%,$@) build diff --git a/base/Dockerfile b/base/Dockerfile index fb708d0984..68d6b02120 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,18 +1,16 @@ FROM docker.io/library/debian:bullseye-slim ARG JITSI_RELEASE=stable -ARG TARGETPLATFORM ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2 COPY rootfs / -RUN case ${TARGETPLATFORM} in \ - "linux/amd64") TPL_ARCH=amd64 ;; \ - "linux/arm64") TPL_ARCH=arm64 ;; \ - esac && \ - case ${TARGETPLATFORM} in \ - "linux/amd64") S6_ARCH=amd64 ;; \ - "linux/arm64") S6_ARCH=aarch64 ;; \ +RUN \ + dpkgArch="$(dpkg --print-architecture)" && \ + case "${dpkgArch##*-}" in \ + "amd64") TPL_ARCH=amd64; S6_ARCH=amd64 ;; \ + "arm64") TPL_ARCH=arm64; S6_ARCH=aarch64 ;; \ + *) echo "unsupported architecture"; exit 1 ;; \ esac && \ apt-dpkg-wrap apt-get update && \ apt-dpkg-wrap apt-get install -y apt-transport-https apt-utils ca-certificates gnupg wget && \ diff --git a/jibri/Dockerfile b/jibri/Dockerfile index fbe9506a0b..ac9fa220ad 100644 --- a/jibri/Dockerfile +++ b/jibri/Dockerfile @@ -8,7 +8,6 @@ LABEL org.opencontainers.image.url="https://github.com/jitsi/jibri" LABEL org.opencontainers.image.source="https://github.com/jitsi/docker-jitsi-meet" LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/" -ARG TARGETPLATFORM ARG USE_CHROMIUM=0 #ARG CHROME_RELEASE=latest # https://googlechromelabs.github.io/chrome-for-testing/ @@ -21,9 +20,11 @@ RUN apt-dpkg-wrap apt-get update && \ /usr/bin/install-chrome.sh && \ apt-cleanup && \ adduser jibri rtkit && \ - case ${TARGETPLATFORM} in \ - "linux/amd64") SC_ARCH=x86_64 ;; \ - "linux/arm64") SC_ARCH=aarch64 ;; \ + dpkgArch="$(dpkg --print-architecture)" && \ + case "${dpkgArch##*-}" in \ + "amd64") SC_ARCH=x86_64 ;; \ + "arm64") SC_ARCH=aarch64 ;; \ + *) echo "unsupported architecture"; exit 1 ;; \ esac && \ wget -qO /usr/bin/shm-check https://github.com/saghul/shm-check/releases/download/v1.0.0/shm-check-${SC_ARCH} && \ chmod +x /usr/bin/shm-check diff --git a/jibri/rootfs/usr/bin/install-chrome.sh b/jibri/rootfs/usr/bin/install-chrome.sh index 8a291108f0..b8fe139b56 100755 --- a/jibri/rootfs/usr/bin/install-chrome.sh +++ b/jibri/rootfs/usr/bin/install-chrome.sh @@ -2,7 +2,9 @@ set -o pipefail -xeu -if [ "${USE_CHROMIUM}" = 1 -o "${TARGETPLATFORM}" = "linux/arm64" ]; then +dpkgArch="$(dpkg --print-architecture)" + +if [ "${USE_CHROMIUM}" = 1 -o "${dpkgArch##*-}" = "arm64" ]; then echo "Using Debian's Chromium" apt-dpkg-wrap apt-get install -y chromium chromium-driver chromium-sandbox chromium --version From 4ca576360e11811a4bad308eb01158b8309243d1 Mon Sep 17 00:00:00 2001 From: emrah Date: Wed, 17 Jan 2024 19:27:48 +0300 Subject: [PATCH 48/62] prosody: the new version of contrib-prosody-plugins (#1713) * prosody: update version of prosody-plugings package * prosody: update the version of contrib-prosody-plugins package * prosody: add MATRIX_LOBBY_BYPASS variable to control matrix_lobby_bypass module --- docker-compose.yml | 1 + prosody/Dockerfile | 3 ++- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index d33b8c1ddc..f29915394f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -225,6 +225,7 @@ services: - MATRIX_UVS_ISSUER - MATRIX_UVS_AUTH_TOKEN - MATRIX_UVS_SYNC_POWER_LEVELS + - MATRIX_LOBBY_BYPASS - LOG_LEVEL - LDAP_AUTH_METHOD - LDAP_BASE diff --git a/prosody/Dockerfile b/prosody/Dockerfile index f9a745722b..f6542b6a30 100644 --- a/prosody/Dockerfile +++ b/prosody/Dockerfile @@ -27,7 +27,7 @@ LABEL org.opencontainers.image.url="https://prosody.im/" LABEL org.opencontainers.image.source="https://github.com/jitsi/docker-jitsi-meet" LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/" -ARG VERSION_JITSI_CONTRIB_PROSODY_PLUGINS="20230929" +ARG VERSION_JITSI_CONTRIB_PROSODY_PLUGINS="20240117" ARG VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN="1.8.0" RUN wget -qO /etc/apt/trusted.gpg.d/prosody.gpg https://prosody.im/files/prosody-debian-packages.key && \ @@ -66,6 +66,7 @@ RUN wget -qO /etc/apt/trusted.gpg.d/prosody.gpg https://prosody.im/files/prosody tar -xf v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz && \ mv prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS/auth_hybrid_matrix_token/mod_auth_hybrid_matrix_token.lua /prosody-plugins && \ mv prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS/auth_hybrid_matrix_token/mod_matrix_affiliation.lua /prosody-plugins && \ + mv prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS/auth_hybrid_matrix_token/mod_matrix_lobby_bypass.lua /prosody-plugins && \ rm -rf prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz COPY rootfs/ / diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index bd05685d0a..c0a2f8744a 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -13,6 +13,7 @@ {{ $JWT_ENABLE_DOMAIN_VERIFICATION := .Env.JWT_ENABLE_DOMAIN_VERIFICATION | default "false" | toBool -}} {{ $MATRIX_UVS_ISSUER := .Env.MATRIX_UVS_ISSUER | default "issuer" -}} {{ $MATRIX_UVS_SYNC_POWER_LEVELS := .Env.MATRIX_UVS_SYNC_POWER_LEVELS | default "0" | toBool -}} +{{ $MATRIX_LOBBY_BYPASS := .Env.MATRIX_LOBBY_BYPASS | default "0" | toBool -}} {{ $JWT_TOKEN_AUTH_MODULE := .Env.JWT_TOKEN_AUTH_MODULE | default "token_verification" -}} {{ $ENABLE_LOBBY := .Env.ENABLE_LOBBY | default "true" | toBool -}} {{ $ENABLE_AV_MODERATION := .Env.ENABLE_AV_MODERATION | default "true" | toBool -}} @@ -330,6 +331,9 @@ Component "{{ $XMPP_MUC_DOMAIN }}" "muc" {{ if and $ENABLE_AUTH (eq $PROSODY_AUTH_TYPE "hybrid_matrix_token") $MATRIX_UVS_SYNC_POWER_LEVELS -}} "matrix_affiliation"; {{ end -}} + {{ if and $ENABLE_AUTH (eq $PROSODY_AUTH_TYPE "hybrid_matrix_token") $MATRIX_LOBBY_BYPASS -}} + "matrix_lobby_bypass"; + {{ end -}} {{ if not $DISABLE_POLLS -}} "polls"; {{ end -}} From 11d7d75d72223f231efe8b961014c13df4b806d4 Mon Sep 17 00:00:00 2001 From: bgrozev Date: Fri, 19 Jan 2024 16:12:08 -0600 Subject: [PATCH 49/62] fix: Do not load domain_mapper under breakout component (#1714) It gets loaded twice and registers for each host twice: 2024-01-19 21:09:33 conference.beta.meet.jit.si:muc_domain_mapper info Loading mod_muc_domain_mapper for host jigasi.beta.meet.jit.si! 2024-01-19 21:09:33 breakout.beta.meet.jit.si:muc_domain_mapper info Loading mod_muc_domain_mapper for host jigasi.beta.meet.jit.si! --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 3 --- 1 file changed, 3 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index c0a2f8744a..e22648777f 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -436,9 +436,6 @@ Component "breakout.{{ $XMPP_DOMAIN }}" "muc" muc_room_allow_persistent = false modules_enabled = { "muc_meeting_id"; - {{ if $ENABLE_SUBDOMAINS -}} - "muc_domain_mapper"; - {{ end -}} {{ if not $DISABLE_POLLS -}} "polls"; {{ end -}} From 6e6dd96beaa50f839de1a3f7be590b3b7cfdfacb Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Mon, 22 Jan 2024 08:07:57 -0600 Subject: [PATCH 50/62] web: nginx config for load-test client if present (#1715) --- docker-compose.yml | 1 + web/rootfs/defaults/meet.conf | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index f29915394f..9cefe8bc1b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -80,6 +80,7 @@ services: - ENABLE_LIVESTREAMING_HELP_LINK - ENABLE_LIVESTREAMING_TERMS_LINK - ENABLE_LIVESTREAMING_VALIDATOR_REGEXP_STRING + - ENABLE_LOAD_TEST_CLIENT - ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT - ENABLE_LOCAL_RECORDING_SELF_START - ENABLE_RECORDING diff --git a/web/rootfs/defaults/meet.conf b/web/rootfs/defaults/meet.conf index 013a15b221..6ec7c0321e 100644 --- a/web/rootfs/defaults/meet.conf +++ b/web/rootfs/defaults/meet.conf @@ -2,6 +2,7 @@ {{ $COLIBRI_WEBSOCKET_PORT := .Env.COLIBRI_WEBSOCKET_PORT | default "9090" }} {{ $COLIBRI_WEBSOCKET_REGEX := .Env.COLIBRI_WEBSOCKET_REGEX | default "jvb" }} {{ $ENABLE_JAAS_COMPONENTS := .Env.ENABLE_JAAS_COMPONENTS | default "0" | toBool }} +{{ $ENABLE_LOAD_TEST_CLIENT := .Env.ENABLE_LOAD_TEST_CLIENT | default "0" | toBool }} {{ $ENABLE_OCTO := .Env.ENABLE_OCTO | default "0" | toBool -}} {{ $ENABLE_XMPP_WEBSOCKET := .Env.ENABLE_XMPP_WEBSOCKET | default "1" | toBool }} {{ $ENABLE_SUBDOMAINS := .Env.ENABLE_SUBDOMAINS | default "true" | toBool -}} @@ -185,6 +186,35 @@ location @root_path { } {{ end }} + {{- if $ENABLE_LOAD_TEST_CLIENT }} + # load test minimal client, uncomment when used + location ~ ^/_load-test/([^/?&:'"]+)$ { + rewrite ^/_load-test/(.*)$ /load-test/index.html break; + } + location ~ ^/_load-test/libs/(.*)$ { + add_header 'Access-Control-Allow-Origin' '*'; + alias /usr/share/jitsi-meet/load-test/libs/$1; + } + + # load-test for subdomains + location ~ ^/([^/?&:'"]+)/_load-test/([^/?&:'"]+)$ { + set $subdomain "$1."; + set $subdir "$1/"; + set $prefix "$1"; + + rewrite ^/(.*)$ /load-test/index.html break; + } + + # load-test for subdomains + location ~ ^/([^/?&:'"]+)/_load-test/libs/(.*)$ { + set $subdomain "$1."; + set $subdir "$1/"; + set $prefix "$1"; + + alias /usr/share/jitsi-meet/load-test/libs/$2; + } + + {{- 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."; From 6c1f384eac6f5fb065a98e9f191f872ed4f21862 Mon Sep 17 00:00:00 2001 From: bgrozev Date: Mon, 22 Jan 2024 14:27:07 -0600 Subject: [PATCH 51/62] Add flag for require-muc-config-flag. (#1717) --- jicofo/rootfs/defaults/jicofo.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jicofo/rootfs/defaults/jicofo.conf b/jicofo/rootfs/defaults/jicofo.conf index 3559cffc45..6e25c36f60 100644 --- a/jicofo/rootfs/defaults/jicofo.conf +++ b/jicofo/rootfs/defaults/jicofo.conf @@ -22,6 +22,7 @@ {{ $JVB_XMPP_SERVER := .Env.JVB_XMPP_SERVER | default "xmpp.jvb.meet.jitsi" -}} {{ $VISITORS_MAX_VISITORS_PER_NODE := .Env.VISITORS_MAX_VISITORS_PER_NODE | default "250" }} {{ $VISITORS_MUC_PREFIX := .Env.PROSODY_VISITORS_MUC_PREFIX | default "muc" -}} +{{ $VISITORS_REQUIRE_MUC_CONFIG := .Env.JICOFO_VISITORS_REQUIRE_MUC_CONFIG | default "0" | toBool }} {{ $VISITORS_XMPP_AUTH_DOMAIN := .Env.VISITORS_XMPP_AUTH_DOMAIN | default "auth.meet.jitsi" -}} {{ $VISITORS_XMPP_DOMAIN := .Env.VISITORS_XMPP_DOMAIN | default "meet.jitsi" -}} {{ $VISITORS_XMPP_SERVER := .Env.VISITORS_XMPP_SERVER | default "" -}} @@ -240,6 +241,7 @@ jicofo { {{ if $VISITORS_MAX_VISITORS_PER_NODE }} max-visitors-per-node = {{ $VISITORS_MAX_VISITORS_PER_NODE }} {{ end }} + require-muc-config-flag = {{ $VISITORS_REQUIRE_MUC_CONFIG }} } {{ end }} xmpp { From f512116e2d4c8a21be96ca808e8e824c4becb23a Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Mon, 22 Jan 2024 14:44:23 -0600 Subject: [PATCH 52/62] prosody: jibri and jigasi skip muc passwords (#1718) --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index e22648777f..d19de11771 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -4,6 +4,7 @@ {{ $PROSODY_AUTH_TYPE := .Env.PROSODY_AUTH_TYPE | default $AUTH_TYPE -}} {{ $ENABLE_GUEST_DOMAIN := and $ENABLE_AUTH (.Env.ENABLE_GUESTS | default "0" | toBool) -}} {{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "0" | toBool -}} +{{ $ENABLE_TRANSCRIPTIONS := .Env.ENABLE_TRANSCRIPTIONS | default "0" | toBool -}} {{ $JIBRI_XMPP_USER := .Env.JIBRI_XMPP_USER | default "jibri" -}} {{ $JIGASI_XMPP_USER := .Env.JIGASI_XMPP_USER | default "jigasi" -}} {{ $JVB_AUTH_USER := .Env.JVB_AUTH_USER | default "jvb" -}} @@ -385,7 +386,13 @@ Component "{{ $XMPP_MUC_DOMAIN }}" "muc" muc_max_occupants = "{{ .Env.MAX_PARTICIPANTS }}" {{ end }} muc_password_whitelist = { - "focus@{{ .Env.XMPP_AUTH_DOMAIN }}" + "focus@{{ .Env.XMPP_AUTH_DOMAIN }}"; +{{- if $ENABLE_RECORDING }} + "{{ $JIBRI_RECORDER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}"; +{{- end }} +{{- if $ENABLE_TRANSCRIPTIONS }} + "{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}"; +{{- end }} } Component "focus.{{ $XMPP_DOMAIN }}" "client_proxy" From cc34823c6336676c78a0e79c9d667477a6bdb21b Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Mon, 22 Jan 2024 14:46:40 -0600 Subject: [PATCH 53/62] prosody: tune internal muc settings * prosody: tune internal muc settings --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index d19de11771..9b37751015 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -312,8 +312,10 @@ Component "{{ $XMPP_INTERNAL_MUC_DOMAIN }}" "muc" {{ end -}} } restrict_room_creation = true + muc_filter_whitelist="{{ $XMPP_AUTH_DOMAIN }}" muc_room_locking = false muc_room_default_public_jids = true + muc_room_cache_size = 1000 Component "{{ $XMPP_MUC_DOMAIN }}" "muc" restrict_room_creation = true From 4eb55758fe0bf888392fd1cd3f030d680134f99b Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Mon, 22 Jan 2024 15:00:55 -0600 Subject: [PATCH 54/62] prosody: c2s encryption flag from environment * prosody: c2s encryption flag from environment --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 5 +++-- prosody/rootfs/etc/cont-init.d/10-config | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index 9b37751015..91fe458ef4 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -1,3 +1,4 @@ +{{ $C2S_REQUIRE_ENCRYPTION := .Env.PROSODY_C2S_REQUIRE_ENCRYPTION | default "1" | toBool -}} {{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "0" | toBool -}} {{ $ENABLE_VISITORS := .Env.ENABLE_VISITORS | default "0" | toBool -}} {{ $AUTH_TYPE := .Env.AUTH_TYPE | default "internal" -}} @@ -256,7 +257,7 @@ VirtualHost "{{ $XMPP_DOMAIN }}" av_moderation_component = "avmoderation.{{ $XMPP_DOMAIN }}" {{ end }} - c2s_require_encryption = false + c2s_require_encryption = {{ $C2S_REQUIRE_ENCRYPTION }} {{ if $ENABLE_VISITORS -}} visitors_ignore_list = { "{{ $XMPP_RECORDER_DOMAIN }}" } @@ -276,7 +277,7 @@ VirtualHost "{{ $XMPP_GUEST_DOMAIN }}" {{ end }} } - c2s_require_encryption = false + c2s_require_encryption = {{ $C2S_REQUIRE_ENCRYPTION }} {{ if $ENABLE_VISITORS }} allow_anonymous_s2s = true {{ end }} diff --git a/prosody/rootfs/etc/cont-init.d/10-config b/prosody/rootfs/etc/cont-init.d/10-config index 2f3b138080..e9ebc0e393 100644 --- a/prosody/rootfs/etc/cont-init.d/10-config +++ b/prosody/rootfs/etc/cont-init.d/10-config @@ -49,7 +49,7 @@ elif [[ "$PROSODY_MODE" == "brewery" ]]; then # ensure proper certs are generated export XMPP_AUTH_DOMAIN="$JVB_XMPP_AUTH_DOMAIN" # brewery mode requires C2S encryption - export C2S_REQUIRE_ENCRYPTION="true" + export PROSODY_C2S_REQUIRE_ENCRYPTION="true" mkdir -p /config/rules.d tpl /defaults/rules.d/jvb_muc_presence_filter.pfw > /config/rules.d/jvb_muc_presence_filter.pfw From a389db4b1d13b94072e5db4022671ff2ae422959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 29 Jan 2024 11:38:36 +0100 Subject: [PATCH 55/62] release: stable-9220 * 4eb5575 prosody: c2s encryption flag from environment * cc34823 prosody: tune internal muc settings * f512116 prosody: jibri and jigasi skip muc passwords (#1718) * 6c1f384 Add flag for require-muc-config-flag. (#1717) * 6e6dd96 web: nginx config for load-test client if present (#1715) * 11d7d75 fix: Do not load domain_mapper under breakout component (#1714) * 4ca5763 prosody: the new version of contrib-prosody-plugins (#1713) * d31e164 build: simplify detection of the target platform * 21f04ea base: update tpl * 9b686c6 prosody: Drops unused module. * 1365d7f base-java: include jdk package * 4584779 jicofo: fix enable sctp octo defaults (#1708) * 2a3f8fd web: fix config.js syntax * df88c7c Fix/web settings prop syntax (#1706) * d64ae1c web: remove 'startBitrate' that is no longer supported. * 1cba0b5 web: Fix the maxbitrates config setting. Also, remove the 'enforcePreferredCodec' setting which is no longer supported. * 1dbe5cd web: cleanup config * 3a888fd jicofo: add support for max-ssrcs-per-user config * 5093efb feat: Add testing flag for Av1 * 7f86006 prosody: remove muc_meeting_id from lobby * c21a598 prosody: visitors config whitespace fix (#1694) * 8845606 Move trusted_proxies from visitors to main prosody config file. (#1699) * e41e4f4 Require tls by default. (#1698) * 80e4ee6 Remove unnecessary modules and properties (#1697) * 2915176 prosody: skip recorder account unless in client mode * 46b98b5 prosody: brewery mode for jvb/jicofo discovery muc * 52eef2e feat: Add an option to set jibri-sip brewery jid. (#1689) * ab30f56 prosody: enable muc_meeting_id in lobby component * 5cc0ef0 jicofo: fix duplicate line * 2a67885 jicofo: trusted domain list * 78fb030 fix: Fix typo in var name. (#1690) * 1ad045e feat: Add an option to enable sctp for relays. (#1688) * aa898e4 jicofo: fix visitors auth domain (#1687) * ec8615a fix: Fix default JIBRI_PENDING_TIMEOUT. (#1686) * 483bbde web: trim deprecated options and defaults * 11cbfcc web: provide bosh URL as relative only if flagged (#1682) * 60100d6 jvb: expose public IP in autoscaler sidecar config (#1679) * b8a9080 task: fix shutdown script * 2e3c272 jvb: fix terminate script for autoscaler sidecar * 3519113 jvb: finish script for graceful shutdown (#1676) * 4fba8b5 task: support logging to file in JVB container (#1675) * 431cdcc web: allow desktop framerate to be automatically determined by the browser * 4c009ad jvb: fix version for autoscaler config * 4531615 prosody: add smacks to guest vhost * b4428bf prosody: use mod_smacks.lua from prosody since 0.12.4 * ee2f3c9 docker-compose.yml: expose jicofo and jvb env vars for defining max memory. * 940cd97 env.example: add jicofo and jvb env vars for defining max memory. * 71b3892 jicofo,jvb,jigasi: fix SENTRY_DSN cannot be defined * e6a0c04 jibri: add check for /dev/shm size * dbffba1 Revert "jicofo, jigasi, jvb: fix SENTRY_DSN not being read" * 073f85d Revert "logging: fix reference to old variable" * 8415c84 logging: fix reference to old variable * fa2b4db jicofo, jigasi, jvb: fix SENTRY_DSN not being read * 42a2153 misc: working on unstable --- CHANGELOG.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 8 +++---- jibri.yml | 2 +- jigasi.yml | 2 +- 4 files changed, 65 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a08a4b7d4..0cf75560af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,62 @@ +## stable-9220 + +Based on stable release 9220. + +* 4eb5575 prosody: c2s encryption flag from environment +* cc34823 prosody: tune internal muc settings +* f512116 prosody: jibri and jigasi skip muc passwords (#1718) +* 6c1f384 Add flag for require-muc-config-flag. (#1717) +* 6e6dd96 web: nginx config for load-test client if present (#1715) +* 11d7d75 fix: Do not load domain_mapper under breakout component (#1714) +* 4ca5763 prosody: the new version of contrib-prosody-plugins (#1713) +* d31e164 build: simplify detection of the target platform +* 21f04ea base: update tpl +* 9b686c6 prosody: Drops unused module. +* 1365d7f base-java: include jdk package +* 4584779 jicofo: fix enable sctp octo defaults (#1708) +* 2a3f8fd web: fix config.js syntax +* df88c7c Fix/web settings prop syntax (#1706) +* d64ae1c web: remove 'startBitrate' that is no longer supported. +* 1cba0b5 web: Fix the maxbitrates config setting. Also, remove the 'enforcePreferredCodec' setting which is no longer supported. +* 1dbe5cd web: cleanup config +* 3a888fd jicofo: add support for max-ssrcs-per-user config +* 5093efb feat: Add testing flag for Av1 +* 7f86006 prosody: remove muc_meeting_id from lobby +* c21a598 prosody: visitors config whitespace fix (#1694) +* 8845606 Move trusted_proxies from visitors to main prosody config file. (#1699) +* e41e4f4 Require tls by default. (#1698) +* 80e4ee6 Remove unnecessary modules and properties (#1697) +* 2915176 prosody: skip recorder account unless in client mode +* 46b98b5 prosody: brewery mode for jvb/jicofo discovery muc +* 52eef2e feat: Add an option to set jibri-sip brewery jid. (#1689) +* ab30f56 prosody: enable muc_meeting_id in lobby component +* 5cc0ef0 jicofo: fix duplicate line +* 2a67885 jicofo: trusted domain list +* 78fb030 fix: Fix typo in var name. (#1690) +* 1ad045e feat: Add an option to enable sctp for relays. (#1688) +* aa898e4 jicofo: fix visitors auth domain (#1687) +* ec8615a fix: Fix default JIBRI_PENDING_TIMEOUT. (#1686) +* 483bbde web: trim deprecated options and defaults +* 11cbfcc web: provide bosh URL as relative only if flagged (#1682) +* 60100d6 jvb: expose public IP in autoscaler sidecar config (#1679) +* b8a9080 task: fix shutdown script +* 2e3c272 jvb: fix terminate script for autoscaler sidecar +* 3519113 jvb: finish script for graceful shutdown (#1676) +* 4fba8b5 task: support logging to file in JVB container (#1675) +* 431cdcc web: allow desktop framerate to be automatically determined by the browser +* 4c009ad jvb: fix version for autoscaler config +* 4531615 prosody: add smacks to guest vhost +* b4428bf prosody: use mod_smacks.lua from prosody since 0.12.4 +* ee2f3c9 docker-compose.yml: expose jicofo and jvb env vars for defining max memory. +* 940cd97 env.example: add jicofo and jvb env vars for defining max memory. +* 71b3892 jicofo,jvb,jigasi: fix SENTRY_DSN cannot be defined +* e6a0c04 jibri: add check for /dev/shm size +* dbffba1 Revert "jicofo, jigasi, jvb: fix SENTRY_DSN not being read" +* 073f85d Revert "logging: fix reference to old variable" +* 8415c84 logging: fix reference to old variable +* fa2b4db jicofo, jigasi, jvb: fix SENTRY_DSN not being read +* 42a2153 misc: working on unstable + ## stable-9111 Based on stable release 9111. diff --git a/docker-compose.yml b/docker-compose.yml index 9cefe8bc1b..4db9f73208 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.5' services: # Frontend web: - image: jitsi/web:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-9220} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -169,7 +169,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9220} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -300,7 +300,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9220} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -382,7 +382,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9220} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' diff --git a/jibri.yml b/jibri.yml index a0b4937dbe..7aa5183420 100644 --- a/jibri.yml +++ b/jibri.yml @@ -2,7 +2,7 @@ version: '3.5' services: jibri: - image: jitsi/jibri:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-9220} restart: ${RESTART_POLICY:-unless-stopped} volumes: - ${CONFIG}/jibri:/config:Z diff --git a/jigasi.yml b/jigasi.yml index 210d5916cc..4cf5d8fbc3 100644 --- a/jigasi.yml +++ b/jigasi.yml @@ -3,7 +3,7 @@ version: '3.5' services: # SIP gateway (audio) jigasi: - image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable-9220} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}:${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}/udp' From 7381471795297894b359f0a9085f1bd030323b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 29 Jan 2024 11:38:36 +0100 Subject: [PATCH 56/62] misc: working on unstable --- docker-compose.yml | 8 ++++---- jibri.yml | 2 +- jigasi.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4db9f73208..9cefe8bc1b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.5' services: # Frontend web: - image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-9220} + image: jitsi/web:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -169,7 +169,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9220} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -300,7 +300,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9220} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -382,7 +382,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9220} + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' diff --git a/jibri.yml b/jibri.yml index 7aa5183420..a0b4937dbe 100644 --- a/jibri.yml +++ b/jibri.yml @@ -2,7 +2,7 @@ version: '3.5' services: jibri: - image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-9220} + image: jitsi/jibri:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} volumes: - ${CONFIG}/jibri:/config:Z diff --git a/jigasi.yml b/jigasi.yml index 4cf5d8fbc3..210d5916cc 100644 --- a/jigasi.yml +++ b/jigasi.yml @@ -3,7 +3,7 @@ version: '3.5' services: # SIP gateway (audio) jigasi: - image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable-9220} + image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}:${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}/udp' From bf237da1a83d26bd1d0f58a072e34fb524e3bc02 Mon Sep 17 00:00:00 2001 From: waja Date: Tue, 30 Jan 2024 07:41:13 +0100 Subject: [PATCH 57/62] etherpad: update etherpad image to etherpad/etherpad:1.9.6 (#1725) Etherpad images starting with tag 1.9.0 are supporting ARCH amd64 and arm64 --- etherpad.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etherpad.yml b/etherpad.yml index aa0e806459..e6bd397022 100644 --- a/etherpad.yml +++ b/etherpad.yml @@ -3,7 +3,7 @@ version: '3.5' services: # Etherpad: real-time collaborative document editing etherpad: - image: etherpad/etherpad:1.8.6 + image: etherpad/etherpad:1.9.6 restart: ${RESTART_POLICY:-unless-stopped} environment: - TITLE=${ETHERPAD_TITLE} From 102281ecc780cb1ccc49dfa76649c4091c2d4915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 30 Jan 2024 08:55:41 +0100 Subject: [PATCH 58/62] base: update tpl toBool now supports nil values too. --- base/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/Dockerfile b/base/Dockerfile index 68d6b02120..847bfe7d2f 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -14,7 +14,7 @@ RUN \ esac && \ apt-dpkg-wrap apt-get update && \ apt-dpkg-wrap apt-get install -y apt-transport-https apt-utils ca-certificates gnupg wget && \ - wget -qO /usr/bin/tpl https://github.com/jitsi/tpl/releases/download/v1.1.0/tpl-linux-${TPL_ARCH} && \ + wget -qO /usr/bin/tpl https://github.com/jitsi/tpl/releases/download/v1.1.1/tpl-linux-${TPL_ARCH} && \ wget -qO - https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-${S6_ARCH}.tar.gz | tar xfz - -C / && \ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmour > /etc/apt/trusted.gpg.d/jitsi.gpg && \ echo "deb https://download.jitsi.org $JITSI_RELEASE/" > /etc/apt/sources.list.d/jitsi.list && \ From b0092bcf6537cc917a500a96e2328f75ad6489f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 30 Jan 2024 08:56:05 +0100 Subject: [PATCH 59/62] jicofo,jigasi,jvb: fix accidentally enabling Sentry Fixes: https://github.com/jitsi/docker-jitsi-meet/issues/1724 --- jicofo/rootfs/defaults/logging.properties | 3 +-- jigasi/rootfs/defaults/logging.properties | 2 +- jvb/rootfs/defaults/logging.properties | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/jicofo/rootfs/defaults/logging.properties b/jicofo/rootfs/defaults/logging.properties index 6fad54a0a4..e66223a95d 100644 --- a/jicofo/rootfs/defaults/logging.properties +++ b/jicofo/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ if .Env.SENTRY_DSN }} +{{ if .Env.SENTRY_DSN | toBool }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers= java.util.logging.ConsoleHandler @@ -13,4 +13,3 @@ io.sentry.jul.SentryHandler.level=WARNING # Enable debug packets logging #org.jitsi.impl.protocol.xmpp.level=FINE - diff --git a/jigasi/rootfs/defaults/logging.properties b/jigasi/rootfs/defaults/logging.properties index d7d0da2bff..e81c75585b 100644 --- a/jigasi/rootfs/defaults/logging.properties +++ b/jigasi/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ if .Env.SENTRY_DSN }} +{{ if .Env.SENTRY_DSN | toBool }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers=java.util.logging.ConsoleHandler diff --git a/jvb/rootfs/defaults/logging.properties b/jvb/rootfs/defaults/logging.properties index e99f245c56..ac96dc1219 100644 --- a/jvb/rootfs/defaults/logging.properties +++ b/jvb/rootfs/defaults/logging.properties @@ -1,4 +1,4 @@ -{{ if .Env.SENTRY_DSN }} +{{ if .Env.SENTRY_DSN | toBool }} handlers=java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler {{ else }} handlers= java.util.logging.ConsoleHandler @@ -10,4 +10,3 @@ org.jitsi.utils.logging2.JitsiLogFormatter.programname=JVB .level=INFO io.sentry.jul.SentryHandler.level=WARNING - From 310b80dedd2d3f71551c91edc5ac2821e3a4b68f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 30 Jan 2024 09:22:25 +0100 Subject: [PATCH 60/62] jvb: add env var to control require-valid-address --- docker-compose.yml | 1 + jvb/rootfs/defaults/jvb.conf | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 9cefe8bc1b..e06286aa7a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -417,6 +417,7 @@ services: - JVB_OCTO_BIND_ADDRESS - JVB_OCTO_REGION - JVB_OCTO_RELAY_ID + - JVB_REQUIRE_VALID_ADDRESS - JVB_WS_DOMAIN - JVB_WS_SERVER_ID - JVB_XMPP_AUTH_DOMAIN diff --git a/jvb/rootfs/defaults/jvb.conf b/jvb/rootfs/defaults/jvb.conf index 34663ad5c6..55bcd71ae0 100644 --- a/jvb/rootfs/defaults/jvb.conf +++ b/jvb/rootfs/defaults/jvb.conf @@ -10,6 +10,7 @@ {{ $JVB_ADVERTISE_PRIVATE_CANDIDATES := .Env.JVB_ADVERTISE_PRIVATE_CANDIDATES | default "true" | toBool -}} {{ $JVB_ADVERTISE_IPS := .Env.JVB_ADVERTISE_IPS | default "" -}} {{ $JVB_IPS := splitList "," $JVB_ADVERTISE_IPS -}} +{{ $JVB_REQUIRE_VALID_ADDRESS := .Env.JVB_REQUIRE_VALID_ADDRESS | default "0" | toBool -}} {{ $JVB_XMPP_AUTH_DOMAIN := .Env.JVB_XMPP_AUTH_DOMAIN | default "auth.jvb.meet.jitsi" -}} {{ $JVB_XMPP_INTERNAL_MUC_DOMAIN := .Env.JVB_XMPP_INTERNAL_MUC_DOMAIN | default "muc.jvb.meet.jitsi" -}} {{ $JVB_XMPP_PORT := .Env.JVB_XMPP_PORT | default "6222" -}} @@ -97,6 +98,9 @@ videobridge { send-server-version = false } } + health { + require-valid-address = {{ $JVB_REQUIRE_VALID_ADDRESS }} + } {{ if $ENABLE_OCTO -}} relay { From 1e972779737bde6488178ac717dc5518dd4078bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 30 Jan 2024 09:28:02 +0100 Subject: [PATCH 61/62] jibri: update Chrome to version 121 --- jibri/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jibri/Dockerfile b/jibri/Dockerfile index ac9fa220ad..2e90d2271c 100644 --- a/jibri/Dockerfile +++ b/jibri/Dockerfile @@ -11,7 +11,7 @@ LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/" ARG USE_CHROMIUM=0 #ARG CHROME_RELEASE=latest # https://googlechromelabs.github.io/chrome-for-testing/ -ARG CHROME_RELEASE=116.0.5845.96 +ARG CHROME_RELEASE=121.0.6167.85 COPY rootfs/ / From 73ff3028e57190793d5921817b8f15e78bd89105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 30 Jan 2024 09:46:08 +0100 Subject: [PATCH 62/62] release: stable-9220-1 * 1e97277 jibri: update Chrome to version 121 * 310b80d jvb: add env var to control require-valid-address * b0092bc jicofo,jigasi,jvb: fix accidentally enabling Sentry * 102281e base: update tpl * bf237da etherpad: update etherpad image to etherpad/etherpad:1.9.6 (#1725) * 7381471 misc: working on unstable --- CHANGELOG.md | 11 +++++++++++ docker-compose.yml | 8 ++++---- jibri.yml | 2 +- jigasi.yml | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cf75560af..e8a8a6f99d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## stable-9220-1 + +Based on stable release 9220-1. + +* 1e97277 jibri: update Chrome to version 121 +* 310b80d jvb: add env var to control require-valid-address +* b0092bc jicofo,jigasi,jvb: fix accidentally enabling Sentry +* 102281e base: update tpl +* bf237da etherpad: update etherpad image to etherpad/etherpad:1.9.6 (#1725) +* 7381471 misc: working on unstable + ## stable-9220 Based on stable release 9220. diff --git a/docker-compose.yml b/docker-compose.yml index e06286aa7a..fda29f252c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.5' services: # Frontend web: - image: jitsi/web:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-9220-1} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -169,7 +169,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9220-1} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -300,7 +300,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9220-1} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -382,7 +382,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9220-1} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' diff --git a/jibri.yml b/jibri.yml index a0b4937dbe..ef5bdbb18a 100644 --- a/jibri.yml +++ b/jibri.yml @@ -2,7 +2,7 @@ version: '3.5' services: jibri: - image: jitsi/jibri:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-9220-1} restart: ${RESTART_POLICY:-unless-stopped} volumes: - ${CONFIG}/jibri:/config:Z diff --git a/jigasi.yml b/jigasi.yml index 210d5916cc..fb9cecfe2f 100644 --- a/jigasi.yml +++ b/jigasi.yml @@ -3,7 +3,7 @@ version: '3.5' services: # SIP gateway (audio) jigasi: - image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable-9220-1} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}:${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}/udp'