summaryrefslogtreecommitdiff
path: root/init-recordings-bigbluebutton.sh
blob: 10efc58d0b89629ac42e9adf2a9034b051af927a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/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
exit 0
}

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
  else
    usage
  fi
}

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
  fi
}

err() {
  echo "$1" >&2
  exit 1
}

main "$@" || exit 1


# We can proceed with the setup
if grep -q scalelite-spool /etc/group
then
  echo "Group <scalelite-spool> exists"
else
  echo "Group <scalelite-spool> does not exist. Create it with GID 2000..."
  groupadd -g 2000 scalelite-spool
fi
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@$HOST:/var/bigbluebutton/spool" | tee -a /usr/local/bigbluebutton/core/scripts/scalelite.yml

echo 'Generate ssh key pair...'
if [ -z "/home/bigbluebutton" ]; then
  mkdir /home/bigbluebutton
  chown bigbluebutton.bigbluebutton /home/bigbluebutton/
fi
su - bigbluebutton -s /bin/bash -c "ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_rsa"

public_key=$(cat my_file)
set +x
echo
echo
echo "Add this key to /home/bigbluebutton/.ssh/authorized_keys in scalelite:"
echo
echo "$public_key"
echo
echo
exit 0