From 8e282568b80362aaa1ac5c87e9c8eadf5be0babc 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 01/32] 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 fda29f252c..e06286aa7a 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-1} + 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-1} + 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-1} + 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-1} + 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 ef5bdbb18a..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-1} + 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 fb9cecfe2f..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-1} + 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 14efd9cc6d61cff6981a98e1c158d566a3b311cc Mon Sep 17 00:00:00 2001 From: bgrozev Date: Tue, 30 Jan 2024 13:07:34 -0600 Subject: [PATCH 02/32] prosody: disable "offline" and "register" modules. (#1727) --- prosody/rootfs/defaults/prosody.cfg.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/prosody/rootfs/defaults/prosody.cfg.lua b/prosody/rootfs/defaults/prosody.cfg.lua index 8864b8bdae..1f1b5d2643 100644 --- a/prosody/rootfs/defaults/prosody.cfg.lua +++ b/prosody/rootfs/defaults/prosody.cfg.lua @@ -131,7 +131,8 @@ firewall_scripts = { -- These modules are auto-loaded, but should you want -- to disable them then uncomment them here: modules_disabled = { - -- "offline"; -- Store offline messages + "offline"; -- Store offline messages + "register"; -- "c2s"; -- Handle client connections {{ if not $ENABLE_S2S -}} From bb694076024d001603adde6cc78f3575fb542b18 Mon Sep 17 00:00:00 2001 From: bgrozev Date: Tue, 30 Jan 2024 14:33:10 -0600 Subject: [PATCH 03/32] Remove "ping" in ViarualHosts (#1728) It's already present in the global modules_enabled and thus loaded for each VirtualHost. --- prosody/rootfs/defaults/conf.d/brewery.cfg.lua | 4 ---- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 6 ------ prosody/rootfs/defaults/conf.d/visitors.cfg.lua | 2 -- 3 files changed, 12 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/brewery.cfg.lua b/prosody/rootfs/defaults/conf.d/brewery.cfg.lua index d225cb8ec0..a139f98d6f 100644 --- a/prosody/rootfs/defaults/conf.d/brewery.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/brewery.cfg.lua @@ -13,9 +13,6 @@ admins = { 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"; @@ -24,7 +21,6 @@ VirtualHost "{{ $JVB_XMPP_AUTH_DOMAIN }}" Component "{{ $JVB_XMPP_INTERNAL_MUC_DOMAIN }}" "muc" modules_enabled = { - "ping", "muc_hide_all"; "muc_filter_access"; } diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index 91fe458ef4..1971eaa223 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -130,7 +130,6 @@ smacks_max_old_sessions = 1; {{ if $ENABLE_JAAS_COMPONENTS }} VirtualHost "jigasi.meet.jitsi" modules_enabled = { - "ping"; "bosh"; "muc_password_check"; } @@ -196,7 +195,6 @@ VirtualHost "{{ $XMPP_DOMAIN }}" "websocket"; "smacks"; -- XEP-0198: Stream Management {{ end }} - "ping"; "speakerstats"; "conference_duration"; "room_metadata"; @@ -271,7 +269,6 @@ VirtualHost "{{ $XMPP_DOMAIN }}" VirtualHost "{{ $XMPP_GUEST_DOMAIN }}" authentication = "{{ $GUEST_AUTH_TYPE }}" modules_enabled = { - "ping"; {{ if $ENABLE_XMPP_WEBSOCKET }} "smacks"; -- XEP-0198: Stream Management {{ end }} @@ -291,14 +288,12 @@ VirtualHost "{{ $XMPP_AUTH_DOMAIN }}" } modules_enabled = { "limits_exception"; - "ping"; } authentication = "internal_hashed" {{ if $ENABLE_RECORDING }} VirtualHost "{{ $XMPP_RECORDER_DOMAIN }}" modules_enabled = { - "ping"; "smacks"; } authentication = "internal_hashed" @@ -307,7 +302,6 @@ VirtualHost "{{ $XMPP_RECORDER_DOMAIN }}" Component "{{ $XMPP_INTERNAL_MUC_DOMAIN }}" "muc" storage = "memory" modules_enabled = { - "ping"; {{ if .Env.XMPP_INTERNAL_MUC_MODULES -}} "{{ join "\";\n\"" (splitList "," .Env.XMPP_INTERNAL_MUC_MODULES) }}"; {{ end -}} diff --git a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua index 51520ebe6a..dd64041a5c 100644 --- a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua @@ -112,7 +112,6 @@ VirtualHost 'v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}' } modules_enabled = { 'bosh'; - 'ping'; "external_services"; {{ if $ENABLE_XMPP_WEBSOCKET -}} "websocket"; @@ -134,7 +133,6 @@ VirtualHost 'v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}' VirtualHost '{{ $XMPP_AUTH_DOMAIN}}' modules_enabled = { 'limits_exception'; - 'ping'; } authentication = 'internal_hashed' From a1d1f2ce5a0e13a1b67d4fec1057fdd779df2f4f Mon Sep 17 00:00:00 2001 From: Jaya Allamsetty <54324652+jallamsetty1@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:26:36 -0500 Subject: [PATCH 04/32] web: Add env vars for setting 1080p and 4k bitrates. * web: Add env vars for setting 1080p and 4k bitrates. * squash: Fix c&p errors --- docker-compose.yml | 8 ++ web/rootfs/defaults/settings-config.js | 132 ++++++++++++++++++------- 2 files changed, 104 insertions(+), 36 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e06286aa7a..104dcce722 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -141,18 +141,26 @@ services: - VIDEOQUALITY_BITRATE_H264_LOW - VIDEOQUALITY_BITRATE_H264_STANDARD - VIDEOQUALITY_BITRATE_H264_HIGH + - VIDEOQUALITY_BITRATE_H264_FULL + - VIDEOQUALITY_BITRATE_H264_ULTRA - VIDEOQUALITY_BITRATE_H264_SS_HIGH - VIDEOQUALITY_BITRATE_VP8_LOW - VIDEOQUALITY_BITRATE_VP8_STANDARD - VIDEOQUALITY_BITRATE_VP8_HIGH + - VIDEOQUALITY_BITRATE_VP8_FULL + - VIDEOQUALITY_BITRATE_VP8_ULTRA - VIDEOQUALITY_BITRATE_VP8_SS_HIGH - VIDEOQUALITY_BITRATE_VP9_LOW - VIDEOQUALITY_BITRATE_VP9_STANDARD - VIDEOQUALITY_BITRATE_VP9_HIGH + - VIDEOQUALITY_BITRATE_VP9_FULL + - VIDEOQUALITY_BITRATE_VP9_ULTRA - VIDEOQUALITY_BITRATE_VP9_SS_HIGH - VIDEOQUALITY_BITRATE_AV1_LOW - VIDEOQUALITY_BITRATE_AV1_STANDARD - VIDEOQUALITY_BITRATE_AV1_HIGH + - VIDEOQUALITY_BITRATE_AV1_FULL + - VIDEOQUALITY_BITRATE_AV1_ULTRA - VIDEOQUALITY_BITRATE_AV1_SS_HIGH - VIDEOQUALITY_PREFERRED_CODEC - XMPP_AUTH_DOMAIN diff --git a/web/rootfs/defaults/settings-config.js b/web/rootfs/defaults/settings-config.js index eda44c0054..4a5fbb133b 100644 --- a/web/rootfs/defaults/settings-config.js +++ b/web/rootfs/defaults/settings-config.js @@ -408,48 +408,108 @@ config.videoQuality = {}; config.videoQuality.preferredCodec = '{{ .Env.VIDEOQUALITY_PREFERRED_CODEC }}'; {{ end -}} -{{ 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 }} - } -} +config.videoQuality.av1 = {}; + +{{ if .Env.VIDEOQUALITY_BITRATE_AV1_LOW }} +config.videoQuality.av1.low = {{ .Env.VIDEOQUALITY_BITRATE_AV1_LOW }}; {{ end -}} -{{ 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 }} - } -} +{{ if .Env.VIDEOQUALITY_BITRATE_AV1_STANDARD }} +config.videoQuality.av1.standard = {{ .Env.VIDEOQUALITY_BITRATE_AV1_STANDARD }}; {{ end -}} -{{ 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 }} - } -} +{{ if .Env.VIDEOQUALITY_BITRATE_AV1_HIGH }} +config.videoQuality.av1.high = {{ .Env.VIDEOQUALITY_BITRATE_AV1_HIGH }}; {{ end -}} -{{ 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 }} - } -} +{{ if .Env.VIDEOQUALITY_BITRATE_AV1_FULL }} +config.videoQuality.av1.fullHd = {{ .Env.VIDEOQUALITY_BITRATE_AV1_FULL }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_AV1_ULTRA }} +config.videoQuality.av1.ultraHd = {{ .Env.VIDEOQUALITY_BITRATE_AV1_ULTRA }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_AV1_SS_HIGH }} +config.videoQuality.av1.ssHigh = {{ .Env.VIDEOQUALITY_BITRATE_AV1_SS_HIGH }}; +{{ end -}} + +config.videoQuality.h264 = {}; + +{{ if .Env.VIDEOQUALITY_BITRATE_H264_LOW }} +config.videoQuality.h264.low = {{ .Env.VIDEOQUALITY_BITRATE_H264_LOW }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_H264_STANDARD }} +config.videoQuality.h264.standard = {{ .Env.VIDEOQUALITY_BITRATE_H264_STANDARD }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_H264_HIGH }} +config.videoQuality.h264.high = {{ .Env.VIDEOQUALITY_BITRATE_H264_HIGH }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_H264_FULL }} +config.videoQuality.h264.fullHd = {{ .Env.VIDEOQUALITY_BITRATE_H264_FULL }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_H264_ULTRA }} +config.videoQuality.h264.ultraHd = {{ .Env.VIDEOQUALITY_BITRATE_H264_ULTRA }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_H264_SS_HIGH }} +config.videoQuality.h264.ssHigh = {{ .Env.VIDEOQUALITY_BITRATE_H264_SS_HIGH }}; +{{ end -}} + +config.videoQuality.vp8 = {}; + +{{ if .Env.VIDEOQUALITY_BITRATE_VP8_LOW }} +config.videoQuality.vp8.low = {{ .Env.VIDEOQUALITY_BITRATE_VP8_LOW }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD }} +config.videoQuality.vp8.standard = {{ .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP8_HIGH }} +config.videoQuality.vp8.high = {{ .Env.VIDEOQUALITY_BITRATE_VP8_HIGH }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP8_FULL }} +config.videoQuality.vp8.fullHd = {{ .Env.VIDEOQUALITY_BITRATE_VP8_FULL }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP8_ULTRA }} +config.videoQuality.vp8.ultraHd = {{ .Env.VIDEOQUALITY_BITRATE_VP8_ULTRA }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP8_SS_HIGH }} +config.videoQuality.vp8.ssHigh = {{ .Env.VIDEOQUALITY_BITRATE_VP8_SS_HIGH }}; +{{ end -}} + +config.videoQuality.vp9 = {}; + +{{ if .Env.VIDEOQUALITY_BITRATE_VP9_LOW }} +config.videoQuality.vp9.low = {{ .Env.VIDEOQUALITY_BITRATE_VP9_LOW }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD }} +config.videoQuality.vp9.standard = {{ .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP9_HIGH }} +config.videoQuality.vp9.high = {{ .Env.VIDEOQUALITY_BITRATE_VP9_HIGH }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP9_FULL }} +config.videoQuality.vp9.fullHd = {{ .Env.VIDEOQUALITY_BITRATE_VP9_FULL }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP9_ULTRA }} +config.videoQuality.vp9.ultraHd = {{ .Env.VIDEOQUALITY_BITRATE_VP9_ULTRA }}; +{{ end -}} + +{{ if .Env.VIDEOQUALITY_BITRATE_VP9_SS_HIGH }} +config.videoQuality.vp9.ssHigh = {{ .Env.VIDEOQUALITY_BITRATE_VP9_SS_HIGH }}; {{ end -}} // Reactions From 5c5742b838410012f62ae578486711c2c6c3d367 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Mon, 5 Feb 2024 13:40:39 -0600 Subject: [PATCH 05/32] prosody: var for speakerstats modules * prosody: var for speakerstats modules --- docker-compose.yml | 1 + prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 104dcce722..6a1fc17aee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -301,6 +301,7 @@ services: - XMPP_RECORDER_DOMAIN - XMPP_PORT - XMPP_SERVER_S2S_PORT + - XMPP_SPEAKERSTATS_MODULES networks: meet.jitsi: aliases: diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index 1971eaa223..479b0f9688 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -397,6 +397,11 @@ Component "focus.{{ $XMPP_DOMAIN }}" "client_proxy" Component "speakerstats.{{ $XMPP_DOMAIN }}" "speakerstats_component" muc_component = "{{ $XMPP_MUC_DOMAIN }}" + {{- if .Env.XMPP_SPEAKERSTATS_MODULES }} + modules_enabled = { + "{{ join "\";\n \"" (splitList "," .Env.XMPP_SPEAKERSTATS_MODULES) }}"; + } + {{- end }} Component "conferenceduration.{{ $XMPP_DOMAIN }}" "conference_duration_component" muc_component = "{{ $XMPP_MUC_DOMAIN }}" From a198d56e061968e5afad74ef3c53819ef4166068 Mon Sep 17 00:00:00 2001 From: BifbofII Date: Fri, 9 Feb 2024 11:45:15 +0200 Subject: [PATCH 06/32] compose: add jvb dependency to web container (#1739) since web runs dig jvb on startup, if jvb isn't up yet, this can fail or point to a wrong ip, leading the colibri websocket connection to fail --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 6a1fc17aee..c4fce69e95 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -174,6 +174,8 @@ services: - WHITEBOARD_COLLAB_SERVER_PUBLIC_URL networks: meet.jitsi: + depends_on: + - jvb # XMPP server prosody: From b47db9230100ace2a79d1793da54169fab99c497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Thu, 15 Feb 2024 11:53:32 +0100 Subject: [PATCH 07/32] release: stable-9258 * a198d56 compose: add jvb dependency to web container (#1739) * 5c5742b prosody: var for speakerstats modules * a1d1f2c web: Add env vars for setting 1080p and 4k bitrates. * bb69407 Remove "ping" in ViarualHosts (#1728) * 14efd9c prosody: disable "offline" and "register" modules. (#1727) * 8e28256 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 e8a8a6f99d..a2174a1cda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## stable-9258 + +Based on stable release 9258. + +* a198d56 compose: add jvb dependency to web container (#1739) +* 5c5742b prosody: var for speakerstats modules +* a1d1f2c web: Add env vars for setting 1080p and 4k bitrates. +* bb69407 Remove "ping" in ViarualHosts (#1728) +* 14efd9c prosody: disable "offline" and "register" modules. (#1727) +* 8e28256 misc: working on unstable + ## stable-9220-1 Based on stable release 9220-1. diff --git a/docker-compose.yml b/docker-compose.yml index c4fce69e95..23e08b301b 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-9258} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -179,7 +179,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9258} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -311,7 +311,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9258} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -393,7 +393,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9258} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' diff --git a/jibri.yml b/jibri.yml index a0b4937dbe..c29cd50ada 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-9258} restart: ${RESTART_POLICY:-unless-stopped} volumes: - ${CONFIG}/jibri:/config:Z diff --git a/jigasi.yml b/jigasi.yml index 210d5916cc..9c1c72071c 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-9258} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}:${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}/udp' From eccf68e7591ee53a4bbc6bd71cc120094c683e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Thu, 15 Feb 2024 11:53:32 +0100 Subject: [PATCH 08/32] 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 23e08b301b..c4fce69e95 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-9258} + image: jitsi/web:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -179,7 +179,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9258} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -311,7 +311,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9258} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -393,7 +393,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9258} + 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 c29cd50ada..a0b4937dbe 100644 --- a/jibri.yml +++ b/jibri.yml @@ -2,7 +2,7 @@ version: '3.5' services: jibri: - image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-9258} + 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 9c1c72071c..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-9258} + 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 1bbb4ab0b7ba9adcfde0155ba759bf76f7e90284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BC=D1=8F=D0=BD=20=D0=9C=D0=B8=D0=BD=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Thu, 15 Feb 2024 16:37:04 -0600 Subject: [PATCH 09/32] fix(prosody): Updates a rate whitelist config that changed in jitsi-meet. (#1741) * fix(prosody): Updates a rate whitelist config that changed in jitsi-meet. * squash: Update prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua Co-authored-by: Aaron van Meerten * squash: Update prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua Co-authored-by: Aaron van Meerten * squash: Update jitsi-meet.cfg.lua --------- Co-authored-by: Aaron van Meerten --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 5 ++--- prosody/rootfs/defaults/conf.d/visitors.cfg.lua | 4 ---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua index 479b0f9688..84d9c0bb39 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -363,9 +363,8 @@ Component "{{ $XMPP_MUC_DOMAIN }}" "muc" {{ end }} }; - rate_limit_whitelist_jids = { - "{{ $JIBRI_RECORDER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}", - "{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}" + rate_limit_whitelist_hosts = { + "{{ $XMPP_RECORDER_DOMAIN }}"; } {{ end -}} diff --git a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua index dd64041a5c..843b74cf97 100644 --- a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua @@ -186,10 +186,6 @@ Component '{{ $VISITORS_MUC_PREFIX }}.v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DO {{ end -}} }; - rate_limit_whitelist_jids = { - "{{ $JIBRI_RECORDER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}", - "{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}" - } {{ end -}} -- The size of the cache that saves state for IP addresses From 8f84f2f916c6317946891e25a9f7747fc9ee09a2 Mon Sep 17 00:00:00 2001 From: Kurt Garloff Date: Sun, 18 Feb 2024 14:32:05 +0100 Subject: [PATCH 10/32] jibri: use storage.googleapis.com location for chromedriver This is the place listed on https://googlechromelabs.github.io/chrome-for-testing/ which would seem to be the least likely to silently break. Currently, the edgedl.me.gvt1.com location is broken. Signed-off-by: Kurt Garloff --- jibri/rootfs/usr/bin/install-chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jibri/rootfs/usr/bin/install-chrome.sh b/jibri/rootfs/usr/bin/install-chrome.sh index b8fe139b56..9b89e1a4f0 100755 --- a/jibri/rootfs/usr/bin/install-chrome.sh +++ b/jibri/rootfs/usr/bin/install-chrome.sh @@ -33,7 +33,7 @@ else fi CHROMEDRIVER_ZIP="/tmp/chromedriver_linux64.zip" - curl -4Lso ${CHROMEDRIVER_ZIP} "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROMEDRIVER_RELEASE}/linux64/chromedriver-linux64.zip" + curl -4Lso ${CHROMEDRIVER_ZIP} "https://storage.googleapis.com/chrome-for-testing-public/${CHROMEDRIVER_RELEASE}/linux64/chromedriver-linux64.zip" unzip ${CHROMEDRIVER_ZIP} -d /tmp/ mv /tmp/chromedriver-linux64/chromedriver /usr/bin/ chmod +x /usr/bin/chromedriver From d6dc1e3984ff170104e9acb7b95c283a88267f78 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 20 Feb 2024 08:39:09 -0600 Subject: [PATCH 11/32] base-java: install nodejs 20 from nodesource * base-java: install nodejs 20 from nodesource * jibri: bump chrome version * Revert chrome version --- base-java/Dockerfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/base-java/Dockerfile b/base-java/Dockerfile index c28dc6043b..8fd21f3fbe 100644 --- a/base-java/Dockerfile +++ b/base-java/Dockerfile @@ -3,6 +3,11 @@ ARG BASE_TAG=latest FROM ${JITSI_REPO}/base:${BASE_TAG} RUN mkdir -p /usr/share/man/man1 && \ + mkdir -p /etc/apt/keyrings/ && \ apt-dpkg-wrap apt-get update && \ - apt-dpkg-wrap apt-get install -y openjdk-11-jre-headless openjdk-11-jdk-headless && \ + apt-dpkg-wrap apt-get install -y unzip ca-certificates curl gnupg && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ + apt-dpkg-wrap apt-get update && \ + apt-dpkg-wrap apt-get install -y nodejs openjdk-11-jre-headless openjdk-11-jdk-headless && \ apt-cleanup From 33350c3a1564748e02d5b3977e3a3abf67856f93 Mon Sep 17 00:00:00 2001 From: Sebastian Denz Date: Wed, 21 Feb 2024 13:45:49 +0100 Subject: [PATCH 12/32] prosody: fix env var default value --- prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua | 4 ++-- prosody/rootfs/defaults/conf.d/visitors.cfg.lua | 2 +- 2 files changed, 3 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 84d9c0bb39..bfe5b38bf6 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -378,11 +378,11 @@ Component "{{ $XMPP_MUC_DOMAIN }}" "muc" {{ join "\n " (splitList "," .Env.XMPP_MUC_CONFIGURATION) }} {{ end -}} {{ if .Env.MAX_PARTICIPANTS }} - muc_access_whitelist = { "focus@{{ .Env.XMPP_AUTH_DOMAIN }}" } + muc_access_whitelist = { "focus@{{ $XMPP_AUTH_DOMAIN }}" } muc_max_occupants = "{{ .Env.MAX_PARTICIPANTS }}" {{ end }} muc_password_whitelist = { - "focus@{{ .Env.XMPP_AUTH_DOMAIN }}"; + "focus@{{ $XMPP_AUTH_DOMAIN }}"; {{- if $ENABLE_RECORDING }} "{{ $JIBRI_RECORDER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}"; {{- end }} diff --git a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua index 843b74cf97..9534183fb5 100644 --- a/prosody/rootfs/defaults/conf.d/visitors.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/visitors.cfg.lua @@ -130,7 +130,7 @@ VirtualHost 'v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DOMAIN }}' {{ join "\n " (splitList "," .Env.XMPP_CONFIGURATION) }} {{- end }} -VirtualHost '{{ $XMPP_AUTH_DOMAIN}}' +VirtualHost '{{ $XMPP_AUTH_DOMAIN }}' modules_enabled = { 'limits_exception'; } From 28f3cf8b64ab5fb97b5f0b7ed97ccc50178ea4e4 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Wed, 21 Feb 2024 11:59:56 -0600 Subject: [PATCH 13/32] jvb: lipcap from apt to allow for pcap dumps (#1747) --- jvb/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jvb/Dockerfile b/jvb/Dockerfile index 488ad4358b..036f83bd24 100644 --- a/jvb/Dockerfile +++ b/jvb/Dockerfile @@ -9,7 +9,7 @@ LABEL org.opencontainers.image.source="https://github.com/jitsi/docker-jitsi-mee LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/" RUN apt-dpkg-wrap apt-get update && \ - apt-dpkg-wrap apt-get install -y jitsi-videobridge2 jitsi-autoscaler-sidecar jq curl iproute2 dnsutils && \ + apt-dpkg-wrap apt-get install -y jitsi-videobridge2 jitsi-autoscaler-sidecar jq curl iproute2 dnsutils libpcap0.8 && \ apt-cleanup COPY rootfs/ / From 590a611373bb7edc2d02a520d083092b46e0bc52 Mon Sep 17 00:00:00 2001 From: Ben Banfield-Zanin Date: Wed, 28 Feb 2024 16:55:17 +0000 Subject: [PATCH 14/32] Build the excalidraw backend --- .github/workflows/docker-publish-individual.yml | 16 ++++++++++++++++ .github/workflows/docker-publish.yml | 9 +++++++++ 2 files changed, 25 insertions(+) diff --git a/.github/workflows/docker-publish-individual.yml b/.github/workflows/docker-publish-individual.yml index b2f0e1f028..0e400cbbd8 100644 --- a/.github/workflows/docker-publish-individual.yml +++ b/.github/workflows/docker-publish-individual.yml @@ -6,6 +6,14 @@ on: folder: required: true type: string + repository: + required: false + type: string + default: "" + ref: + required: false + type: string + default: "" secrets: github-token: required: true @@ -27,6 +35,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: Checkout other repository + uses: actions/checkout@v3 + with: + repository: ${{ inputs.repository }} + ref: ${{ inputs.ref }} + path: ${{ inputs.folder }} + if: ${{ inputs.repository != '' }} + - name: Log into registry ${{ env.REGISTRY }} uses: docker/login-action@v2 with: diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 93b46d993a..f3892fe97c 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -84,3 +84,12 @@ jobs: folder: web secrets: github-token: ${{ secrets.GITHUB_TOKEN }} + + build-push-excalidraw: + uses: ./.github/workflows/docker-publish-individual.yml + with: + folder: excalidraw-backend + repository: jitsi/excalidraw-backend + ref: "x21" + secrets: + github-token: ${{ secrets.GITHUB_TOKEN }} From 76809610a1fb2e9c19d16b4d9f1d0e37593e90f2 Mon Sep 17 00:00:00 2001 From: Kurt Garloff Date: Sun, 18 Feb 2024 14:32:05 +0100 Subject: [PATCH 15/32] jibri: use storage.googleapis.com location for chromedriver This is the place listed on https://googlechromelabs.github.io/chrome-for-testing/ which would seem to be the least likely to silently break. Currently, the edgedl.me.gvt1.com location is broken. Signed-off-by: Kurt Garloff --- jibri/rootfs/usr/bin/install-chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jibri/rootfs/usr/bin/install-chrome.sh b/jibri/rootfs/usr/bin/install-chrome.sh index b8fe139b56..9b89e1a4f0 100755 --- a/jibri/rootfs/usr/bin/install-chrome.sh +++ b/jibri/rootfs/usr/bin/install-chrome.sh @@ -33,7 +33,7 @@ else fi CHROMEDRIVER_ZIP="/tmp/chromedriver_linux64.zip" - curl -4Lso ${CHROMEDRIVER_ZIP} "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROMEDRIVER_RELEASE}/linux64/chromedriver-linux64.zip" + curl -4Lso ${CHROMEDRIVER_ZIP} "https://storage.googleapis.com/chrome-for-testing-public/${CHROMEDRIVER_RELEASE}/linux64/chromedriver-linux64.zip" unzip ${CHROMEDRIVER_ZIP} -d /tmp/ mv /tmp/chromedriver-linux64/chromedriver /usr/bin/ chmod +x /usr/bin/chromedriver From 648612f1bcfd8688547a97fd74f69da83e33b5b2 Mon Sep 17 00:00:00 2001 From: damencho Date: Mon, 4 Mar 2024 13:08:50 -0600 Subject: [PATCH 16/32] feat(prosody): Always report visitors support when enabled. --- 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 bfe5b38bf6..8d0beeafd0 100644 --- a/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua +++ b/prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua @@ -464,4 +464,5 @@ Component "metadata.{{ $XMPP_DOMAIN }}" "room_metadata_component" {{ if $ENABLE_VISITORS }} Component "visitors.{{ $XMPP_DOMAIN }}" "visitors_component" auto_allow_visitor_promotion = true + always_visitors_enabled = true {{ end }} From 140db223e35a3ec5a34a2e8559f52e3259f411c2 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 12 Mar 2024 12:55:39 -0500 Subject: [PATCH 17/32] jibri: check for chrome bin before pre-warm (#1757) --- jibri/rootfs/etc/services.d/40-jibri/run | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jibri/rootfs/etc/services.d/40-jibri/run b/jibri/rootfs/etc/services.d/40-jibri/run index f62ce24d34..fe481819e0 100644 --- a/jibri/rootfs/etc/services.d/40-jibri/run +++ b/jibri/rootfs/etc/services.d/40-jibri/run @@ -4,7 +4,9 @@ HOME=/home/jibri DAEMON=/opt/jitsi/jibri/launch.sh +CHROME_BIN_PATH="$(which google-chrome)" +[ $? -ne 0 ] && CHROME_BIN_PATH="$(which chromium)" # pre-warm google chrome before jibri launches to ensure fast chrome launch during recordings -s6-setuidgid jibri /usr/bin/google-chrome --timeout=1000 --headless about:blank +[ -n "$CHROME_BIN_PATH" ] && s6-setuidgid jibri $CHROME_BIN_PATH --timeout=1000 --headless about:blank exec s6-setuidgid jibri /bin/bash -c "exec $DAEMON" From 615396e1f02494385fd1b927f8e29d612c615720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 18 Mar 2024 15:45:21 +0100 Subject: [PATCH 18/32] java: use Java 17 --- base-java/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base-java/Dockerfile b/base-java/Dockerfile index 8fd21f3fbe..9bd9389a0e 100644 --- a/base-java/Dockerfile +++ b/base-java/Dockerfile @@ -9,5 +9,5 @@ RUN mkdir -p /usr/share/man/man1 && \ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ apt-dpkg-wrap apt-get update && \ - apt-dpkg-wrap apt-get install -y nodejs openjdk-11-jre-headless openjdk-11-jdk-headless && \ + apt-dpkg-wrap apt-get install -y nodejs openjdk-17-jre-headless openjdk-17-jdk-headless && \ apt-cleanup From ca61ea20b0a4fcc79862026623ec4f11d122a7e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 18 Mar 2024 15:18:01 +0100 Subject: [PATCH 19/32] jibri: add ability to ignore certificate errors This is useful for testing without a valid TLS certificate. --- jibri.yml | 1 + jibri/rootfs/defaults/jibri.conf | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/jibri.yml b/jibri.yml index a0b4937dbe..057a45e0c2 100644 --- a/jibri.yml +++ b/jibri.yml @@ -23,6 +23,7 @@ services: - CHROMIUM_FLAGS - DISPLAY=:0 - ENABLE_STATS_D + - IGNORE_CERTIFICATE_ERRORS - JIBRI_WEBHOOK_SUBSCRIBERS - JIBRI_INSTANCE_ID - JIBRI_HTTP_API_EXTERNAL_PORT diff --git a/jibri/rootfs/defaults/jibri.conf b/jibri/rootfs/defaults/jibri.conf index 5881d01bb9..ac357a8ec8 100644 --- a/jibri/rootfs/defaults/jibri.conf +++ b/jibri/rootfs/defaults/jibri.conf @@ -141,6 +141,17 @@ jibri { "{{ join "\",\"" (splitList "," .Env.CHROMIUM_FLAGS) }}" ] } + {{ else if .Env.IGNORE_CERTIFICATE_ERRORS -}} + chrome { + flags = [ + "--use-fake-ui-for-media-stream", + "--start-maximized", + "--kiosk", + "--enabled", + "--autoplay-policy=no-user-gesture-required", + "--ignore-certificate-errors" + ] + } {{ end -}} {{ if .Env.ENABLE_STATS_D -}} From 36ebd3df96a03da1473aecf66935d83884e9213f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 18 Mar 2024 22:04:53 +0100 Subject: [PATCH 20/32] release: stable-9364 * ca61ea2 jibri: add ability to ignore certificate errors * 615396e java: use Java 17 * 140db22 jibri: check for chrome bin before pre-warm (#1757) * 648612f feat(prosody): Always report visitors support when enabled. * 28f3cf8 jvb: lipcap from apt to allow for pcap dumps (#1747) * 33350c3 prosody: fix env var default value * d6dc1e3 base-java: install nodejs 20 from nodesource * 8f84f2f jibri: use storage.googleapis.com location for chromedriver * 1bbb4ab fix(prosody): Updates a rate whitelist config that changed in jitsi-meet. (#1741) * eccf68e misc: working on unstable --- CHANGELOG.md | 15 +++++++++++++++ docker-compose.yml | 8 ++++---- jibri.yml | 2 +- jigasi.yml | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2174a1cda..090be7556e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +## stable-9364 + +Based on stable release 9364. + +* ca61ea2 jibri: add ability to ignore certificate errors +* 615396e java: use Java 17 +* 140db22 jibri: check for chrome bin before pre-warm (#1757) +* 648612f feat(prosody): Always report visitors support when enabled. +* 28f3cf8 jvb: lipcap from apt to allow for pcap dumps (#1747) +* 33350c3 prosody: fix env var default value +* d6dc1e3 base-java: install nodejs 20 from nodesource +* 8f84f2f jibri: use storage.googleapis.com location for chromedriver +* 1bbb4ab fix(prosody): Updates a rate whitelist config that changed in jitsi-meet. (#1741) +* eccf68e misc: working on unstable + ## stable-9258 Based on stable release 9258. diff --git a/docker-compose.yml b/docker-compose.yml index c4fce69e95..29288c7718 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-9364} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -179,7 +179,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9364} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -311,7 +311,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9364} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -393,7 +393,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable} + image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9364} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' diff --git a/jibri.yml b/jibri.yml index 057a45e0c2..48ca9f1c76 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-9364} restart: ${RESTART_POLICY:-unless-stopped} volumes: - ${CONFIG}/jibri:/config:Z diff --git a/jigasi.yml b/jigasi.yml index 210d5916cc..48173aecf9 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-9364} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}:${JIGASI_PORT_MIN:-20000}-${JIGASI_PORT_MAX:-20050}/udp' From 452f5ba26c8d6b2d3bcf62efe3fa6f1fddbcfcbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 18 Mar 2024 22:04:53 +0100 Subject: [PATCH 21/32] 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 29288c7718..c4fce69e95 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-9364} + image: jitsi/web:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '${HTTP_PORT}:80' @@ -179,7 +179,7 @@ services: # XMPP server prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-9364} + image: jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} expose: - '${XMPP_PORT:-5222}' @@ -311,7 +311,7 @@ services: # Focus component jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9364} + image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable} restart: ${RESTART_POLICY:-unless-stopped} ports: - '127.0.0.1:${JICOFO_REST_PORT:-8888}:8888' @@ -393,7 +393,7 @@ services: # Video bridge jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-9364} + 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 48ca9f1c76..057a45e0c2 100644 --- a/jibri.yml +++ b/jibri.yml @@ -2,7 +2,7 @@ version: '3.5' services: jibri: - image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable-9364} + 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 48173aecf9..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-9364} + 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 360361e5ea40ba509cae94ca7c33aa9304410ed8 Mon Sep 17 00:00:00 2001 From: Aaron van Meerten Date: Tue, 19 Mar 2024 07:46:34 -0500 Subject: [PATCH 22/32] jibri: move xmpp config for easier override (#1748) * jibri: move xmpp config for easier override * fix order of operations --- jibri/rootfs/defaults/jibri.conf | 80 +------------------------- jibri/rootfs/defaults/xmpp.conf | 77 +++++++++++++++++++++++++ jibri/rootfs/etc/cont-init.d/10-config | 1 + 3 files changed, 80 insertions(+), 78 deletions(-) create mode 100644 jibri/rootfs/defaults/xmpp.conf diff --git a/jibri/rootfs/defaults/jibri.conf b/jibri/rootfs/defaults/jibri.conf index ac357a8ec8..993052f34b 100644 --- a/jibri/rootfs/defaults/jibri.conf +++ b/jibri/rootfs/defaults/jibri.conf @@ -1,29 +1,12 @@ -{{ $JIBRI_XMPP_USER := .Env.JIBRI_XMPP_USER | default "jibri" -}} -{{ $JIBRI_RECORDER_USER := .Env.JIBRI_RECORDER_USER | default "recorder" -}} -{{ $JIBRI_USAGE_TIMEOUT := .Env.JIBRI_USAGE_TIMEOUT | default "0" -}} {{ $JIBRI_RECORDING_RESOLUTION := .Env.JIBRI_RECORDING_RESOLUTION | default "1280x720" -}} {{ $JIBRI_RECORDING_VIDEO_ENCODE_PRESET := .Env.JIBRI_RECORDING_VIDEO_ENCODE_PRESET | default "veryfast" -}} {{ $JIBRI_RECORDING_CONSTANT_RATE_FACTOR := .Env.JIBRI_RECORDING_CONSTANT_RATE_FACTOR | default 25 -}} {{ $JIBRI_RECORDING_FRAMERATE := .Env.JIBRI_RECORDING_FRAMERATE | default 30 -}} {{ $JIBRI_RECORDING_QUEUE_SIZE := .Env.JIBRI_RECORDING_QUEUE_SIZE | default 4096 -}} {{ $JIBRI_RECORDING_STREAMING_MAX_BITRATE := .Env.JIBRI_RECORDING_STREAMING_MAX_BITRATE | default 2976 -}} -{{ $JIBRI_BREWERY_MUC := .Env.JIBRI_BREWERY_MUC | default "jibribrewery" -}} {{ $JIBRI_SINGLE_USE_MODE := .Env.JIBRI_SINGLE_USE_MODE | default "false" -}} -{{ $XMPP_AUTH_DOMAIN := .Env.XMPP_AUTH_DOMAIN | default "auth.meet.jitsi" -}} -{{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}} -{{ $XMPP_INTERNAL_MUC_DOMAIN := .Env.XMPP_INTERNAL_MUC_DOMAIN | default "internal-muc.meet.jitsi" -}} -{{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "muc.meet.jitsi" -}} -{{ $XMPP_MUC_DOMAIN_PREFIX := (split "." $XMPP_MUC_DOMAIN)._0 -}} -{{ $JIBRI_STRIP_DOMAIN_JID := .Env.JIBRI_STRIP_DOMAIN_JID | default $XMPP_MUC_DOMAIN_PREFIX -}} -{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}} -{{ $XMPP_TRUST_ALL_CERTS := .Env.XMPP_TRUST_ALL_CERTS | default "true" | toBool -}} -{{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}} -{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}} -{{ $XMPP_SERVERS := splitList "," $XMPP_SERVER -}} {{ $STATSD_HOST := .Env.JIBRI_STATSD_HOST | default "localhost" -}} {{ $STATSD_PORT := .Env.JIBRI_STATSD_PORT | default "8125" -}} -{{/* assign env from context, preserve during range when . is re-assigned */}} -{{ $ENV := .Env -}} jibri { // A unique identifier for this Jibri @@ -45,67 +28,6 @@ jibri { {{ end -}} } {{ end -}} - xmpp { - // See example_xmpp_envs.conf for an example of what is expected here - environments = [ -{{ range $index, $element := $XMPP_SERVERS -}} -{{ $SERVER := splitn ":" 2 $element }} - { - // A user-friendly name for this environment - name = "{{ $ENV.XMPP_ENV_NAME }}-{{$index}}" - - // A list of XMPP server hosts to which we'll connect - xmpp-server-hosts = [ - "{{ $SERVER._0 }}" - ] - - // The base XMPP domain - xmpp-domain = "{{ $XMPP_DOMAIN }}" - - {{ if $ENV.PUBLIC_URL -}} - // An (optional) base url the Jibri will join if it is set - base-url = "{{ $ENV.PUBLIC_URL }}" - {{ end -}} - - // The MUC we'll join to announce our presence for - // recording and streaming services - control-muc { - domain = "{{ $XMPP_INTERNAL_MUC_DOMAIN }}" - room-name = "{{ $JIBRI_BREWERY_MUC }}" - nickname = "{{ $ENV.JIBRI_INSTANCE_ID }}" - } - - // The login information for the control MUC - control-login { - domain = "{{ $XMPP_AUTH_DOMAIN }}" - port = "{{ $SERVER._1 | default $XMPP_PORT }}" - username = "{{ $JIBRI_XMPP_USER }}" - password = "{{ $ENV.JIBRI_XMPP_PASSWORD }}" - } - - // The login information the selenium web client will use - call-login { - domain = "{{ $XMPP_RECORDER_DOMAIN }}" - username = "{{ $JIBRI_RECORDER_USER }}" - password = "{{ $ENV.JIBRI_RECORDER_PASSWORD }}" - } - - // The value we'll strip from the room JID domain to derive - // the call URL - strip-from-room-domain = "{{ $JIBRI_STRIP_DOMAIN_JID }}." - - // How long Jibri sessions will be allowed to last before - // they are stopped. A value of 0 allows them to go on - // indefinitely - usage-timeout = "{{ $JIBRI_USAGE_TIMEOUT }}" - - // Whether or not we'll automatically trust any cert on - // this XMPP domain - trust-all-xmpp-certs = {{ $XMPP_TRUST_ALL_CERTS }} - } -{{ end }} - ] - } } recording { recordings-directory = "{{ .Env.JIBRI_RECORDING_DIR | default "/config/recordings" }}" @@ -162,3 +84,5 @@ jibri { } {{ end -}} } + +include "xmpp.conf" diff --git a/jibri/rootfs/defaults/xmpp.conf b/jibri/rootfs/defaults/xmpp.conf new file mode 100644 index 0000000000..c8e58f35c2 --- /dev/null +++ b/jibri/rootfs/defaults/xmpp.conf @@ -0,0 +1,77 @@ +{{ $JIBRI_BREWERY_MUC := .Env.JIBRI_BREWERY_MUC | default "jibribrewery" -}} +{{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "muc.meet.jitsi" -}} +{{ $XMPP_MUC_DOMAIN_PREFIX := (split "." $XMPP_MUC_DOMAIN)._0 -}} +{{ $JIBRI_STRIP_DOMAIN_JID := .Env.JIBRI_STRIP_DOMAIN_JID | default $XMPP_MUC_DOMAIN_PREFIX -}} +{{ $JIBRI_RECORDER_USER := .Env.JIBRI_RECORDER_USER | default "recorder" -}} +{{ $JIBRI_USAGE_TIMEOUT := .Env.JIBRI_USAGE_TIMEOUT | default "0" -}} +{{ $JIBRI_XMPP_USER := .Env.JIBRI_XMPP_USER | default "jibri" -}} +{{ $XMPP_AUTH_DOMAIN := .Env.XMPP_AUTH_DOMAIN | default "auth.meet.jitsi" -}} +{{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}} +{{ $XMPP_INTERNAL_MUC_DOMAIN := .Env.XMPP_INTERNAL_MUC_DOMAIN | default "internal-muc.meet.jitsi" -}} +{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}} +{{ $XMPP_TRUST_ALL_CERTS := .Env.XMPP_TRUST_ALL_CERTS | default "true" | toBool -}} +{{ $XMPP_PORT := .Env.XMPP_PORT | default "5222" -}} +{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}} +{{ $XMPP_SERVERS := splitList "," $XMPP_SERVER -}} +{{/* assign env from context, preserve during range when . is re-assigned */}} +{{ $ENV := .Env -}} + +jibri.api.xmpp.environments = [ + // See example_xmpp_envs.conf for an example of what is expected here +{{ range $index, $element := $XMPP_SERVERS -}} +{{ $SERVER := splitn ":" 2 $element }} + { + // A user-friendly name for this environment + name = "{{ $ENV.XMPP_ENV_NAME }}-{{$index}}" + + // A list of XMPP server hosts to which we'll connect + xmpp-server-hosts = [ + "{{ $SERVER._0 }}" + ] + + // The base XMPP domain + xmpp-domain = "{{ $XMPP_DOMAIN }}" + + {{ if $ENV.PUBLIC_URL -}} + // An (optional) base url the Jibri will join if it is set + base-url = "{{ $ENV.PUBLIC_URL }}" + {{ end -}} + + // The MUC we'll join to announce our presence for + // recording and streaming services + control-muc { + domain = "{{ $XMPP_INTERNAL_MUC_DOMAIN }}" + room-name = "{{ $JIBRI_BREWERY_MUC }}" + nickname = "{{ $ENV.JIBRI_INSTANCE_ID }}" + } + + // The login information for the control MUC + control-login { + domain = "{{ $XMPP_AUTH_DOMAIN }}" + port = "{{ $SERVER._1 | default $XMPP_PORT }}" + username = "{{ $JIBRI_XMPP_USER }}" + password = "{{ $ENV.JIBRI_XMPP_PASSWORD }}" + } + + // The login information the selenium web client will use + call-login { + domain = "{{ $XMPP_RECORDER_DOMAIN }}" + username = "{{ $JIBRI_RECORDER_USER }}" + password = "{{ $ENV.JIBRI_RECORDER_PASSWORD }}" + } + + // The value we'll strip from the room JID domain to derive + // the call URL + strip-from-room-domain = "{{ $JIBRI_STRIP_DOMAIN_JID }}." + + // How long Jibri sessions will be allowed to last before + // they are stopped. A value of 0 allows them to go on + // indefinitely + usage-timeout = "{{ $JIBRI_USAGE_TIMEOUT }}" + + // Whether or not we'll automatically trust any cert on + // this XMPP domain + trust-all-xmpp-certs = {{ $XMPP_TRUST_ALL_CERTS }} + } +{{ end }} +] diff --git a/jibri/rootfs/etc/cont-init.d/10-config b/jibri/rootfs/etc/cont-init.d/10-config index 9d3b1f517b..7f9a0ceb87 100644 --- a/jibri/rootfs/etc/cont-init.d/10-config +++ b/jibri/rootfs/etc/cont-init.d/10-config @@ -69,6 +69,7 @@ fi # always recreate configs tpl /defaults/jibri.conf > /etc/jitsi/jibri/jibri.conf +tpl /defaults/xmpp.conf > /etc/jitsi/jibri/xmpp.conf tpl /defaults/logging.properties > /etc/jitsi/jibri/logging.properties tpl /defaults/xorg-video-dummy.conf > /etc/jitsi/jibri/xorg-video-dummy.conf From ca1d6704f935b9f688f0671ea0b5fafa18ee28cc Mon Sep 17 00:00:00 2001 From: HannesOberreiter Date: Tue, 19 Mar 2024 16:24:05 +0100 Subject: [PATCH 23/32] fix: :bug: wrong quote in default config (#1761) --- web/rootfs/defaults/system-config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/rootfs/defaults/system-config.js b/web/rootfs/defaults/system-config.js index b680acf40a..a4a5ed5524 100644 --- a/web/rootfs/defaults/system-config.js +++ b/web/rootfs/defaults/system-config.js @@ -22,7 +22,7 @@ config.focusUserJid = 'focus@{{$XMPP_AUTH_DOMAIN}}'; {{ if $ENABLE_SUBDOMAINS -}} var subdir = ''; -var subdomain = ""; +var subdomain = ''; if (subdir.startsWith('