forked from switnet/quick-jibri-installer
Update from upstream
This commit is contained in:
parent
0127016558
commit
694cafec4d
|
@ -1,3 +1,5 @@
|
|||
Quick Jibri installer based for Xenial servers.
|
||||
=======
|
||||
# Quick Jibri Installer
|
||||
Bash installer for Jibri on *buntu 16.04 LTS based systems
|
||||
|
||||
|
|
|
@ -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"
|
|
@ -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")
|
||||
DIST=$(lsb_release -sc)
|
||||
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
|
||||
DIST="xenial"
|
||||
|
@ -122,7 +121,7 @@ fi
|
|||
echo "snd-aloop" | tee -a /etc/modules
|
||||
|
||||
check_snd_driver
|
||||
|
||||
CHD_VER=$(curl -sL https://chromedriver.storage.googleapis.com/LATEST_RELEASE)
|
||||
echo "# Installing Google Chrome / ChromeDriver"
|
||||
if [ -f $GOOGL_REPO ]; then
|
||||
echo "Google repository already set."
|
||||
|
@ -224,8 +223,8 @@ fi
|
|||
restart_services() {
|
||||
service jitsi-videobridge restart
|
||||
service jicofo restart
|
||||
check_jibri
|
||||
service prosody restart
|
||||
check_jibri
|
||||
}
|
||||
|
||||
# Configure Jibri
|
||||
|
@ -265,7 +264,7 @@ org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
|
|||
BREWERY
|
||||
|
||||
# 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|// fileRecordingsEnabled: false,|fileRecordingsEnabled: true,| " $MEET_CONF
|
||||
sed -i "s|// liveStreamingEnabled: false,|liveStreamingEnabled: true,\\
|
||||
|
@ -364,21 +363,14 @@ cat << 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
|
||||
WS_CONF=/etc/apache2/sites-available/$DOMAIN.conf
|
||||
sed -i '$ d' $WS_CONF
|
||||
cat << NG_APP >> $WS_CONF
|
||||
|
||||
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"
|
||||
<Location /config.js>
|
||||
Require all granted
|
||||
</Location>
|
||||
|
||||
</VirtualHost>
|
||||
NG_APP
|
||||
|
@ -406,13 +398,45 @@ else
|
|||
-> https://github.com/switnet-ltd/quick-jibri-installer/issues"
|
||||
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?
|
||||
while [[ $ENABLE_SC != yes && $ENABLE_SC != no ]]
|
||||
while [[ "$ENABLE_SC" != "yes" && "$ENABLE_SC" != "no" ]]
|
||||
do
|
||||
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"
|
||||
elif [ $ENABLE_SC = yes ]; then
|
||||
elif [ "$ENABLE_SC" = "yes" ]; then
|
||||
echo "Secure rooms are being enable"
|
||||
cat << P_SR >> $PROSODY_FILE
|
||||
VirtualHost "$DOMAIN"
|
||||
|
@ -425,6 +449,15 @@ P_SR
|
|||
fi
|
||||
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
|
||||
systemctl enable jibri
|
||||
systemctl enable jibri-xorg
|
||||
|
|
Loading…
Reference in New Issue