Update from upstream

This commit is contained in:
Luis Guzmán 2019-02-24 22:10:26 -06:00
parent 0127016558
commit 694cafec4d
No known key found for this signature in database
GPG Key ID: BE0F0FDD8926E0C5
3 changed files with 175 additions and 15 deletions

View File

@ -1,3 +1,5 @@
Quick Jibri installer based for Xenial servers.
=======
# Quick Jibri Installer # Quick Jibri Installer
Bash installer for Jibri on *buntu 16.04 LTS based systems Bash installer for Jibri on *buntu 16.04 LTS based systems

125
jitsi-updater.sh Normal file
View File

@ -0,0 +1,125 @@
#!/bin/bash
# Jitsi Meet upgrade and custom keeper for Debian/*buntu binaries.
# 2018 - 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 ' ')
CHD_LST=$(curl -sL https://chromedriver.storage.googleapis.com/LATEST_RELEASE)
CHDB=/usr/local/bin/chromedriver
DOMAIN=$(ls /etc/prosody/conf.d/ | grep -v localhost | cut -d "." -f "1-3")
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 [ -f $CHDB ]; then
CHD_AVB=$(chromedriver -v | awk '{print $2}' | cut -d . -f "1,2")
else
echo "Seems no chromedriver installed"
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
########################################################################
# Keeping changes #
########################################################################
printf "${Purple}========== Setting Static Avatar ==========${Color_Off}\n"
avatar="$(grep -r avatar /etc/*/sites-*/ 2>/dev/null)"
if ($avatar) < /dev/null > /dev/null 2>&1; then
echo "Moving on..."
else
echo "Setting Static Avatar"
sed -i "/RANDOM_AVATAR_URL_PREFIX/ s|false|\'http://$DOMAIN/avatar/\'|" /usr/share/jitsi-meet/interface_config.js
sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" /usr/share/jitsi-meet/interface_config.js
fi
printf "${Purple}========== Setting Support Link ==========${Color_Off}\n"
if ($support) < /dev/null > /dev/null 2>&1; then
echo "Moving on..."
else
echo "Setting Support custom link"
sed -i "s|https://jitsi.org/live|$support|g" /usr/share/jitsi-meet/interface_config.js
fi
restart_services
printf "${Blue}Script completed \o/! ${Color_Off}\n"

View File

@ -10,7 +10,6 @@ APACHE_2=$(dpkg-query -W -f='${Status}' apache2 2>/dev/null | grep -c "ok instal
NGINX=$(dpkg-query -W -f='${Status}' nginx 2>/dev/null | grep -c "ok installed") NGINX=$(dpkg-query -W -f='${Status}' nginx 2>/dev/null | grep -c "ok installed")
DIST=$(lsb_release -sc) DIST=$(lsb_release -sc)
GOOGL_REPO="/etc/apt/sources.list.d/dl_google_com_linux_chrome_deb.list" GOOGL_REPO="/etc/apt/sources.list.d/dl_google_com_linux_chrome_deb.list"
CHD_VER=$(curl -sL https://chromedriver.storage.googleapis.com/LATEST_RELEASE)
if [ $DIST = flidas ]; then if [ $DIST = flidas ]; then
DIST="xenial" DIST="xenial"
@ -122,7 +121,7 @@ fi
echo "snd-aloop" | tee -a /etc/modules echo "snd-aloop" | tee -a /etc/modules
check_snd_driver check_snd_driver
CHD_VER=$(curl -sL https://chromedriver.storage.googleapis.com/LATEST_RELEASE)
echo "# Installing Google Chrome / ChromeDriver" echo "# Installing Google Chrome / ChromeDriver"
if [ -f $GOOGL_REPO ]; then if [ -f $GOOGL_REPO ]; then
echo "Google repository already set." echo "Google repository already set."
@ -224,8 +223,8 @@ fi
restart_services() { restart_services() {
service jitsi-videobridge restart service jitsi-videobridge restart
service jicofo restart service jicofo restart
check_jibri
service prosody restart service prosody restart
check_jibri
} }
# Configure Jibri # Configure Jibri
@ -265,7 +264,7 @@ org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
BREWERY BREWERY
# Jibri tweaks for /etc/jitsi/meet/$DOMAIN-config.js # Jibri tweaks for /etc/jitsi/meet/$DOMAIN-config.js
sed -i "s|guest.example.com|guest.$DOMAIN|" $MEET_CONF sed -i "s|// anonymousdomain: 'guest.example.com'|anonymousdomain: \'guest.$DOMAIN\'|" $MEET_CONF
sed -i "s|conference.$DOMAIN|internal.auth.$DOMAIN|" $MEET_CONF sed -i "s|conference.$DOMAIN|internal.auth.$DOMAIN|" $MEET_CONF
sed -i "s|// fileRecordingsEnabled: false,|fileRecordingsEnabled: true,| " $MEET_CONF sed -i "s|// fileRecordingsEnabled: false,|fileRecordingsEnabled: true,| " $MEET_CONF
sed -i "s|// liveStreamingEnabled: false,|liveStreamingEnabled: true,\\ sed -i "s|// liveStreamingEnabled: false,|liveStreamingEnabled: true,\\
@ -364,21 +363,14 @@ cat << CONF_JSON > $CONF_JSON
} }
CONF_JSON CONF_JSON
#Tune webserver for Jitsi App control. #Tune webserver for Jitsi App control
if [ -f /etc/apache2/sites-available/$DOMAIN.conf ]; then if [ -f /etc/apache2/sites-available/$DOMAIN.conf ]; then
WS_CONF=/etc/apache2/sites-available/$DOMAIN.conf WS_CONF=/etc/apache2/sites-available/$DOMAIN.conf
sed -i '$ d' $WS_CONF sed -i '$ d' $WS_CONF
cat << NG_APP >> $WS_CONF cat << NG_APP >> $WS_CONF
Alias "/external_api.js" "/usr/share/jitsi-meet/libs/external_api.min.js" Alias "/external_api.js" "/usr/share/jitsi-meet/libs/external_api.min.js"
<Location /config.js>
Require all granted
</Location>
Alias "/external_api.min.js" "/usr/share/jitsi-meet/libs/external_api.min.js" Alias "/external_api.min.js" "/usr/share/jitsi-meet/libs/external_api.min.js"
<Location /config.js>
Require all granted
</Location>
</VirtualHost> </VirtualHost>
NG_APP NG_APP
@ -406,13 +398,45 @@ else
-> https://github.com/switnet-ltd/quick-jibri-installer/issues" -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
fi fi
#Enable static avatar
while [[ "$ENABLE_SA" != "yes" && "$ENABLE_SA" != "no" ]]
do
read -p "Do you want to enable static avatar?: (yes or no)"$'\n' -r ENABLE_SA
if [ "$ENABLE_SA" = "no" ]; then
echo "Static avatar won't be enable"
elif [ "$ENABLE_SA" = "yes" ] && [ -f /etc/apache2/sites-available/$DOMAIN.conf ]; then
echo "Static avatar are being enable"
wget https://switnet.net/static/avatar.png -O /usr/share/jitsi-meet/images/avatar2.png
WS_CONF=/etc/apache2/sites-available/$DOMAIN.conf
sed -i "/Alias \"\/external_api.js\"/i \ \ AliasMatch \^\/avatar\/\(.\*\)\\\.png /usr/share/jitsi-meet/images/avatar2.png" $WS_CONF
service apache2 reload
sed -i "/RANDOM_AVATAR_URL_PREFIX/ s|false|\'https://$DOMAIN/avatar/\'|" $INT_CONF
sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" $INT_CONF
elif [ "$ENABLE_SA" = "yes" ] && [ -f /etc/nginx/sites-available/$DOMAIN.conf ]; then
wget https://switnet.net/static/avatar.png -O /usr/share/jitsi-meet/images/avatar2.png
WS_CONF=/etc/nginx/sites-available/$DOMAIN.conf
sed -i "/location \/external_api.min.js/i \ \ \ \ location \~ \^\/avatar\/\(.\*\)\\\.png {\\
\
\ \ \ \ \ \ \ \ alias /usr/share/jitsi-meet/images/avatar2.png;\\
\
\ \ \ \ }\\
\ " $WS_CONF
service nginx reload
sed -i "/RANDOM_AVATAR_URL_PREFIX/ s|false|\'http://$DOMAIN/avatar/\'|" $INT_CONF
sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" $INT_CONF
else
echo "No app configuration done to server file, please report to:
-> https://github.com/switnet-ltd/quick-jibri-installer/issues"
fi
done
#Enable secure rooms? #Enable secure rooms?
while [[ $ENABLE_SC != yes && $ENABLE_SC != no ]] while [[ "$ENABLE_SC" != "yes" && "$ENABLE_SC" != "no" ]]
do do
read -p "Do you want to enable secure rooms?: (yes or no)"$'\n' -r ENABLE_SC read -p "Do you want to enable secure rooms?: (yes or no)"$'\n' -r ENABLE_SC
if [ $ENABLE_SC = no ]; then if [ "$ENABLE_SC" = "no" ]; then
echo "Secure rooms won't be enable" echo "Secure rooms won't be enable"
elif [ $ENABLE_SC = yes ]; then elif [ "$ENABLE_SC" = "yes" ]; then
echo "Secure rooms are being enable" echo "Secure rooms are being enable"
cat << P_SR >> $PROSODY_FILE cat << P_SR >> $PROSODY_FILE
VirtualHost "$DOMAIN" VirtualHost "$DOMAIN"
@ -425,6 +449,15 @@ P_SR
fi fi
done done
#Set main language (Spanish)
sed -i "s|// defaultLanguage: 'en',|defaultLanguage: 'es',|" $MEET_CONF
#Start with video muted by default
sed -i "s|// startWithVideoMuted: false,|startWithVideoMuted: true,|" $MEET_CONF
#Start with audio muted but admin
sed -i "s|// startAudioMuted: 10,|startAudioMuted: 1,|" $MEET_CONF
#Enable jibri services #Enable jibri services
systemctl enable jibri systemctl enable jibri
systemctl enable jibri-xorg systemctl enable jibri-xorg