From 92e6e36a79d2c776ab71d7b649574687d65043b5 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Thu, 8 Oct 2020 10:38:39 -0500 Subject: [PATCH] Add recommendation on resources and jibri nodes. --- README.md | 46 +++++++++++++++++++++++++++++++--------- add-jibri-node.sh | 7 +++--- quick_jibri_installer.sh | 38 ++++++++++++++++++++++++++++++++- 3 files changed, 77 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index e70e88f..111df8b 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,75 @@ # Quick Jibri Installer -Bash installer for Jibri on **\*buntu LTS** based systems using **nginx** as default webserver. +Bash installer for Jibri on **Ubuntu LTS** based systems using **nginx** as default webserver. ## Usage +As for our current latest release, as we have integrated more and more features, we highly recommend to use a purpose specific-newly spawn server to host the jitsi-meet framework, making sure you stick to the requirements and recommendations as much as possible, in order to avoid issues. + + +### Main Server +Login into your clean server, clone git repository and run the installer, ``` git clone https://github.com/switnet-ltd/quick-jibri-installer cd quick-jibri-installer bash quick-jibri-installer.sh ``` -Please check more details on our wiki. + +### Add Jibri node + +Copy the modified `add-jibri-node.sh` file from your early cloned installation directory once it's completed to the new server meant to be a jibri node using your preferred method, then run it + +**WARNING:** This file contains sensitive information from your setup, please handle with care. + +``` +bash add-jibri-node.sh +``` + + +Check more details on our wiki. ## Requirements * Clean VM/VPS/Server using Ubuntu LTS * Valid domain with DNS record, **mandatory** for SSL certs via Let's Encrypt. * Ports open for ACME (SSL) interaction & validation. -* Minimum recommended for video recording: 8 GB RAM / 4 Cores. +* Highly recommended: 8 GB RAM / 4 Cores. * Webcam ### Jigasi Transcript * SIP account * Google Cloud Account with Billing setup. + ### Jibri Recodings Access via Nextcloud * Valid domain with DNS record for Nextcloud SSL. +## Kernel warning +For AWS users or any cloud service provider that might use their own kernel on their products (servers/vm/vps), might cause Jibri failure to start due not allowing `snd_aloop` module. + +Make sure that you update your grub to boot the right one. + +Feel free to use our (new) `test-jibri-env.sh` tool to find some details on your current setup. ## Features -* Enabled Session (video) Recording using Jibri +* Enabled Session Recording using Jibri * Enabled Jitsi Electron app detection server side. * Standalone SSL Certbot/LE implementation * Jigasi Transcript - Speech to Text powered by Google API * JRA (Jibri Recordings Access) via Nextcloud * Improved recurring updater * Customized brandless mode - * (New) Setting up custom interface_config.js -* (New) Grafana Dashboard -* (New) Lobby Rooms - Secure Rooms -* (New) Conference Duration - Secure Rooms + * Setting up custom interface_config.js +* Grafana Dashboard +* Lobby Rooms - Secure Rooms +* Conference Duration - Secure Rooms +* (New) Automatic Jibri nodes network sync ([see more](https://github.com/switnet-ltd/quick-jibri-installer/wiki/Jibri-Nodes)). +## Tools (New) +* (New) Jibri Environment Tester + * (New) Jibri Conf Upgrader (late 2020). ## Optional custom changes * Optional default language * Option to enable Secure Rooms * Option to enable Welcome Page -* Option to enable Local audio recording using flac. -* Option to use Rodentia static avatar (icon credit: sixsixfive) - Legacy ## Custom changes * Start with video muted by default diff --git a/add-jibri-node.sh b/add-jibri-node.sh index bddc94f..8b43979 100644 --- a/add-jibri-node.sh +++ b/add-jibri-node.sh @@ -125,7 +125,8 @@ if [ "$CPU_MIN" = "Y" ] && [ "$MEM_MIN" = "Y" ];then " else echo "CPU ($(nproc --all))/RAM ($((mem_available/1024)) MiB) does NOT meet minimum recommended requirements!" - echo "Even when you can use the videconference sessions, we advice to increase the resources in order to user Jibri." + echo "Since this is a Jibri node there is no point on having the necessary resources." + echo "We highly advice to increase the resources in order to install this Jibri node." while [[ "$CONTINUE_LOW_RES" != "yes" && "$CONTINUE_LOW_RES" != "no" ]] do read -p "> Do you want to continue?: (yes or no)"$'\n' -r CONTINUE_LOW_RES @@ -133,7 +134,7 @@ else echo "See you next time with more resources!..." exit elif [ "$CONTINUE_LOW_RES" = "yes" ]; then - echo "Please keep in mind that trying to use Jibri with low resources might fail." + echo "Please keep in mind that we might not support underpowered nodes." fi done fi @@ -155,7 +156,7 @@ check_var MJS_USER_PASS "$MJS_USER_PASS" # Rename hostname for each jibri node hostnamectl set-hostname "jbnode${ADDUP}.${MAIN_SRV_DOMAIN}" -sed -i "1i ${PUBLIC_IP} jbnode${ADDUP}.${MAIN_SRV_DOMAIN}" /etc/hosts +sed -i "1i 127.0.0.1 jbnode${ADDUP}.${MAIN_SRV_DOMAIN}" /etc/hosts # Jitsi-Meet Repo echo "Add Jitsi repo" diff --git a/quick_jibri_installer.sh b/quick_jibri_installer.sh index d3884c7..442bf75 100644 --- a/quick_jibri_installer.sh +++ b/quick_jibri_installer.sh @@ -189,7 +189,38 @@ else echo "See you next time with more resources!..." exit elif [ "$CONTINUE_LOW_RES" = "yes" ]; then - echo "Please keep in mind that trying to use Jibri with low resources might fail." + echo "We highly recommend to increase the server resources." + echo "Otherwise, please think about adding dedicated jibri nodes instead." + fi + done +fi + +if [ "$CONTINUE_LOW_RES" = "yes" ]; then +echo -e "\nThis server will likely have issues due the lack of resources. +If you plan to enable other components such as, + + - JRA via Nextcloud + - Jigasi Transcriber + - Additional Jibri Nodes + - others. + +We higly recommend to increase resources of this server. + +For now we advice to disable the Jibri service locally and add an external +Jibri node once this installation has finished, using our script: + + >> add-jibri-node.sh + +So you can add a Jibri server on a instance with enough resources.\n" + + while [[ "$DISABLE_LOCAL_JIBRI" != "yes" && "$DISABLE_LOCAL_JIBRI" != "no" ]] + do + read -p "> Do you want to disable local jibri service?: (yes or no)"$'\n' -r DISABLE_LOCAL_JIBRI + if [ "$DISABLE_LOCAL_JIBRI" = "no" ]; then + echo "Please keep in mind that we might not support underpowered servers." + exit + elif [ "$DISABLE_LOCAL_JIBRI" = "yes" ]; then + echo "Please think about adding dedicated jibri nodes see more at the wiki." fi done fi @@ -955,6 +986,11 @@ systemctl enable jibri systemctl enable jibri-xorg systemctl enable jibri-icewm restart_services +if [ "$DISABLE_LOCAL_JIBRI" = "yes" ]; then + + systemctl stop jibri* + systemctl disable jibri* +fi enable_letsencrypt