From 79a4635ed29777e57e15e4e22f42027315a08e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Wed, 15 May 2024 22:04:11 +0200 Subject: [PATCH] jvb: add ability to disable XMPP In case the REST API is the only API that is going to be used. --- docker-compose.yml | 1 + jvb/rootfs/defaults/jvb.conf | 5 ++++- jvb/rootfs/etc/cont-init.d/10-config | 32 +++++++++++++++------------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 674b026..abb4208 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -424,6 +424,7 @@ services: - JVB_AUTH_PASSWORD - JVB_BREWERY_MUC - JVB_DISABLE_STUN + - JVB_DISABLE_XMPP - JVB_INSTANCE_ID - JVB_PORT - JVB_MUC_NICKNAME diff --git a/jvb/rootfs/defaults/jvb.conf b/jvb/rootfs/defaults/jvb.conf index 5705c24..d1be4a8 100644 --- a/jvb/rootfs/defaults/jvb.conf +++ b/jvb/rootfs/defaults/jvb.conf @@ -1,4 +1,5 @@ {{ $COLIBRI_REST_ENABLED := .Env.COLIBRI_REST_ENABLED | default "false" | toBool -}} +{{ $DISABLE_XMPP := .Env.JVB_DISABLE_XMPP | default "0" | toBool -}} {{ $ENABLE_COLIBRI_WEBSOCKET := .Env.ENABLE_COLIBRI_WEBSOCKET | default "1" | toBool -}} {{ $ENABLE_OCTO := .Env.ENABLE_OCTO | default "0" | toBool -}} {{ $ENABLE_SCTP := .Env.ENABLE_SCTP | default "0" | toBool -}} @@ -37,6 +38,7 @@ videobridge { advertise-private-candidates = {{ $JVB_ADVERTISE_PRIVATE_CANDIDATES }} } apis { +{{ if not $DISABLE_XMPP -}} xmpp-client { configs { {{ if $ENABLE_JVB_XMPP_SERVER }} @@ -67,9 +69,10 @@ videobridge { DISABLE_CERTIFICATE_VERIFICATION = true } {{ end -}} -{{ end }} +{{ end -}} } } +{{ end -}} rest { enabled = {{ $COLIBRI_REST_ENABLED }} } diff --git a/jvb/rootfs/etc/cont-init.d/10-config b/jvb/rootfs/etc/cont-init.d/10-config index 54a8a52..1a001fb 100644 --- a/jvb/rootfs/etc/cont-init.d/10-config +++ b/jvb/rootfs/etc/cont-init.d/10-config @@ -1,17 +1,24 @@ #!/usr/bin/with-contenv bash -if [[ -z $JVB_AUTH_PASSWORD ]]; then - echo 'FATAL ERROR: JVB auth password must be set' - exit 1 -fi +if [[ -z $JVB_DISABLE_XMPP ]]; then + if [[ -z $JVB_AUTH_PASSWORD ]]; then + echo 'FATAL ERROR: JVB auth password must be set' + exit 1 + fi -OLD_JVB_AUTH_PASSWORD=passw0rd -if [[ "$JVB_AUTH_PASSWORD" == "$OLD_JVB_AUTH_PASSWORD" ]]; then - echo 'FATAL ERROR: JVB auth password must be changed, check the README' - exit 1 -fi + OLD_JVB_AUTH_PASSWORD=passw0rd + if [[ "$JVB_AUTH_PASSWORD" == "$OLD_JVB_AUTH_PASSWORD" ]]; then + echo 'FATAL ERROR: JVB auth password must be changed, check the README' + exit 1 + fi -[ -z "${XMPP_SERVER}" ] && export XMPP_SERVER=xmpp.meet.jitsi + [ -z "${XMPP_SERVER}" ] && export XMPP_SERVER=xmpp.meet.jitsi + + # On environments like Swarm the IP address used by the default gateway need not be + # the one used for inter-container traffic. Use that one for our fallback ID. + XMPP_SERVER_IP=$(dig +short +search ${XMPP_SERVER}) + export JVB_WS_SERVER_ID_FALLBACK=$(ip route get ${XMPP_SERVER_IP} | grep -oP '(?<=src ).*' | awk '{ print $1 '}) +fi # Migration from DOCKER_HOST_ADDRESS to JVB_ADVERTISE_IPS if [[ -z "${JVB_ADVERTISE_IPS}" ]]; then @@ -21,11 +28,6 @@ if [[ -z "${JVB_ADVERTISE_IPS}" ]]; then fi fi -# On environments like Swarm the IP address used by the default gateway need not be -# the one used for inter-container traffic. Use that one for our fallback ID. -XMPP_SERVER_IP=$(dig +short +search ${XMPP_SERVER}) -export JVB_WS_SERVER_ID_FALLBACK=$(ip route get ${XMPP_SERVER_IP} | grep -oP '(?<=src ).*' | awk '{ print $1 '}) - # Local IP for the ice4j mapping harvester. export LOCAL_ADDRESS=$(ip route get 1 | grep -oP '(?<=src ).*' | awk '{ print $1 '})