forked from switnet/quick-jibri-installer
Update upstream changes
This commit is contained in:
parent
72adbfbc71
commit
e4d772d345
|
@ -14,11 +14,11 @@ Bash installer for Jibri on *buntu 16.04 LTS based systems
|
||||||
* Webcam
|
* Webcam
|
||||||
|
|
||||||
## Custom changes
|
## Custom changes
|
||||||
* Disable welcome page
|
* Welcome page enabled
|
||||||
* Video muted by default
|
* Start with video muted by default
|
||||||
* Audio muted but admin
|
* Start with audio muted but moderator
|
||||||
* Rodentia static avatar (icon credit: sixsixfive)
|
* Rodentia static avatar (icon credit: sixsixfive)
|
||||||
* Required display name
|
* Set displayname as not required since jibri can't set it up.
|
||||||
* Language (es)
|
* Language (es)
|
||||||
|
|
||||||
Please note: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
|
Please note: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
|
||||||
|
|
|
@ -19,11 +19,15 @@ if [ "$APACHE_2" -eq 1 ] || [ "$NGINX" -eq 1 ]; then
|
||||||
echo "
|
echo "
|
||||||
Webserver already installed!
|
Webserver already installed!
|
||||||
"
|
"
|
||||||
|
elif [ "$APACHE_2" -eq 1 ] && [ "$NGINX" -eq 0 ]; then
|
||||||
|
|
||||||
|
apt -yqq install python3-certbot-apache
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "
|
echo "
|
||||||
Installing nginx as webserver!
|
Installing nginx as webserver!
|
||||||
"
|
"
|
||||||
apt -yqq install nginx
|
apt -yqq install nginx python3-certbot-nginx
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
check_snd_driver() {
|
check_snd_driver() {
|
||||||
|
@ -90,6 +94,7 @@ apt -yqq install \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
git \
|
git \
|
||||||
htop \
|
htop \
|
||||||
|
letsencrypt \
|
||||||
linux-image-extra-virtual \
|
linux-image-extra-virtual \
|
||||||
unzip \
|
unzip \
|
||||||
wget
|
wget
|
||||||
|
@ -145,10 +150,11 @@ else
|
||||||
rm -rf /tpm/chromedriver_linux64.zip
|
rm -rf /tpm/chromedriver_linux64.zip
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check Google Software Working
|
echo "
|
||||||
|
Check Google Software Working...
|
||||||
|
"
|
||||||
/usr/bin/google-chrome --version
|
/usr/bin/google-chrome --version
|
||||||
/usr/local/bin/chromedriver --version
|
/usr/local/bin/chromedriver --version | awk '{print$1,$2}'
|
||||||
|
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -156,7 +162,7 @@ echo '
|
||||||
########################################################################
|
########################################################################
|
||||||
'
|
'
|
||||||
# MEET / JIBRI SETUP
|
# MEET / JIBRI SETUP
|
||||||
DOMAIN=$(ls /etc/prosody/conf.d/ | grep -v localhost | cut -d "." -f "1,2,3")
|
DOMAIN=$(ls /etc/prosody/conf.d/ | grep -v localhost | cut -d "." -f "1-3")
|
||||||
JB_AUTH_PASS_FILE=/var/JB_AUTH_PASS.txt
|
JB_AUTH_PASS_FILE=/var/JB_AUTH_PASS.txt
|
||||||
JB_REC_PASS_FILE=/var/JB_REC_PASS.txt
|
JB_REC_PASS_FILE=/var/JB_REC_PASS.txt
|
||||||
PROSODY_FILE=/etc/prosody/conf.d/$DOMAIN.cfg.lua
|
PROSODY_FILE=/etc/prosody/conf.d/$DOMAIN.cfg.lua
|
||||||
|
@ -168,6 +174,13 @@ REC_DIR=/home/jibri/finalize_recording.sh
|
||||||
JB_NAME="Jibri Sessions"
|
JB_NAME="Jibri Sessions"
|
||||||
read -p "Jibri internal.auth.$DOMAIN password: "$'\n' -sr JB_AUTH_PASS
|
read -p "Jibri internal.auth.$DOMAIN password: "$'\n' -sr JB_AUTH_PASS
|
||||||
read -p "Jibri recorder.$DOMAIN password: "$'\n' -sr JB_REC_PASS
|
read -p "Jibri recorder.$DOMAIN password: "$'\n' -sr JB_REC_PASS
|
||||||
|
#Secure room initial user
|
||||||
|
read -p "Set username for secure room moderator: "$'\n' -r SEC_ROOM_USER
|
||||||
|
read -p "Secure room moderator password: "$'\n' -sr SEC_ROOM_PASS
|
||||||
|
echo "You'll be able to login Secure Room chat with '${SEC_ROOM_USER}' \
|
||||||
|
or '${SEC_ROOM_USER}@${DOMAIN}' using the password you just entered.
|
||||||
|
If you have issues with the password refer to your sysadmin."
|
||||||
|
read -p "Set sysadmin email: "$'\n' -r SYSADMIN_EMAIL
|
||||||
while [[ $ENABLE_DB != yes && $ENABLE_DB != no ]]
|
while [[ $ENABLE_DB != yes && $ENABLE_DB != no ]]
|
||||||
do
|
do
|
||||||
read -p "Do you want to setup the Dropbox feature: (yes or no)"$'\n' -r ENABLE_DB
|
read -p "Do you want to setup the Dropbox feature: (yes or no)"$'\n' -r ENABLE_DB
|
||||||
|
@ -186,6 +199,7 @@ elif [ $ENABLE_SSL = yes ]; then
|
||||||
echo "SSL will be enabled."
|
echo "SSL will be enabled."
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "$JB_AUTH_PASS" > $JB_AUTH_PASS_FILE
|
echo "$JB_AUTH_PASS" > $JB_AUTH_PASS_FILE
|
||||||
chmod 600 $JB_AUTH_PASS_FILE
|
chmod 600 $JB_AUTH_PASS_FILE
|
||||||
echo "$JB_REC_PASS" > $JB_REC_PASS_FILE
|
echo "$JB_REC_PASS" > $JB_REC_PASS_FILE
|
||||||
|
@ -194,6 +208,17 @@ JibriBrewery=JibriBrewery
|
||||||
INT_CONF=/usr/share/jitsi-meet/interface_config.js
|
INT_CONF=/usr/share/jitsi-meet/interface_config.js
|
||||||
WAN_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
|
WAN_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
|
||||||
|
|
||||||
|
ssl_wa() {
|
||||||
|
service $1 stop
|
||||||
|
letsencrypt certonly --standalone --renew-by-default --agree-tos --email $SYSADMIN_EMAIL -d $DOMAIN
|
||||||
|
sed -i "s|/etc/jitsi/meet/$DOMAIN.crt|/etc/letsencrypt/live/$DOMAIN/fullchain.pem|" $WS_CONF
|
||||||
|
sed -i "s|/etc/jitsi/meet/$DOMAIN.key|/etc/letsencrypt/live/$DOMAIN/privkey.pem|" $WS_CONF
|
||||||
|
service $1 restart
|
||||||
|
#Add cron
|
||||||
|
crontab -l | { cat; echo "@weekly certbot renew --${2}"; } | crontab -
|
||||||
|
crontab -l
|
||||||
|
}
|
||||||
|
|
||||||
enable_letsencrypt() {
|
enable_letsencrypt() {
|
||||||
if [ "$ENABLE_SSL" = "yes" ]; then
|
if [ "$ENABLE_SSL" = "yes" ]; then
|
||||||
echo '
|
echo '
|
||||||
|
@ -201,8 +226,18 @@ echo '
|
||||||
Starting LetsEncrypt configuration
|
Starting LetsEncrypt configuration
|
||||||
########################################################################
|
########################################################################
|
||||||
'
|
'
|
||||||
bash /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
|
#Disabled 'til fixed upstream
|
||||||
|
#bash /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
|
||||||
|
|
||||||
update_certbot
|
update_certbot
|
||||||
|
#SSL workaround
|
||||||
|
|
||||||
|
if [ "$APACHE_2" -eq 1 ]; then
|
||||||
|
ssl_wa apache2 apache
|
||||||
|
elif [ "$NGINX" -eq 1 ]; then
|
||||||
|
ssl_wa nginx nginx
|
||||||
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "SSL setup will be skipped."
|
echo "SSL setup will be skipped."
|
||||||
fi
|
fi
|
||||||
|
@ -328,7 +363,7 @@ exit 0
|
||||||
REC_DIR
|
REC_DIR
|
||||||
|
|
||||||
## JSON Config
|
## JSON Config
|
||||||
cp $CONF_JSON CONF_JSON.orig
|
cp $CONF_JSON $CONF_JSON.orig
|
||||||
cat << CONF_JSON > $CONF_JSON
|
cat << CONF_JSON > $CONF_JSON
|
||||||
{
|
{
|
||||||
"recording_directory":"$DIR_RECORD",
|
"recording_directory":"$DIR_RECORD",
|
||||||
|
@ -409,7 +444,6 @@ elif [ "$ENABLE_SA" = "yes" ] && [ -f /etc/apache2/sites-available/$DOMAIN.conf
|
||||||
wget https://switnet.net/static/avatar.png -O /usr/share/jitsi-meet/images/avatar2.png
|
wget https://switnet.net/static/avatar.png -O /usr/share/jitsi-meet/images/avatar2.png
|
||||||
WS_CONF=/etc/apache2/sites-available/$DOMAIN.conf
|
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
|
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_PREFIX/ s|false|\'https://$DOMAIN/avatar/\'|" $INT_CONF
|
||||||
sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" $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
|
elif [ "$ENABLE_SA" = "yes" ] && [ -f /etc/nginx/sites-available/$DOMAIN.conf ]; then
|
||||||
|
@ -421,7 +455,6 @@ elif [ "$ENABLE_SA" = "yes" ] && [ -f /etc/nginx/sites-available/$DOMAIN.conf ];
|
||||||
\
|
\
|
||||||
\ \ \ \ }\\
|
\ \ \ \ }\\
|
||||||
\ " $WS_CONF
|
\ " $WS_CONF
|
||||||
service nginx reload
|
|
||||||
sed -i "/RANDOM_AVATAR_URL_PREFIX/ s|false|\'http://$DOMAIN/avatar/\'|" $INT_CONF
|
sed -i "/RANDOM_AVATAR_URL_PREFIX/ s|false|\'http://$DOMAIN/avatar/\'|" $INT_CONF
|
||||||
sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" $INT_CONF
|
sed -i "/RANDOM_AVATAR_URL_SUFFIX/ s|false|\'.png\'|" $INT_CONF
|
||||||
else
|
else
|
||||||
|
@ -446,6 +479,7 @@ VirtualHost "guest.$DOMAIN"
|
||||||
authentication = "anonymous"
|
authentication = "anonymous"
|
||||||
c2s_require_encryption = false
|
c2s_require_encryption = false
|
||||||
P_SR
|
P_SR
|
||||||
|
prosodyctl register $SEC_ROOM_USER $DOMAIN $SEC_ROOM_PASS
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -458,11 +492,11 @@ sed -i "s|// startWithVideoMuted: false,|startWithVideoMuted: true,|" $MEET_CONF
|
||||||
#Start with audio muted but admin
|
#Start with audio muted but admin
|
||||||
sed -i "s|// startAudioMuted: 10,|startAudioMuted: 1,|" $MEET_CONF
|
sed -i "s|// startAudioMuted: 10,|startAudioMuted: 1,|" $MEET_CONF
|
||||||
|
|
||||||
#Disable welcome page
|
#Disable/enable welcome page
|
||||||
sed -i "s|enableWelcomePage: true|enableWelcomePage: false|" $MEET_CONF
|
sed -i "s|// enableWelcomePage: true,|enableWelcomePage: true,|" $MEET_CONF
|
||||||
|
|
||||||
#Make displayname required
|
#Set displayname as not required since jibri can't set it up.
|
||||||
sed -i "s|// requireDisplayName: true,|requireDisplayName: true,|" $MEET_CONF
|
sed -i "s|// requireDisplayName: true,|requireDisplayName: false,|" $MEET_CONF
|
||||||
|
|
||||||
#Enable jibri services
|
#Enable jibri services
|
||||||
systemctl enable jibri
|
systemctl enable jibri
|
||||||
|
|
Loading…
Reference in New Issue