mirror of
https://github.com/michelleDeko/scalelite-run.git
synced 2025-12-16 22:32:10 +01:00
70 lines
2.2 KiB
Bash
Executable File
70 lines
2.2 KiB
Bash
Executable File
#!/bin/bash -ex
|
|
|
|
usage() {
|
|
set +x
|
|
cat 1>&2 <<HERE
|
|
Script for integrating BigBlueButton Recordings with Scaleite.
|
|
USAGE:
|
|
wget -qO- https://raw.githubusercontent.com/jfederico/scalelite-run/master/init-recordings-bigbluebutton.sh | bash -s -- [OPTIONS]
|
|
OPTIONS
|
|
-s <scalelite-hostname> Configure server with <scalelite-hostname> (required)
|
|
EXAMPLES:
|
|
Sample options for setup a BigBlueButton server
|
|
-s scalelite.example.com
|
|
HERE
|
|
}
|
|
|
|
main() {
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
while builtin getopts "s" opt "${@}"; do
|
|
|
|
case $opt in
|
|
s)
|
|
HOST=$OPTARG
|
|
if [ "$HOST" == "scalelite.example.com" ]; then
|
|
err "You must specify a valid hostname (not the hostname given in the docs)."
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ ! -z "$HOST" ]; then
|
|
check_host $HOST
|
|
fi
|
|
|
|
|
|
# We can proceed with the setup
|
|
echo 'Create a new group with GID 2000...'
|
|
groupadd -g 2000 scalelite-spool
|
|
echo 'Add the bigbluebutton user to the group...'
|
|
usermod -a -G scalelite-spool bigbluebutton
|
|
|
|
echo 'Add recording transfer scripts...'
|
|
cd /usr/local/bigbluebutton/core/scripts/post_publish
|
|
wget -O post_publish_scalelite.rb https://raw.githubusercontent.com/blindsidenetworks/scalelite/master/bigbluebutton/scalelite_post_publish.rb
|
|
|
|
echo 'Add recording transfer settings...'
|
|
cd /usr/local/bigbluebutton/core/scripts
|
|
wget https://raw.githubusercontent.com/blindsidenetworks/scalelite/master/bigbluebutton/scalelite.yml
|
|
echo "spool_dir: bigbluebutton@$URL_HOST:/var/bigbluebutton/spool" | tee -a /usr/local/bigbluebutton/core/scripts
|
|
|
|
echo 'Generate ssh key pair...'
|
|
mkdir /home/bigbluebutton
|
|
chown bigbluebutton.bigbluebutton /home/bigbluebutton/
|
|
su - bigbluebutton -s /bin/bash -c "ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_rsa"
|
|
|
|
echo 'Add this key to /home/bigbluebutton/.ssh/authorized_keys in scalelite:'
|
|
cat /home/bigbluebutton/.ssh/scalelite.pub
|
|
|
|
echo 'done'
|
|
|
|
check_host() {
|
|
if [ [ -z "$HOST" ] then
|
|
need_pkg dnsutils apt-transport-https net-tools
|
|
DIG_IP=$(dig +short $1 | grep '^[.0-9]*$' | tail -n1)
|
|
if [ -z "$DIG_IP" ]; then err "Unable to resolve $1 to an IP address using DNS lookup."; fi
|
|
get_IP $1
|
|
if [ "$DIG_IP" != "$IP" ]; then err "DNS lookup for $1 resolved to $DIG_IP but didn't match local $IP."; fi
|
|
fi
|
|
}
|