v7.3.0 add excalidraw support, and other fixes.
This commit is contained in:
		
						commit
						de6217c74d
					
				| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
# These are supported funding model platforms
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
custom: ["https://www.paypal.me/switnet", switnet.net]
 | 
					 | 
				
			||||||
							
								
								
									
										10
									
								
								README.md
								
								
								
								
							
							
						
						
									
										10
									
								
								README.md
								
								
								
								
							| 
						 | 
					@ -11,7 +11,7 @@ As for our current latest release, as we have integrated more and more features,
 | 
				
			||||||
Login into your clean server, clone git repository and run the installer,
 | 
					Login into your clean server, clone git repository and run the installer,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
git clone https://github.com/switnet-ltd/quick-jibri-installer
 | 
					git clone https://forge.switnet.net/switnet/quick-jibri-installer
 | 
				
			||||||
cd quick-jibri-installer
 | 
					cd quick-jibri-installer
 | 
				
			||||||
sudo bash quick_jibri_installer.sh
 | 
					sudo bash quick_jibri_installer.sh
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
| 
						 | 
					@ -48,7 +48,7 @@ Check more details on our wiki.
 | 
				
			||||||
## Requirements
 | 
					## Requirements
 | 
				
			||||||
1. Clean VM/VPS/Server using a supported Ubuntu LTS
 | 
					1. Clean VM/VPS/Server using a supported Ubuntu LTS
 | 
				
			||||||
2. Valid domain with DNS record, **mandatory** for SSL certs via Let's Encrypt.
 | 
					2. Valid domain with DNS record, **mandatory** for SSL certs via Let's Encrypt.
 | 
				
			||||||
3. open ports for JMS interaction, [see wiki](https://github.com/switnet-ltd/quick-jibri-installer/wiki/Firewall).
 | 
					3. open ports for JMS interaction, [see wiki](https://forge.switnet.net/switnet/quick-jibri-installer/wiki/Firewall).
 | 
				
			||||||
4. Starting at 8 GB RAM / 4 Cores @ ~3.0GHz
 | 
					4. Starting at 8 GB RAM / 4 Cores @ ~3.0GHz
 | 
				
			||||||
    *  Adding resources as your audience or features you require, so your experience don't suffer from the lack of resources.
 | 
					    *  Adding resources as your audience or features you require, so your experience don't suffer from the lack of resources.
 | 
				
			||||||
5. Webcam
 | 
					5. Webcam
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ Feel free to use our `test-jibri-env.sh` tool to find some details on your curre
 | 
				
			||||||
* Enabled Session Recording via Jibri
 | 
					* Enabled Session Recording via Jibri
 | 
				
			||||||
  * Rename Jibri folder with name room + date.
 | 
					  * Rename Jibri folder with name room + date.
 | 
				
			||||||
  * Jibri node network.
 | 
					  * Jibri node network.
 | 
				
			||||||
    * Automatic Jibri nodes network sync ([see more](https://github.com/switnet-ltd/quick-jibri-installer/wiki/Setup-and-Jibri-Nodes)).
 | 
					    * Automatic Jibri nodes network sync ([see more](https://forge.switnet.net/switnet/quick-jibri-installer/wiki/Setup-and-Jibri-Nodes)).
 | 
				
			||||||
* JRA (Jibri Recordings Access) via Nextcloud
 | 
					* JRA (Jibri Recordings Access) via Nextcloud
 | 
				
			||||||
* Grafana Dashboard
 | 
					* Grafana Dashboard
 | 
				
			||||||
* Etherpad via docker install
 | 
					* Etherpad via docker install
 | 
				
			||||||
| 
						 | 
					@ -115,8 +115,8 @@ Feel free to use our `test-jibri-env.sh` tool to find some details on your curre
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Documentation
 | 
					## Documentation
 | 
				
			||||||
* Please check our [wiki](https://github.com/switnet-ltd/quick-jibri-installer/wiki) for further documentation.
 | 
					* Please check our [wiki](https://forge.switnet.net/switnet/quick-jibri-installer/wiki) for further documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SwITNet Ltd © - 2022, https://switnet.net/
 | 
					SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Jibri Node Aggregator
 | 
					# Jibri Node Aggregator
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 0_LAST EDITION TIME STAMP ###
 | 
					### 0_LAST EDITION TIME STAMP ###
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# JVB2 Node Aggregator
 | 
					# JVB2 Node Aggregator
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 0_LAST EDITION TIME STAMP ###
 | 
					### 0_LAST EDITION TIME STAMP ###
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Etherpad Installer for Jitsi Meet
 | 
					# Etherpad Installer for Jitsi Meet
 | 
				
			||||||
# SwITNet Ltd  © - 2020, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -115,7 +115,7 @@ elif [ -f "$WS_CONF" ]; then
 | 
				
			||||||
    sed -i "/# ensure all static content can always be found first/i \\\n" "$WS_CONF"
 | 
					    sed -i "/# ensure all static content can always be found first/i \\\n" "$WS_CONF"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "> No etherpad config done to server file, please report to:
 | 
					    echo "> No etherpad config done to server file, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure config.js
 | 
					# Configure config.js
 | 
				
			||||||
| 
						 | 
					@ -134,5 +134,5 @@ if nginx -t 2>/dev/null ; then
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "Please check your configuration, something may be wrong."
 | 
					    echo "Please check your configuration, something may be wrong."
 | 
				
			||||||
    echo "Will not try to enable etherpad nginx configuration, please report to:
 | 
					    echo "Will not try to enable etherpad nginx configuration, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,193 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# Excalidraw Jitsi Backend Installer
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Based on:
 | 
				
			||||||
 | 
					# - https://community.jitsi.org/t/118883
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Reset
 | 
				
			||||||
 | 
					Color_Off='\e[0m'       # Text Reset
 | 
				
			||||||
 | 
					# Regular Colors
 | 
				
			||||||
 | 
					Black='\e[0;30m'        # Black
 | 
				
			||||||
 | 
					Red='\e[0;31m'          # Red
 | 
				
			||||||
 | 
					Green='\e[0;32m'        # Green
 | 
				
			||||||
 | 
					Yellow='\e[0;33m'       # Yellow
 | 
				
			||||||
 | 
					Blue='\e[0;34m'         # Blue
 | 
				
			||||||
 | 
					Purple='\e[0;35m'       # Purple
 | 
				
			||||||
 | 
					Cyan='\e[0;36m'         # Cyan
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					printwc() {
 | 
				
			||||||
 | 
					    printf "%b$2%b" "$1" "${Color_Off}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					print_title() {
 | 
				
			||||||
 | 
					printwc "${Blue}" "\n#--------------------------------------------------"
 | 
				
			||||||
 | 
					printwc "${Blue}" "\n# $1"
 | 
				
			||||||
 | 
					printwc "${Blue}" "\n#--------------------------------------------------\n"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while getopts m: option
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
						case "${option}"
 | 
				
			||||||
 | 
						in
 | 
				
			||||||
 | 
							m) MODE=${OPTARG};;
 | 
				
			||||||
 | 
							\?) echo "Usage: sudo bash ./$0 [-m debug]" && exit;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#DEBUG
 | 
				
			||||||
 | 
					if [ "$MODE" = "debug" ]; then
 | 
				
			||||||
 | 
					set -x
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ! [ "$(id -u)" = 0 ]; then
 | 
				
			||||||
 | 
					   echo "You need to be root or have sudo privileges!"
 | 
				
			||||||
 | 
					   exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					clear
 | 
				
			||||||
 | 
					echo -e '\n
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					                  Excalidraw Jitsi Backend Installer
 | 
				
			||||||
 | 
					########################################################################
 | 
				
			||||||
 | 
					                    by Software, IT & Networks Ltd
 | 
				
			||||||
 | 
					\n'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DOMAIN="$(find /etc/prosody/conf.d/ -name \*.lua|awk -F'.cfg' '!/localhost/{print $1}'|xargs basename)"
 | 
				
			||||||
 | 
					WS_CONF="/etc/nginx/sites-available/$DOMAIN.conf"
 | 
				
			||||||
 | 
					PROSODY_FILE="/etc/prosody/conf.d/$DOMAIN.cfg.lua"
 | 
				
			||||||
 | 
					MEET_CONF="/etc/jitsi/meet/$DOMAIN-config.js"
 | 
				
			||||||
 | 
					WS_MATCH1='# ensure all static content can always be found first'
 | 
				
			||||||
 | 
					PROS_MATCH1='"av_moderation";'
 | 
				
			||||||
 | 
					PROS_MATCH2='breakout_rooms_muc = "breakout.'
 | 
				
			||||||
 | 
					PROS_MATCH3='VirtualHost "recorder.'
 | 
				
			||||||
 | 
					CONFIG_MATCH1='Settings for the GIPHY integration'
 | 
				
			||||||
 | 
					EXCALIDRAW_HOME="/opt/excalidraw"
 | 
				
			||||||
 | 
					EXCAL_MATCH1="prometheus.metrics(io"
 | 
				
			||||||
 | 
					EXCAL_NEW_PORT="9091"
 | 
				
			||||||
 | 
					EXCAL_PORT_FILE="$EXCALIDRAW_HOME/backend/src/index.ts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Test for matches
 | 
				
			||||||
 | 
					test_match() {
 | 
				
			||||||
 | 
					if grep -q "$1" "$2" ; then
 | 
				
			||||||
 | 
					    echo "$(basename "$2") - OK..."
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "$(basename "$2"), FAIL..."
 | 
				
			||||||
 | 
					    echo "Please report this to https://forge.switnet.net/switnet/quick-jibri-installer"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					# Make sure we can rely on the match strings.
 | 
				
			||||||
 | 
					printf "Testing match strings on config files.\n"
 | 
				
			||||||
 | 
					test_match "$WS_MATCH1" "$WS_CONF"
 | 
				
			||||||
 | 
					test_match "$PROS_MATCH1" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					test_match "$PROS_MATCH2" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					test_match "$PROS_MATCH3" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					test_match "$PROS_MATCH3" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					test_match "$CONFIG_MATCH1" "$MEET_CONF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Setup excalidraw backend."
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					adduser --home "$EXCALIDRAW_HOME" --disabled-password --gecos "" excalidraw
 | 
				
			||||||
 | 
					git clone https://github.com/jitsi/excalidraw-backend "$EXCALIDRAW_HOME/backend"
 | 
				
			||||||
 | 
					test_match "$EXCAL_MATCH1" "$EXCAL_PORT_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					chown -R excalidraw:excalidraw "$EXCALIDRAW_HOME"
 | 
				
			||||||
 | 
					cd "$EXCALIDRAW_HOME/backend"
 | 
				
			||||||
 | 
					sudo -u excalidraw cp .env.development .env.production
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use documented port to get some sort of standarization.
 | 
				
			||||||
 | 
					if sed -n "/$EXCAL_MATCH1/,/});/p" "$EXCAL_PORT_FILE" |grep -q port: ; then
 | 
				
			||||||
 | 
					    echo "> Update predefined port for metrics to $EXCAL_NEW_PORT\n"
 | 
				
			||||||
 | 
					    sed -i "/$EXCAL_MATCH1/,/});/s|port:.*,|port: $EXCAL_NEW_PORT,|" "$EXCAL_PORT_FILE"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "> Define new port from default to $EXCAL_NEW_PORT\n"
 | 
				
			||||||
 | 
					    sed -i  "/$EXCAL_MATCH1/a \ \ \ \ port: $EXCAL_NEW_PORT," "$EXCAL_PORT_FILE"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					printf "\nInstalling npm backend.\n"
 | 
				
			||||||
 | 
					sudo -u excalidraw npm install
 | 
				
			||||||
 | 
					sudo -u excalidraw npm run build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					print_title "Setup system & jitsi config files."
 | 
				
			||||||
 | 
					#--------------------------------------------------
 | 
				
			||||||
 | 
					# Enable websocket on nginx
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \\\n" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ location = /socket.io/ {" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ proxy_pass http://127.0.0.1:3002/socket.io/?\$args;" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ proxy_http_version 1.1;" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ proxy_set_header Upgrade \$http_upgrade;" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ proxy_set_header Connection \"upgrade\";" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ proxy_set_header Host \$http_host;" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ tcp_nodelay on;" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \ \ \ \ }" "$WS_CONF"
 | 
				
			||||||
 | 
					sed -i "/$WS_MATCH1/i \\\n" "$WS_CONF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if grep -rq room_metadata /etc/prosody/conf.d/ ;then
 | 
				
			||||||
 | 
					    echo "> Prosody seems to be already configured."
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "> Setting up prosody for whiteboard..."
 | 
				
			||||||
 | 
					    # Modules enabled
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH1/a \ \ \ \ \ \ \ \ \"room_metadata\";" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					    # Define internal component
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH2/a \ \ \ \ room_metadata_component = \"metadata.$DOMAIN\"" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					    # Register component
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH3/i \\\n" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH3/i Component \"metadata.$DOMAIN\" \"room_metadata_component\"" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH3/i \ \ \ \ muc_component = \"conference.$DOMAIN\"" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH3/i \ \ \ \ breakout_rooms_component = \"breakout.$DOMAIN\"" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					    sed -i "/$PROS_MATCH3/i \\\n" "$PROSODY_FILE"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					printf "\n# Checking for whitebord setup at $(basename "$MEET_CONF").\n"
 | 
				
			||||||
 | 
					if [ -z "$(sed -n '/whiteboard: {/,/},/p' "$MEET_CONF")" ]; then
 | 
				
			||||||
 | 
					    echo "> No present configuration on current config.js file"
 | 
				
			||||||
 | 
					    sed -i "/$CONFIG_MATCH1/i \\\n" "$MEET_CONF"
 | 
				
			||||||
 | 
					    sed -i "/$CONFIG_MATCH1/i \ \ \ \ whiteboard: {" "$MEET_CONF"
 | 
				
			||||||
 | 
					    sed -i "/$CONFIG_MATCH1/i \ \ \ \ \ \ \ \ enabled: true," "$MEET_CONF"
 | 
				
			||||||
 | 
					    sed -i "/$CONFIG_MATCH1/i \ \ \ \ \ \ \ \ collabServerBaseUrl: 'https://$DOMAIN'" "$MEET_CONF"
 | 
				
			||||||
 | 
					    sed -i "/$CONFIG_MATCH1/i \ \ \ \ }," "$MEET_CONF"
 | 
				
			||||||
 | 
					    sed -i "/$CONFIG_MATCH1/i \\\n" "$MEET_CONF"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "> Enabling configuration on current config.js file"
 | 
				
			||||||
 | 
					    sed -i "/whiteboard: {/,/},/s|// ||" "$MEET_CONF"
 | 
				
			||||||
 | 
					    sed -i "/collabServerBaseUrl:/s|'https://.*'|'https://$DOMAIN'|" "$MEET_CONF"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if  sed -n '/toolbarButtons: \[/,/\],/p' "$MEET_CONF" | \
 | 
				
			||||||
 | 
					    grep -v '//'| grep -q whiteboard ; then
 | 
				
			||||||
 | 
					    echo "> Whiteboard toolbar already enabled."
 | 
				
			||||||
 | 
					elif sed -n '/toolbarButtons: \[/,/\],/p' "$MEET_CONF" | \
 | 
				
			||||||
 | 
					     grep -v '//'|grep -q toolbarButtons: ; then 
 | 
				
			||||||
 | 
					    echo "> Enabling whiteboard toolbar."
 | 
				
			||||||
 | 
					    sed -i "/toolbarButtons:/a \ \ \ \ \ \ \ 'whiteboard'," "$MEET_CONF"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "> ToolbarButtons not customized, whiteboard should be enabled by default,"
 | 
				
			||||||
 | 
					    echo "  otherwise, please report to: https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					printf "\n# Add systemd service\n"
 | 
				
			||||||
 | 
					cat << EOF > /etc/systemd/system/excalidraw.service
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=Excalidraw backend
 | 
				
			||||||
 | 
					After=network-online.target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					User=excalidraw
 | 
				
			||||||
 | 
					Group=excalidraw
 | 
				
			||||||
 | 
					WorkingDirectory=$EXCALIDRAW_HOME/backend
 | 
				
			||||||
 | 
					ExecStart=npm start
 | 
				
			||||||
 | 
					Restart=always
 | 
				
			||||||
 | 
					RestartSec=5s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=multi-user.target
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					systemctl enable excalidraw.service
 | 
				
			||||||
 | 
					systemctl start excalidraw.service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					printwc "${Green}" "\nExcalidraw setup complete!\n"
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
# by "mephisto"
 | 
					# by "mephisto"
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Igor Kerstges © - 2021
 | 
					# Igor Kerstges © - 2021
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -167,7 +167,7 @@ if [ -f "$WS_CONF" ]; then
 | 
				
			||||||
    systemctl restart nginx
 | 
					    systemctl restart nginx
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "No app configuration done to server file, please report to:
 | 
					    echo "No app configuration done to server file, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "
 | 
					echo "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Jitsi Meet recurring upgrader and customization keeper
 | 
					# Jitsi Meet recurring upgrader and customization keeper
 | 
				
			||||||
# for Debian/*buntu binaries.
 | 
					# for Debian/*buntu binaries.
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GNU GPLv3 or later.
 | 
					# GNU GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								jm-bm.sh
								
								
								
								
							
							
						
						
									
										2
									
								
								jm-bm.sh
								
								
								
								
							| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Jitsi Meet brandless mode
 | 
					# Jitsi Meet brandless mode
 | 
				
			||||||
# for Debian/*buntu binaries.
 | 
					# for Debian/*buntu binaries.
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GNU GPLv3 or later.
 | 
					# GNU GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# JRA (Jibri Recordings Access) via Nextcloud
 | 
					# JRA (Jibri Recordings Access) via Nextcloud
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ exit_if_not_installed() {
 | 
				
			||||||
if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")" != "1" ]; then
 | 
					if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")" != "1" ]; then
 | 
				
			||||||
    echo " This instance doesn't have $1 installed, exiting..."
 | 
					    echo " This instance doesn't have $1 installed, exiting..."
 | 
				
			||||||
    echo " If you think this is an error, please report to:
 | 
					    echo " If you think this is an error, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues "
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues "
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ PHP_FPM_DIR="/etc/php/$PHPVER/fpm"
 | 
				
			||||||
PHP_INI="$PHP_FPM_DIR/php.ini"
 | 
					PHP_INI="$PHP_FPM_DIR/php.ini"
 | 
				
			||||||
PHP_CONF="/etc/php/$PHPVER/fpm/pool.d/www.conf"
 | 
					PHP_CONF="/etc/php/$PHPVER/fpm/pool.d/www.conf"
 | 
				
			||||||
NC_NGINX_SSL_PORT="$(grep "listen 44" /etc/nginx/sites-available/"$DOMAIN".conf | awk '{print$2}')"
 | 
					NC_NGINX_SSL_PORT="$(grep "listen 44" /etc/nginx/sites-available/"$DOMAIN".conf | awk '{print$2}')"
 | 
				
			||||||
[ -z $NC_NGINX_SSL_PORT ] && NC_NGINX_SSL_PORT="443"
 | 
					[ -z "$NC_NGINX_SSL_PORT" ] && NC_NGINX_SSL_PORT="443"
 | 
				
			||||||
NC_REPO="https://download.nextcloud.com/server/releases"
 | 
					NC_REPO="https://download.nextcloud.com/server/releases"
 | 
				
			||||||
NCVERSION="$(curl -s -m 900 $NC_REPO/ | sed --silent 's/.*href="nextcloud-\([^"]\+\).zip.asc".*/\1/p' | sort --version-sort | tail -1)"
 | 
					NCVERSION="$(curl -s -m 900 $NC_REPO/ | sed --silent 's/.*href="nextcloud-\([^"]\+\).zip.asc".*/\1/p' | sort --version-sort | tail -1)"
 | 
				
			||||||
STABLEVERSION="nextcloud-$NCVERSION"
 | 
					STABLEVERSION="nextcloud-$NCVERSION"
 | 
				
			||||||
| 
						 | 
					@ -63,7 +63,6 @@ NC_DB_PASSWD="$(tr -dc "a-zA-Z0-9#_*=" < /dev/urandom | fold -w 14 | head -n1)"
 | 
				
			||||||
DIR_RECORD="$(awk  -F '"' '/RECORDING/{print$2}'  /home/jibri/finalize_recording.sh|awk 'NR==1{print$1}')"
 | 
					DIR_RECORD="$(awk  -F '"' '/RECORDING/{print$2}'  /home/jibri/finalize_recording.sh|awk 'NR==1{print$1}')"
 | 
				
			||||||
REDIS_CONF="/etc/redis/redis.conf"
 | 
					REDIS_CONF="/etc/redis/redis.conf"
 | 
				
			||||||
JITSI_MEET_PROXY="/etc/nginx/modules-enabled/60-jitsi-meet.conf"
 | 
					JITSI_MEET_PROXY="/etc/nginx/modules-enabled/60-jitsi-meet.conf"
 | 
				
			||||||
 | 
					 | 
				
			||||||
[ -f "$JITSI_MEET_PROXY" ] && PREAD_PROXY=$(grep -nr "preread_server_name" "$JITSI_MEET_PROXY" | cut -d ":" -f1)
 | 
					[ -f "$JITSI_MEET_PROXY" ] && PREAD_PROXY=$(grep -nr "preread_server_name" "$JITSI_MEET_PROXY" | cut -d ":" -f1)
 | 
				
			||||||
PUBLIC_IP="$(dig +short myip.opendns.com @resolver1.opendns.com)"
 | 
					PUBLIC_IP="$(dig +short myip.opendns.com @resolver1.opendns.com)"
 | 
				
			||||||
ISO3166_CODE=TBD
 | 
					ISO3166_CODE=TBD
 | 
				
			||||||
| 
						 | 
					@ -79,7 +78,7 @@ mv "$TMP_GPG_REPO"/"$1".gpg /etc/apt/trusted.gpg.d/
 | 
				
			||||||
install_aval_package() {
 | 
					install_aval_package() {
 | 
				
			||||||
for i in $1
 | 
					for i in $1
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
     if [ -z "$(apt-cache madison $i 2>/dev/null)" ]; then
 | 
					     if [ -z "$(apt-cache madison "$i" 2>/dev/null)" ]; then
 | 
				
			||||||
     echo " > Package $i not available on repo."
 | 
					     echo " > Package $i not available on repo."
 | 
				
			||||||
     else
 | 
					     else
 | 
				
			||||||
     echo " > Add package $i to the install list"
 | 
					     echo " > Add package $i to the install list"
 | 
				
			||||||
| 
						 | 
					@ -94,7 +93,7 @@ exit_ifinstalled() {
 | 
				
			||||||
if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")" == "1" ]; then
 | 
					if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")" == "1" ]; then
 | 
				
			||||||
    echo " This instance already has $1 installed, exiting..."
 | 
					    echo " This instance already has $1 installed, exiting..."
 | 
				
			||||||
    echo " If you think this is an error, please report to:
 | 
					    echo " If you think this is an error, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues "
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues "
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -211,27 +210,26 @@ exit_ifinstalled postgresql-"$PSGVER"
 | 
				
			||||||
install_ifnot postgresql-"$PSGVER"
 | 
					install_ifnot postgresql-"$PSGVER"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# PHP 7.4 / 8.1
 | 
					# PHP 7.4 / 8.1
 | 
				
			||||||
 | 
					 | 
				
			||||||
add_php
 | 
					add_php
 | 
				
			||||||
install_aval_package " \
 | 
					install_aval_package " \
 | 
				
			||||||
            imagemagick \
 | 
					            imagemagick \
 | 
				
			||||||
            php"$PHPVER"-fpm \
 | 
					            php$PHPVER-fpm \
 | 
				
			||||||
            php"$PHPVER"-bcmath \
 | 
					            php$PHPVER-bcmath \
 | 
				
			||||||
            php"$PHPVER"-bz2 \
 | 
					            php$PHPVER-bz2 \
 | 
				
			||||||
            php"$PHPVER"-curl \
 | 
					            php$PHPVER-curl \
 | 
				
			||||||
            php"$PHPVER"-gd \
 | 
					            php$PHPVER-gd \
 | 
				
			||||||
            php"$PHPVER"-gmp \
 | 
					            php$PHPVER-gmp \
 | 
				
			||||||
            php"$PHPVER"-imagick \
 | 
					            php$PHPVER-imagick \
 | 
				
			||||||
            php"$PHPVER"-intl \
 | 
					            php$PHPVER-intl \
 | 
				
			||||||
            php"$PHPVER"-json \
 | 
					            php$PHPVER-json \
 | 
				
			||||||
            php"$PHPVER"-ldap \
 | 
					            php$PHPVER-ldap \
 | 
				
			||||||
            php"$PHPVER"-mbstring \
 | 
					            php$PHPVER-mbstring \
 | 
				
			||||||
            php"$PHPVER"-pgsql \
 | 
					            php$PHPVER-pgsql \
 | 
				
			||||||
            php"$PHPVER"-redis \
 | 
					            php$PHPVER-redis \
 | 
				
			||||||
            php"$PHPVER"-soap \
 | 
					            php$PHPVER-soap \
 | 
				
			||||||
            php"$PHPVER"-xml \
 | 
					            php$PHPVER-xml \
 | 
				
			||||||
            php"$PHPVER"-xmlrpc \
 | 
					            php$PHPVER-xmlrpc \
 | 
				
			||||||
            php"$PHPVER"-zip \
 | 
					            php$PHPVER-zip \
 | 
				
			||||||
            redis-server \
 | 
					            redis-server \
 | 
				
			||||||
            unzip \
 | 
					            unzip \
 | 
				
			||||||
            "
 | 
					            "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Custom High Performance Jitsi conf
 | 
					# Custom High Performance Jitsi conf
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					@ -87,7 +87,7 @@ Overview:
 | 
				
			||||||
echo "# Note: As for January 2021 Firefox can't handle correctly widescreen sizing
 | 
					echo "# Note: As for January 2021 Firefox can't handle correctly widescreen sizing
 | 
				
			||||||
# on lower resolution than HD (nHD & qHD), setting as incompatible for now.
 | 
					# on lower resolution than HD (nHD & qHD), setting as incompatible for now.
 | 
				
			||||||
# (If you know this is no longer the case. Please report it to \
 | 
					# (If you know this is no longer the case. Please report it to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues)
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues)
 | 
				
			||||||
"
 | 
					"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Tools to consider
 | 
					#Tools to consider
 | 
				
			||||||
| 
						 | 
					@ -310,7 +310,7 @@ else
 | 
				
			||||||
echo -e "\n  Watch out!, there seems to be an issue on $MEET_CONF_HP line:
 | 
					echo -e "\n  Watch out!, there seems to be an issue on $MEET_CONF_HP line:
 | 
				
			||||||
    $CHECKJS_MEET_CHP
 | 
					    $CHECKJS_MEET_CHP
 | 
				
			||||||
  Most of the times this is due upstream changes, please report to
 | 
					  Most of the times this is due upstream changes, please report to
 | 
				
			||||||
  https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					  https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
CHECKJS_INT_CHP="$(esvalidate "$INT_CONF_JS_HP"| cut -d ":" -f2)"
 | 
					CHECKJS_INT_CHP="$(esvalidate "$INT_CONF_JS_HP"| cut -d ":" -f2)"
 | 
				
			||||||
if [ -z "$CHECKJS_INT_CHP" ]; then
 | 
					if [ -z "$CHECKJS_INT_CHP" ]; then
 | 
				
			||||||
| 
						 | 
					@ -319,7 +319,7 @@ else
 | 
				
			||||||
echo -e "\n  Watch out!, there seems to be an issue on $INT_CONF_JS_HP line:
 | 
					echo -e "\n  Watch out!, there seems to be an issue on $INT_CONF_JS_HP line:
 | 
				
			||||||
    $CHECKJS_INT_CHP
 | 
					    $CHECKJS_INT_CHP
 | 
				
			||||||
  Most of the times this is due upstream changes, please report to
 | 
					  Most of the times this is due upstream changes, please report to
 | 
				
			||||||
  https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					  https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sed -i "s|$MEET_CONF|$MEET_CONF_HP|g" "$WS_CONF"
 | 
					sed -i "s|$MEET_CONF|$MEET_CONF_HP|g" "$WS_CONF"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Custom Selenium Grid-Node fro Jitsi Meet
 | 
					# Custom Selenium Grid-Node fro Jitsi Meet
 | 
				
			||||||
# Pandian © - https://community.jitsi.org/u/Pandian
 | 
					# Pandian © - https://community.jitsi.org/u/Pandian
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# System-tune-up to remove system software restrictions on a huge load of connections.
 | 
					# System-tune-up to remove system software restrictions on a huge load of connections.
 | 
				
			||||||
# Be aware that hardware/infrastructure resources are the most common limiters.
 | 
					# Be aware that hardware/infrastructure resources are the most common limiters.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# JWT Mode Setup
 | 
					# JWT Mode Setup
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Quick Jibri Installer - *buntu (LTS) based systems.
 | 
					# Quick Jibri Installer - *buntu (LTS) based systems.
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
echo "Started at $(date +'%Y-%m-%d %H:%M:%S')" >> qj-installer.log
 | 
					echo "Started at $(date +'%Y-%m-%d %H:%M:%S')" >> qj-installer.log
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")"
 | 
				
			||||||
This instance already has $1 installed, exiting...
 | 
					This instance already has $1 installed, exiting...
 | 
				
			||||||
Please try again on a clean system.
 | 
					Please try again on a clean system.
 | 
				
			||||||
 If you think this is an error, please report to:
 | 
					 If you think this is an error, please report to:
 | 
				
			||||||
  -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					  -> https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -62,10 +62,9 @@ if [ "$DIST" = "$1" ]; then
 | 
				
			||||||
  DIST="$2"
 | 
					  DIST="$2"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#Trisquel distro renaming
 | 
					#Trisquel distro upstream referencing.
 | 
				
			||||||
rename_distro flidas xenial
 | 
					 | 
				
			||||||
rename_distro etiona bionic
 | 
					 | 
				
			||||||
rename_distro nabia  focal
 | 
					rename_distro nabia  focal
 | 
				
			||||||
 | 
					rename_distro aramo  jammy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install_ifnot() {
 | 
					install_ifnot() {
 | 
				
			||||||
if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")" == "1" ]; then
 | 
					if [ "$(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed")" == "1" ]; then
 | 
				
			||||||
| 
						 | 
					@ -143,8 +142,17 @@ printwc "${Blue}" "\n#--------------------------------------------------"
 | 
				
			||||||
printwc "${Blue}" "\n# $1"
 | 
					printwc "${Blue}" "\n# $1"
 | 
				
			||||||
printwc "${Blue}" "\n#--------------------------------------------------\n"
 | 
					printwc "${Blue}" "\n#--------------------------------------------------\n"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					test_match() {
 | 
				
			||||||
 | 
					if grep -q "$1" "$2" ; then
 | 
				
			||||||
 | 
					    echo "$(basename "$2") - OK..."
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "$(basename "$2"), FAIL..."
 | 
				
			||||||
 | 
					    echo "Please report this to https://forge.switnet.net/switnet/quick-jibri-installer"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
clear
 | 
					clear
 | 
				
			||||||
printf '
 | 
					printwc "${Green}" '
 | 
				
			||||||
########################################################################
 | 
					########################################################################
 | 
				
			||||||
                    Welcome to Jitsi/Jibri Installer
 | 
					                    Welcome to Jitsi/Jibri Installer
 | 
				
			||||||
########################################################################
 | 
					########################################################################
 | 
				
			||||||
| 
						 | 
					@ -153,13 +161,15 @@ printf '
 | 
				
			||||||
Featuring:
 | 
					Featuring:
 | 
				
			||||||
- Jibri Recording and YouTube Streaming
 | 
					- Jibri Recording and YouTube Streaming
 | 
				
			||||||
- Jibri Recordings Access via Nextcloud
 | 
					- Jibri Recordings Access via Nextcloud
 | 
				
			||||||
- Jigasi Transcription (Advanced)
 | 
					- Grafana Statistics
 | 
				
			||||||
 | 
					- Etherpad
 | 
				
			||||||
 | 
					- Whiteboard
 | 
				
			||||||
- Customized brandless mode
 | 
					- Customized brandless mode
 | 
				
			||||||
- Recurring changes updater
 | 
					- Recurring updater
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Learn more about these at,
 | 
					Learn more about these at,
 | 
				
			||||||
Main repository: https://github.com/switnet-ltd/quick-jibri-installer
 | 
					Main repository: https://forge.switnet.net/switnet/quick-jibri-installer
 | 
				
			||||||
Wiki and documentation: https://github.com/switnet-ltd/quick-jibri-installer/wiki\n'
 | 
					Wiki and documentation: https://forge.switnet.net/switnet/quick-jibri-installer/wiki\n\n'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
read -n 1 -s -r -p "Press any key to continue..."$'\n'
 | 
					read -n 1 -s -r -p "Press any key to continue..."$'\n'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,11 +248,13 @@ echo 'This server will likely have issues due the lack of resources.
 | 
				
			||||||
If you plan to enable other components such as,
 | 
					If you plan to enable other components such as,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - JRA via Nextcloud
 | 
					 - JRA via Nextcloud
 | 
				
			||||||
 - Jigasi Transcriber
 | 
					 - Grafana
 | 
				
			||||||
 - Additional Jibri Nodes
 | 
					 - Etherpad
 | 
				
			||||||
 - others.
 | 
					 - Whiteboards
 | 
				
			||||||
 | 
					 - Connect additional Jibri Nodes
 | 
				
			||||||
 | 
					 - Others
 | 
				
			||||||
 | 
					
 | 
				
			||||||
>>> We higly recommend to increase resources of this server. <<<
 | 
					>>> We highly recommend to increase resources of this server. <<<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For now we advice to disable the Jibri service locally and add an external
 | 
					For now we advice to disable the Jibri service locally and add an external
 | 
				
			||||||
Jibri node once this installation has finished, using our script:
 | 
					Jibri node once this installation has finished, using our script:
 | 
				
			||||||
| 
						 | 
					@ -364,7 +376,7 @@ apt-get -y install \
 | 
				
			||||||
                certbot
 | 
					                certbot
 | 
				
			||||||
    if [ "$(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed")" == "1"  ]; then
 | 
					    if [ "$(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed")" == "1"  ]; then
 | 
				
			||||||
        echo "# Disable pre-installed ufw, more on firewall see:
 | 
					        echo "# Disable pre-installed ufw, more on firewall see:
 | 
				
			||||||
    > https://github.com/switnet-ltd/quick-jibri-installer/wiki/Firewall"
 | 
					    > https://forge.switnet.net/switnet/quick-jibri-installer/wiki/Firewall"
 | 
				
			||||||
        ufw disable
 | 
					        ufw disable
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
| 
						 | 
					@ -498,12 +510,19 @@ LE_RENEW_LOG="/var/log/letsencrypt/renew.log"
 | 
				
			||||||
MOD_LISTU="https://prosody.im/files/mod_listusers.lua"
 | 
					MOD_LISTU="https://prosody.im/files/mod_listusers.lua"
 | 
				
			||||||
MOD_LIST_FILE="/usr/lib/prosody/modules/mod_listusers.lua"
 | 
					MOD_LIST_FILE="/usr/lib/prosody/modules/mod_listusers.lua"
 | 
				
			||||||
ENABLE_SA="yes"
 | 
					ENABLE_SA="yes"
 | 
				
			||||||
GC_SDK_REL_FILE="http://packages.cloud.google.com/apt/dists/cloud-sdk-$(lsb_release -sc)/Release"
 | 
					 | 
				
			||||||
MJS_RAND_TAIL="$(tr -dc "a-zA-Z0-9" < /dev/urandom | fold -w 4 | head -n1)"
 | 
					MJS_RAND_TAIL="$(tr -dc "a-zA-Z0-9" < /dev/urandom | fold -w 4 | head -n1)"
 | 
				
			||||||
MJS_USER="jbsync_$MJS_RAND_TAIL"
 | 
					MJS_USER="jbsync_$MJS_RAND_TAIL"
 | 
				
			||||||
MJS_USER_PASS="$(tr -dc "a-zA-Z0-9#_*=" < /dev/urandom | fold -w 32 | head -n1)"
 | 
					MJS_USER_PASS="$(tr -dc "a-zA-Z0-9#_*=" < /dev/urandom | fold -w 32 | head -n1)"
 | 
				
			||||||
FQDN_HOST="fqdn"
 | 
					FQDN_HOST="fqdn"
 | 
				
			||||||
JIBRI_XORG_CONF="/etc/jitsi/jibri/xorg-video-dummy.conf"
 | 
					JIBRI_XORG_CONF="/etc/jitsi/jibri/xorg-video-dummy.conf"
 | 
				
			||||||
 | 
					WS_MATCH1="# ensure all static content can always be found first"
 | 
				
			||||||
 | 
					MEET_MATCH1="disable simulcast support."
 | 
				
			||||||
 | 
					#GC_SDK_REL_FILE="http://packages.cloud.google.com/apt/dists/cloud-sdk-$(lsb_release -sc)/Release"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make sure we can rely on the match strings.
 | 
				
			||||||
 | 
					printf "> Testing match strings on config files.\n"
 | 
				
			||||||
 | 
					test_match "$WS_MATCH1" "$WS_CONF"
 | 
				
			||||||
 | 
					test_match "$MEET_MATCH1" "$MEET_CONF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Rename hostname for jitsi server
 | 
					# Rename hostname for jitsi server
 | 
				
			||||||
while [ "$FQDN_HOST" != "yes" ] && [ "$FQDN_HOST" != "no" ] && [ -n "$FQDN_HOST" ]
 | 
					while [ "$FQDN_HOST" != "yes" ] && [ "$FQDN_HOST" != "no" ] && [ -n "$FQDN_HOST" ]
 | 
				
			||||||
| 
						 | 
					@ -648,7 +667,7 @@ fi
 | 
				
			||||||
while [ "$ENABLE_NC_ACCESS" != "yes" ] && [ "$ENABLE_NC_ACCESS" != "no" ]
 | 
					while [ "$ENABLE_NC_ACCESS" != "yes" ] && [ "$ENABLE_NC_ACCESS" != "no" ]
 | 
				
			||||||
do
 | 
					do
 | 
				
			||||||
    read -p "> Do you want to setup Jibri Records Access via Nextcloud: (yes or no)
 | 
					    read -p "> Do you want to setup Jibri Records Access via Nextcloud: (yes or no)
 | 
				
			||||||
( Please check requirements at: https://github.com/switnet-ltd/quick-jibri-installer )$NL" -r ENABLE_NC_ACCESS
 | 
					( Please check requirements at: https://forge.switnet.net/switnet/quick-jibri-installer )$NL" -r ENABLE_NC_ACCESS
 | 
				
			||||||
    if [ "$ENABLE_NC_ACCESS" = "no" ]; then
 | 
					    if [ "$ENABLE_NC_ACCESS" = "no" ]; then
 | 
				
			||||||
        printf " - JRA via Nextcloud won't be enabled.\n\n"
 | 
					        printf " - JRA via Nextcloud won't be enabled.\n\n"
 | 
				
			||||||
    elif [ "$ENABLE_NC_ACCESS" = "yes" ]; then
 | 
					    elif [ "$ENABLE_NC_ACCESS" = "yes" ]; then
 | 
				
			||||||
| 
						 | 
					@ -656,31 +675,31 @@ do
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
sleep .1
 | 
					sleep .1
 | 
				
			||||||
#Jigasi
 | 
					##Jigasi
 | 
				
			||||||
if [ "$(curl -s -o /dev/null -w "%{http_code}" "$GC_SDK_REL_FILE" )" == "404" ]; then
 | 
					#if [ "$(curl -s -o /dev/null -w "%{http_code}" "$GC_SDK_REL_FILE" )" == "404" ]; then
 | 
				
			||||||
    printf "> Sorry Google SDK doesn't have support yet for %s,
 | 
					    #printf "> Sorry Google SDK doesn't have support yet for %s,
 | 
				
			||||||
    thus, Jigasi Transcript can't be enable.\n\n" "$(lsb_release -sd)"
 | 
					    #thus, Jigasi Transcript can't be enable.\n\n" "$(lsb_release -sd)"
 | 
				
			||||||
elif [ "$(curl -s -o /dev/null -w "%{http_code}" "$GC_SDK_REL_FILE" )" == "200" ]; then
 | 
					#elif [ "$(curl -s -o /dev/null -w "%{http_code}" "$GC_SDK_REL_FILE" )" == "200" ]; then
 | 
				
			||||||
    while [ "$ENABLE_TRANSCRIPT" != "yes" ] && [ "$ENABLE_TRANSCRIPT" != "no" ]
 | 
					    #while [ "$ENABLE_TRANSCRIPT" != "yes" ] && [ "$ENABLE_TRANSCRIPT" != "no" ]
 | 
				
			||||||
    do
 | 
					    #do
 | 
				
			||||||
        read -p "> Do you want to setup Jigasi Transcription: (yes or no)
 | 
					        #read -p "> Do you want to setup Jigasi Transcription: (yes or no)
 | 
				
			||||||
( Please check requirements at: https://github.com/switnet-ltd/quick-jibri-installer )$NL" -r ENABLE_TRANSCRIPT
 | 
					#( Please check requirements at: https://forge.switnet.net/switnet/quick-jibri-installer )$NL" -r ENABLE_TRANSCRIPT
 | 
				
			||||||
        if [ "$ENABLE_TRANSCRIPT" = "no" ]; then
 | 
					        #if [ "$ENABLE_TRANSCRIPT" = "no" ]; then
 | 
				
			||||||
            printf " - Jigasi Transcription won't be enabled.\n\n"
 | 
					            #printf " - Jigasi Transcription won't be enabled.\n\n"
 | 
				
			||||||
        elif [ "$ENABLE_TRANSCRIPT" = "yes" ]; then
 | 
					        #elif [ "$ENABLE_TRANSCRIPT" = "yes" ]; then
 | 
				
			||||||
            printf " - Jigasi Transcription will be enabled.\n\n"
 | 
					            #printf " - Jigasi Transcription will be enabled.\n\n"
 | 
				
			||||||
        fi
 | 
					        #fi
 | 
				
			||||||
    done
 | 
					    #done
 | 
				
			||||||
else
 | 
					#else
 | 
				
			||||||
    echo "No valid option for Jigasi. Please report this to
 | 
					    #echo "No valid option for Jigasi. Please report this to
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					#https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
fi
 | 
					#fi
 | 
				
			||||||
sleep .1
 | 
					sleep .1
 | 
				
			||||||
#Grafana
 | 
					#Grafana
 | 
				
			||||||
while [ "$ENABLE_GRAFANA_DSH" != "yes" ] && [ "$ENABLE_GRAFANA_DSH" != "no" ]
 | 
					while [ "$ENABLE_GRAFANA_DSH" != "yes" ] && [ "$ENABLE_GRAFANA_DSH" != "no" ]
 | 
				
			||||||
do
 | 
					do
 | 
				
			||||||
read -p "> Do you want to setup Grafana Dashboard: (yes or no)
 | 
					read -p "> Do you want to setup Grafana Dashboard: (yes or no)
 | 
				
			||||||
( Please check requirements at: https://github.com/switnet-ltd/quick-jibri-installer )$NL" -r ENABLE_GRAFANA_DSH
 | 
					( Please check requirements at: https://forge.switnet.net/switnet/quick-jibri-installer )$NL" -r ENABLE_GRAFANA_DSH
 | 
				
			||||||
if [ "$ENABLE_GRAFANA_DSH" = "no" ]; then
 | 
					if [ "$ENABLE_GRAFANA_DSH" = "no" ]; then
 | 
				
			||||||
    printf " - Grafana Dashboard won't be enabled.\n\n"
 | 
					    printf " - Grafana Dashboard won't be enabled.\n\n"
 | 
				
			||||||
elif [ "$ENABLE_GRAFANA_DSH" = "yes" ]; then
 | 
					elif [ "$ENABLE_GRAFANA_DSH" = "yes" ]; then
 | 
				
			||||||
| 
						 | 
					@ -693,9 +712,20 @@ while [ "$ENABLE_DOCKERPAD" != "yes" ] && [ "$ENABLE_DOCKERPAD" != "no" ]
 | 
				
			||||||
do
 | 
					do
 | 
				
			||||||
read -p "> Do you want to setup Docker Etherpad: (yes or no)$NL" -r ENABLE_DOCKERPAD
 | 
					read -p "> Do you want to setup Docker Etherpad: (yes or no)$NL" -r ENABLE_DOCKERPAD
 | 
				
			||||||
if [ "$ENABLE_DOCKERPAD" = "no" ]; then
 | 
					if [ "$ENABLE_DOCKERPAD" = "no" ]; then
 | 
				
			||||||
    printf " - Docker Etherpad won't be enabled.\n"
 | 
					    printf " - Docker Etherpad won't be enabled.\n\n"
 | 
				
			||||||
elif [ "$ENABLE_DOCKERPAD" = "yes" ]; then
 | 
					elif [ "$ENABLE_DOCKERPAD" = "yes" ]; then
 | 
				
			||||||
    printf " - Docker Etherpad will be enabled.\n"
 | 
					    printf " - Docker Etherpad will be enabled.\n\n"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					sleep .1
 | 
				
			||||||
 | 
					#Excalidraw Whiteboard
 | 
				
			||||||
 | 
					while [ "$ENABLE_WHITEBOARD" != "yes" ] && [ "$ENABLE_WHITEBOARD" != "no" ]
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					read -p "> Do you want to setup Excalidraw Whiteboard backend: (yes or no)$NL" -r ENABLE_WHITEBOARD
 | 
				
			||||||
 | 
					if [ "$ENABLE_WHITEBOARD" = "no" ]; then
 | 
				
			||||||
 | 
					    printf " - Excalidraw Whiteboard won't be enabled.\n\n"
 | 
				
			||||||
 | 
					elif [ "$ENABLE_WHITEBOARD" = "yes" ]; then
 | 
				
			||||||
 | 
					    printf " - Excalidraw Whiteboard will be enabled.\n\n"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
sleep .1
 | 
					sleep .1
 | 
				
			||||||
| 
						 | 
					@ -712,7 +742,7 @@ INT_CONF_ETC="/etc/jitsi/meet/$DOMAIN-interface_config.js"
 | 
				
			||||||
ssl_wa() {
 | 
					ssl_wa() {
 | 
				
			||||||
if [ "$LE_SSL" = "yes" ]; then
 | 
					if [ "$LE_SSL" = "yes" ]; then
 | 
				
			||||||
  systemctl stop "$1"
 | 
					  systemctl stop "$1"
 | 
				
			||||||
  certbot certonly --standalone --renew-by-default --agree-tos --email "$5" -d "$6"
 | 
					  certbot certonly --standalone --renew-by-default --agree-tos --email "$5" -d "$6" --non-interactive
 | 
				
			||||||
  sed -i "s|/etc/jitsi/meet/$3.crt|/etc/letsencrypt/live/$3/fullchain.pem|" "$4"
 | 
					  sed -i "s|/etc/jitsi/meet/$3.crt|/etc/letsencrypt/live/$3/fullchain.pem|" "$4"
 | 
				
			||||||
  sed -i "s|/etc/jitsi/meet/$3.key|/etc/letsencrypt/live/$3/privkey.pem|" "$4"
 | 
					  sed -i "s|/etc/jitsi/meet/$3.key|/etc/letsencrypt/live/$3/privkey.pem|" "$4"
 | 
				
			||||||
  systemctl restart "$1"
 | 
					  systemctl restart "$1"
 | 
				
			||||||
| 
						 | 
					@ -746,7 +776,7 @@ restart_services() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure Jvb2
 | 
					# Configure Jvb2
 | 
				
			||||||
sed -i "/shard.HOSTNAME/s|localhost|$DOMAIN|" /etc/jitsi/videobridge/sip-communicator.properties
 | 
					sed -i "/shard.HOSTNAME/s|localhost|$DOMAIN|" "$JVB2_SIP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure Jibri
 | 
					# Configure Jibri
 | 
				
			||||||
if [ "$ENABLE_SC" = "yes" ]; then
 | 
					if [ "$ENABLE_SC" = "yes" ]; then
 | 
				
			||||||
| 
						 | 
					@ -754,9 +784,11 @@ if [ "$ENABLE_SC" = "yes" ]; then
 | 
				
			||||||
  printf "\n-> Adding external module to list prosody users...\n"
 | 
					  printf "\n-> Adding external module to list prosody users...\n"
 | 
				
			||||||
  curl -s "$MOD_LISTU" > "$MOD_LIST_FILE"
 | 
					  curl -s "$MOD_LISTU" > "$MOD_LIST_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  printf "Now you can check registered users with:\nprosodyctl mod_listusers\n"
 | 
					  printf "Now you can check registered users with:"
 | 
				
			||||||
 | 
					  printf " \n  prosodyctl mod_listusers\n"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
  printf "Prosody support for listing users seems to be enabled. \ncheck with: prosodyctl mod_listusers\n"
 | 
					  printf "Prosody support for listing users seems to be enabled.check with:"
 | 
				
			||||||
 | 
					  printf " \n  prosodyctl mod_listusers\n"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
| 
						 | 
					@ -1039,15 +1071,15 @@ sed -i "s|MJS_USER_PASS=.*|MJS_USER_PASS=\"$MJS_USER_PASS\"|" add-jvb2-node.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Tune webserver for Jitsi App control
 | 
					#Tune webserver for Jitsi App control
 | 
				
			||||||
if [ -f "$WS_CONF" ]; then
 | 
					if [ -f "$WS_CONF" ]; then
 | 
				
			||||||
    sed -i "/# ensure all static content can always be found first/i \\\n" "$WS_CONF"
 | 
					    sed -i "/$WS_MATCH1/i \\\n" "$WS_CONF"
 | 
				
			||||||
    sed -i "/# ensure all static content can always be found first/i \ \ \ \ location = \/external_api.min.js {" "$WS_CONF"
 | 
					    sed -i "/$WS_MATCH1/i \ \ \ \ location = \/external_api.min.js {" "$WS_CONF"
 | 
				
			||||||
    sed -i "/# ensure all static content can always be found first/i \ \ \ \ \ \ \ \ alias \/usr\/share\/jitsi-meet\/libs\/external_api.min.js;" "$WS_CONF"
 | 
					    sed -i "/$WS_MATCH1/i \ \ \ \ \ \ \ \ alias \/usr\/share\/jitsi-meet\/libs\/external_api.min.js;" "$WS_CONF"
 | 
				
			||||||
    sed -i "/# ensure all static content can always be found first/i \ \ \ \ }" "$WS_CONF"
 | 
					    sed -i "/$WS_MATCH1/i \ \ \ \ }" "$WS_CONF"
 | 
				
			||||||
    sed -i "/# ensure all static content can always be found first/i \\\n" "$WS_CONF"
 | 
					    sed -i "/$WS_MATCH1/i \\\n" "$WS_CONF"
 | 
				
			||||||
    systemctl reload nginx
 | 
					    systemctl reload nginx
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "No app configuration done to server file, please report to:
 | 
					    echo "No app configuration done to server file, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
#Static avatar
 | 
					#Static avatar
 | 
				
			||||||
if [ "$ENABLE_SA" = "yes" ] && [ -f "$WS_CONF" ]; then
 | 
					if [ "$ENABLE_SA" = "yes" ] && [ -f "$WS_CONF" ]; then
 | 
				
			||||||
| 
						 | 
					@ -1067,7 +1099,7 @@ elif [ "$DROP_TLS1" = "no" ];then
 | 
				
			||||||
    printf "\nNo TLSv1/1.1 dropping was done.\n\n"
 | 
					    printf "\nNo TLSv1/1.1 dropping was done.\n\n"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "No condition meet, please report to
 | 
					    echo "No condition meet, please report to
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues "
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues "
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
sleep .1
 | 
					sleep .1
 | 
				
			||||||
#================== Setup prosody conf file =================
 | 
					#================== Setup prosody conf file =================
 | 
				
			||||||
| 
						 | 
					@ -1146,24 +1178,24 @@ fi
 | 
				
			||||||
sed -i "s|// prejoinPageEnabled:.*|prejoinPageEnabled: true,|" "$MEET_CONF"
 | 
					sed -i "s|// prejoinPageEnabled:.*|prejoinPageEnabled: true,|" "$MEET_CONF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Set HD resolution and widescreen format
 | 
					#Set HD resolution and widescreen format
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \/\/ Start QJI - Set resolution and widescreen format" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \/\/ Start QJI - Set resolution and widescreen format" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ resolution: 720," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ resolution: 720," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ constraints: {" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ constraints: {" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ aspectRatio: 16 \/ 9," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ aspectRatio: 16 \/ 9," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ video: {" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ video: {" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ height: {" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ height: {" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ideal: 720," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ideal: 720," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ max: 720," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ max: 720," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ min: 180" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ min: 180" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ }," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ }," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ width: {" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ width: {" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ideal: 1280," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ideal: 1280," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ max: 1280," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ max: 1280," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ min: 320" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ min: 320" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ \ \ \ \ }" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ \ \ \ \ }" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ \ \ \ \ }" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ \ \ \ \ }" "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \ \ \ \ \ }," "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \ \ \ \ \ }," "$MEET_CONF"
 | 
				
			||||||
sed -i "/Enable \/ disable simulcast support/i \/\/ End QJI" "$MEET_CONF"
 | 
					sed -i "/$MEET_MATCH1/i \/\/ End QJI" "$MEET_CONF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Check config file
 | 
					#Check config file
 | 
				
			||||||
printf "\n# Checking %s file for errors\n" "$MEET_CONF"
 | 
					printf "\n# Checking %s file for errors\n" "$MEET_CONF"
 | 
				
			||||||
| 
						 | 
					@ -1174,7 +1206,7 @@ else
 | 
				
			||||||
    echo -e "\nWatch out!, there seems to be an issue on $MEET_CONF line:
 | 
					    echo -e "\nWatch out!, there seems to be an issue on $MEET_CONF line:
 | 
				
			||||||
$CHECKJS
 | 
					$CHECKJS
 | 
				
			||||||
Most of the times this is due upstream changes, please report to
 | 
					Most of the times this is due upstream changes, please report to
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Enable jibri services
 | 
					#Enable jibri services
 | 
				
			||||||
| 
						 | 
					@ -1227,7 +1259,7 @@ if [ -f "$WS_CONF" ]; then
 | 
				
			||||||
    systemctl reload nginx
 | 
					    systemctl reload nginx
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    echo "No interface_config.js configuration done to server file, please report to:
 | 
					    echo "No interface_config.js configuration done to server file, please report to:
 | 
				
			||||||
    -> https://github.com/switnet-ltd/quick-jibri-installer/issues"
 | 
					    -> https://forge.switnet.net/switnet/quick-jibri-installer/issues"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
#JRA via Nextcloud
 | 
					#JRA via Nextcloud
 | 
				
			||||||
if [ "$ENABLE_NC_ACCESS" = "yes" ]; then
 | 
					if [ "$ENABLE_NC_ACCESS" = "yes" ]; then
 | 
				
			||||||
| 
						 | 
					@ -1260,6 +1292,16 @@ if [ "$ENABLE_DOCKERPAD" = "yes" ]; then
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
sleep .1
 | 
					sleep .1
 | 
				
			||||||
 | 
					#Excalidraw Whiteboard
 | 
				
			||||||
 | 
					if [ "$ENABLE_WHITEBOARD" = "yes" ]; then
 | 
				
			||||||
 | 
					    printf "\nExcalidraw Whiteboard will be enabled."
 | 
				
			||||||
 | 
					    if [ "$MODE" = "debug" ]; then
 | 
				
			||||||
 | 
					        bash "$PWD"/excalidraw-backend.sh -m debug
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        bash "$PWD"/excalidraw-backend.sh
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					sleep .1
 | 
				
			||||||
#Prevent JMS conecction issue
 | 
					#Prevent JMS conecction issue
 | 
				
			||||||
if [ -z "$(awk "/127.0.0.1/&&/$DOMAIN/{print\$1}" /etc/hosts)" ];then
 | 
					if [ -z "$(awk "/127.0.0.1/&&/$DOMAIN/{print\$1}" /etc/hosts)" ];then
 | 
				
			||||||
    sed -i "/127.0.0.1/a \\
 | 
					    sed -i "/127.0.0.1/a \\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Automated AWS generic kernel setup for jibri.
 | 
					# Automated AWS generic kernel setup for jibri.
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Simple Fail2ban configuration
 | 
					# Simple Fail2ban configuration
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GNU GPLv3 or later.
 | 
					# GNU GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Simple Jibri conf updater
 | 
					# Simple Jibri conf updater
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GNU GPLv3 or later.
 | 
					# GNU GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					@ -77,18 +77,18 @@ if [ -f "$CONF_JSON"_disabled ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF" ] && \
 | 
					   [ -f "$JIBRI_CONF" ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF"-dpkg-file ]; then
 | 
					   [ -f "$JIBRI_CONF"-dpkg-file ]; then
 | 
				
			||||||
    echo -e "\n> This jibri config has been upgraded already, we'll exit...\n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> This jibri config has been upgraded already, we'll exit...\n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
elif [ ! -f "$CONF_JSON" ] && \
 | 
					elif [ ! -f "$CONF_JSON" ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF" ] && \
 | 
					   [ -f "$JIBRI_CONF" ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF"-dpkg-file ]; then
 | 
					   [ -f "$JIBRI_CONF"-dpkg-file ]; then
 | 
				
			||||||
    echo -e "\n> This jibri seems to be running the latest configuration already, we'll exit...\n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> This jibri seems to be running the latest configuration already, we'll exit...\n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
elif [ -f "$CONF_JSON" ] && \
 | 
					elif [ -f "$CONF_JSON" ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF" ]; then
 | 
					   [ -f "$JIBRI_CONF" ]; then
 | 
				
			||||||
    echo -e "\n> This jibri config seems to be candidate for upgrading, we'll continue...\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> This jibri config seems to be candidate for upgrading, we'll continue...\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Read missing variables
 | 
					#Read missing variables
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Simple Jibri resolution enhancer
 | 
					# Simple Jibri resolution enhancer
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GNU GPLv3 or later.
 | 
					# GNU GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
#Start over
 | 
					#Start over
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GPLv3 or later.
 | 
					# GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
# Simple Jibri Env tester
 | 
					# Simple Jibri Env tester
 | 
				
			||||||
# SwITNet Ltd © - 2022, https://switnet.net/
 | 
					# SwITNet Ltd © - 2023, https://switnet.net/
 | 
				
			||||||
# GNU GPLv3 or later.
 | 
					# GNU GPLv3 or later.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while getopts m: option
 | 
					while getopts m: option
 | 
				
			||||||
| 
						 | 
					@ -191,18 +191,18 @@ if [ -f "${CONF_JSON}"_disabled ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF" ] && \
 | 
					   [ -f "$JIBRI_CONF" ] && \
 | 
				
			||||||
   [ -f "$JIBRI_CONF"-dpkg-file ]; then
 | 
					   [ -f "$JIBRI_CONF"-dpkg-file ]; then
 | 
				
			||||||
    echo -e "\n> This jibri config has been upgraded already. \xE2\x9C\x94 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> This jibri config has been upgraded already. \xE2\x9C\x94 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
T6=1
 | 
					T6=1
 | 
				
			||||||
elif [ ! -f "$CONF_JSON" ] && \
 | 
					elif [ ! -f "$CONF_JSON" ] && \
 | 
				
			||||||
     [ -f "$JIBRI_CONF" ] && \
 | 
					     [ -f "$JIBRI_CONF" ] && \
 | 
				
			||||||
     [ -f "${JIBRI_CONF}"-dpkg-file ]; then
 | 
					     [ -f "${JIBRI_CONF}"-dpkg-file ]; then
 | 
				
			||||||
    echo -e "\n> This jibri seems to be running the latest configuration already. \xE2\x9C\x94 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> This jibri seems to be running the latest configuration already. \xE2\x9C\x94 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
T6=1
 | 
					T6=1
 | 
				
			||||||
elif [ -f "${CONF_JSON}" ] && \
 | 
					elif [ -f "${CONF_JSON}" ] && \
 | 
				
			||||||
     [ -f "$JIBRI_CONF" ]; then
 | 
					     [ -f "$JIBRI_CONF" ]; then
 | 
				
			||||||
    echo -e "\n> This jibri config seems to be candidate for upgrading. \xE2\x9C\x96 \nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> This jibri config seems to be candidate for upgrading. \xE2\x9C\x96 \nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
T6=0
 | 
					T6=0
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -210,11 +210,11 @@ fi
 | 
				
			||||||
echo -e "\n#6.1 -- Check for specific Chrome flag --\n"
 | 
					echo -e "\n#6.1 -- Check for specific Chrome flag --\n"
 | 
				
			||||||
if [ "$(grep -c "ignore-certificate-errors"  $JIBRI_CONF)" != 0 ]; then
 | 
					if [ "$(grep -c "ignore-certificate-errors"  $JIBRI_CONF)" != 0 ]; then
 | 
				
			||||||
    echo -e "\n> Seems you have the \"--ignore-certificate-errors\" flag required for Chrome v88 and later. \xE2\x9C\x94 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					    echo -e "\n> Seems you have the \"--ignore-certificate-errors\" flag required for Chrome v88 and later. \xE2\x9C\x94 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
T6_1="0.1"
 | 
					T6_1="0.1"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
echo -e "\n> The jibri config may be missing the required chrome flags. \xE2\x9C\x96 \nPlease check:\n https://github.com/switnet-ltd/quick-jibri-installer/blob/master/quick_jibri_installer.sh#L820 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
					echo -e "\n> The jibri config may be missing the required chrome flags. \xE2\x9C\x96 \nPlease check:\n https://forge.switnet.net/switnet/quick-jibri-installer/src/branch/master/quick_jibri_installer.sh#L870 \n\nIf you think there maybe an error on checking you current jibri configuration.\nPlease report this to \
 | 
				
			||||||
https://github.com/switnet-ltd/quick-jibri-installer/issues\n"
 | 
					https://forge.switnet.net/switnet/quick-jibri-installer/issues\n"
 | 
				
			||||||
T6_1=0
 | 
					T6_1=0
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue