#!/bin/bash # Jitsi Meet recurring upgrader and customization keeper # for Debian/*buntu binaries. # 2020 - SwITNet Ltd # GNU GPLv3 or later. Blue='\e[0;34m' Purple='\e[0;35m' Color_Off='\e[0m' support="https://switnet.net/support" apt_repo="/etc/apt/sources.list.d" jibri_packages=$(grep Package /var/lib/apt/lists/download.jitsi.org_*_Packages | sort -u | awk '{print $2}' | paste -s -d ' ') LOC_REC="TBD" ENABLE_BLESSM="TBD" CHD_LST=$(curl -sL https://chromedriver.storage.googleapis.com/LATEST_RELEASE) CHDB=$(whereis chromedriver | awk '{print$2}') DOMAIN=$(ls /etc/prosody/conf.d/ | grep -v localhost | awk -F'.cfg' '{print $1}' | awk '!NF || !seen[$0]++') INT_CONF=/usr/share/jitsi-meet/interface_config.js AVATAR="$(grep -r avatar /etc/nginx/sites-*/ 2>/dev/null)" if [ -f $apt_repo/google-chrome.list ]; then google_package=$(grep Package /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages | sort -u | cut -d ' ' -f2 | paste -s -d ' ') else echo "Seems no Google repo installed" fi if [ -z $CHDB ]; then echo "Seems no chromedriver installed" else CHD_AVB=$(chromedriver -v | awk '{print $2}') fi version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; } check_jibri() { if [ "$(dpkg-query -W -f='${Status}' "jibri" 2>/dev/null | grep -c "ok installed")" == "1" ] then service jibri restart service jibri-icewm restart service jibri-xorg restart else echo "Jibri service not installed" fi } # Restarting services restart_services() { service jitsi-videobridge restart service jicofo restart check_jibri service prosody restart } upgrade_cd() { if version_gt $CHD_LST $CHD_AVB then echo "Upgrading ..." wget https://chromedriver.storage.googleapis.com/$CHD_LST/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo cp chromedriver $CHDB rm -rf chromedriver chromedriver_linux64.zip chromedriver -v else echo "No need to upgrade Chromedriver" printf "Current version: ${Green} $CHD_AVB ${Color_Off}\n" fi } update_jitsi_repo() { apt-get update -o Dir::Etc::sourcelist="sources.list.d/jitsi-$1.list" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" apt-get install -qq --only-upgrade $jibri_packages } update_google_repo() { if [ -f $apt_repo/google-chrome.list ]; then apt-get update -o Dir::Etc::sourcelist="sources.list.d/google-chrome.list" \ -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" apt-get install -qq --only-upgrade $google_package else echo "No Google repository found" fi } check_lst_cd() { printf "${Purple}Checking for the latest Chromedriver${Color_Off}\n" if [ -f $CHDB ]; then printf "Current installed Chromedriver: ${Yellow} $CHD_AVB ${Color_Off}\n" printf "Latest Chromedriver version available: ${Green} $CHD_LST ${Color_Off}\n" upgrade_cd else printf "${Yellow} -> Seems there is no Chromedriver installed${Color_Off}\n" fi } printf "${Blue}Update & upgrade Jitsi and components - v2.3${Color_Off}\n" if [ -f $apt_repo/jitsi-unstable.list ]; then update_jitsi_repo unstable update_google_repo check_lst_cd elif [ -f $apt_repo/jitsi-stable.list ]; then update_jitsi_repo stable update_google_repo check_lst_cd else echo "Please check your repositories, something is not right." exit 1 fi # Any customization, image, name or link change for any purpose should # be documented here so new updates won't remove those changes. # We divide them on UI changes and branding changes, feel free to adapt # to your needs. # # Please keep in mind that fees to support for customization changes # may apply. ######################################################################## # User interface changes # ######################################################################## printf "${Purple}========== Setting Static Avatar ==========${Color_Off}\n" if [[ -z $AVATAR ]]; then echo "Moving on..." else echo "Setting Static Avatar" sed -i "/RANDOM_AVATAR_URL_PREFIX/ s|false|\'http://$DOMAIN/avatar/\'|" $INT_CONF sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" $INT_CONF fi printf "${Purple}========== Setting Support Link ==========${Color_Off}\n" if [[ -z $support ]]; then echo "Moving on..." else echo "Setting Support custom link" sed -i "s|https://jitsi.org/live|$support|g" $INT_CONF fi printf "${Purple}========== Re-enable Localrecording ==========${Color_Off}\n" if [ $LOC_REC = on ]; then echo "Setting LocalRecording..." sed -i "s|'tileview'|'tileview', 'localrecording'|" $INT_CONF else echo "Moving on..." fi printf "${Purple}========== Disable Blur my background ==========${Color_Off}\n" sed -i "s|'videobackgroundblur', ||" $INT_CONF restart_services ######################################################################## # Brandless mode # ######################################################################## if [ $ENABLE_BLESSM = on ]; then bash $PWD/jm-bm.sh fi printf "${Blue}Script completed \o/! ${Color_Off}\n"