From 3505d37a1d31d3d40baa15c2a57a143eeb6fbaf8 Mon Sep 17 00:00:00 2001 From: Michelle Date: Thu, 2 Apr 2026 16:28:41 +0200 Subject: [PATCH 1/4] Add option -L to install LiveKit optionally --- bbb-install.sh | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/bbb-install.sh b/bbb-install.sh index 7ac4218..98e64dd 100644 --- a/bbb-install.sh +++ b/bbb-install.sh @@ -28,9 +28,9 @@ # # wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com # -# Install BigBlueButton with SSL + Greenlight +# Install BigBlueButton with SSL + Greenlight + LiveKit # -# wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com -g +# wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com -g -lk # usage() { @@ -55,6 +55,7 @@ OPTIONS (install BigBlueButton): -g Install Greenlight version 3 -k Install Keycloak version 20 + -L Install LiveKit for BigBlueButton (optional) -t : Install BigBlueButton LTI framework tools and add/update LTI consumer credentials : @@ -133,7 +134,7 @@ main() { need_x64 - while builtin getopts "hs:r:c:v:e:p:m:t:xgadwjik" opt "${@}"; do + while builtin getopts "hs:r:c:v:e:p:m:t:L:xgadwjik" opt "${@}"; do case $opt in h) @@ -191,6 +192,10 @@ main() { k) INSTALL_KC=true ;; + + L) + INSTALL_LIVEKIT=true + ;; t) LTI_CREDS_STR=$OPTARG @@ -393,6 +398,10 @@ main() { install_greenlight_v3 fi + if [ -n "$INSTALL_LIVEKIT" ]; then + install_livekit + fi + if [ "$OVERWRITE_IMAGE_MAGICK_POLICY" = true ]; then echo "ATTENTION!!" echo "Overwriting ImageMagick policy file (modifying the default configuration to seal security vectors)" @@ -2004,4 +2013,28 @@ HERE fi } +install_livekit() { + apt-get update + need_pkg bbb-livekit + + # Enable LiveKit + yq e -i '.livekit.enabled = true' /etc/bigbluebutton/bbb-webrtc-sfu/production.yml + systemctl restart bbb-webrtc-sfu + + # Get main network interface and add it to LiveKit config. + interface=$(awk '$2 == 00000000 { print $1 }' /proc/net/route | head -1) + yq -i '.rtc.interfaces.includes += ["'"$interface"'"]' /etc/bigbluebutton/livekit.yaml + systemctl restart livekit-server + + # Enable LiveKit in bbb-web.properties + props_file=/etc/bigbluebutton/bbb-web.properties + for key in audioBridge cameraBridge screenShareBridge; do + if grep -q "^${key}=" "$props_file"; then + sed -i "s/^${key}=.*/${key}=livekit/" "$props_file" + else + echo "${key}=livekit" >> "$props_file" + fi + done +} + main "$@" || exit 1 From 1b9503cb27013dbbfc9bdd4a860a8cd185a88938 Mon Sep 17 00:00:00 2001 From: Michelle Date: Thu, 2 Apr 2026 16:34:54 +0200 Subject: [PATCH 2/4] fix: doesn't require an argument --- bbb-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bbb-install.sh b/bbb-install.sh index 98e64dd..9be1f32 100644 --- a/bbb-install.sh +++ b/bbb-install.sh @@ -30,7 +30,7 @@ # # Install BigBlueButton with SSL + Greenlight + LiveKit # -# wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com -g -lk +# wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com -g -L # usage() { @@ -134,7 +134,7 @@ main() { need_x64 - while builtin getopts "hs:r:c:v:e:p:m:t:L:xgadwjik" opt "${@}"; do + while builtin getopts "hs:r:c:v:e:p:m:t:Lxgadwjik" opt "${@}"; do case $opt in h) From 457e86c7774ef93fa3fcb30c7b9f6354c6f38a55 Mon Sep 17 00:00:00 2001 From: Michelle Date: Thu, 2 Apr 2026 17:05:22 +0200 Subject: [PATCH 3/4] fix: adding network interface to livekit.yaml not working --- bbb-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bbb-install.sh b/bbb-install.sh index 9be1f32..9a04b35 100644 --- a/bbb-install.sh +++ b/bbb-install.sh @@ -2023,7 +2023,7 @@ install_livekit() { # Get main network interface and add it to LiveKit config. interface=$(awk '$2 == 00000000 { print $1 }' /proc/net/route | head -1) - yq -i '.rtc.interfaces.includes += ["'"$interface"'"]' /etc/bigbluebutton/livekit.yaml + yq e -i ".rtc.interfaces.includes = [\"$interface\"]" /etc/bigbluebutton/livekit.yaml systemctl restart livekit-server # Enable LiveKit in bbb-web.properties @@ -2035,6 +2035,7 @@ install_livekit() { echo "${key}=livekit" >> "$props_file" fi done + systemctl restart bbb-web } main "$@" || exit 1 From 081f5730063b73800490c662e0c09cde957cd7b9 Mon Sep 17 00:00:00 2001 From: Michelle Date: Thu, 2 Apr 2026 17:09:17 +0200 Subject: [PATCH 4/4] update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f7d1802..798e82a 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ OPTIONS (install BigBlueButton): -g Install Greenlight version 3 -k Install Keycloak version 20 + -L Install LiveKit for BigBlueButton -t : Install BigBlueButton LTI framework tools and add/update LTI consumer credentials :