From 4fe035c986b93a768cc8414c8312f9f9b8f180a3 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Tue, 11 Aug 2020 02:24:33 -0500 Subject: [PATCH] Add etherpad installer --- etherpad.sh | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 etherpad.sh diff --git a/etherpad.sh b/etherpad.sh new file mode 100644 index 0000000..6b2ee34 --- /dev/null +++ b/etherpad.sh @@ -0,0 +1,140 @@ +#!/bin/bash +# Etherpad Installer for Jitsi Meet +# SwITNet Ltd © - 2020, https://switnet.net/ +# +# GPLv3 or later. + +while getopts m: option +do + case "${option}" + in + m) MODE=${OPTARG};; + \?) echo "Usage: sudo ./etherpad.sh [-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 ' +######################################################################## + Etherpad Docker addon +######################################################################## + by Software, IT & Networks Ltd +' + +check_apt_policy() { +apt-cache policy 2>/dev/null| \ +grep http | \ +grep $1 | \ +awk '{print $3}' | \ +head -n 1 | \ +cut -d "/" -f2 +} +install_ifnot() { +if [ "$(dpkg-query -W -f='${Status}' $1 2>/dev/null | grep -c "ok installed")" == "1" ]; then + echo " $1 is installed, skipping..." + else + echo -e "\n---- Installing $1 ----" + apt-get -yq2 install $1 +fi +} +DOMAIN=$(ls /etc/prosody/conf.d/ | grep -v localhost | awk -F'.cfg' '{print $1}' | awk '!NF || !seen[$0]++') +MEET_CONF="/etc/jitsi/meet/$DOMAIN-config.js" +WS_CONF="/etc/nginx/sites-enabled/$DOMAIN.conf" +PSGVER="$(apt-cache madison postgresql | head -n1 | awk '{print $3}' | cut -d "+" -f1)" +ETHERPAD_DB_USER="dockerpad" +ETHERPAD_DB_NAME="etherpad" +ETHERPAD_DB_PASS="$(tr -dc "a-zA-Z0-9#*=" < /dev/urandom | fold -w 10 | head -n1)" +DOCKER_CE_REPO="$(check_apt_policy docker)" + +echo "Add Docker repo" +if [ "$DOCKER_CE_REPO" = "stable" ]; then + echo "Docker repository already installed" +else + echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker-ce.list + wget -qO - https://download.docker.com/linux/ubuntu/gpg | apt-key add - + apt -q2 update +fi + +read -p "Set your etherpad docker admin password: " -r ETHERPAD_ADMIN_PASS + +# Install required packages +install_ifnot docker-ce +install_ifnot postgresql-$PSGVER + +# Create DB +sudo -u postgres psql < https://github.com/switnet-ltd/quick-jibri-installer/issues" +fi + +# Configure config.js +if [ $(grep -c "etherpad_base" $WS_CONF) != 0 ]; then + echo "$MEET_CONF seems configured, skipping..." +else + echo "Setting etherpad domain at $MEET_CONF..." + sed -i "/ domain: '$DOMAIN'/a\ \ \ \ \ \ \ \ etherpad_base: \'https://$DOMAIN/etherpad/p/\'," $MEET_CONF +fi + +echo "Checking nginx configuration..." +nginx -t 2>/dev/null + +if [ $? = 0 ]; then + echo "Docker configuration seems fine, enabling it..." + systemctl reload nginx +else + echo "Please check your configuration, something may be wrong." + echo "Will not try to enable etherpad nginx configuration, please report to: + -> https://github.com/switnet-ltd/quick-jibri-installer/issues" +fi