bigbluebutton 2.0 на наш сервер на ОС UBUNTU 16.04.x.

Установку будем производить на чистую свежеустановленную версию Ubuntu server 16.04

Сразу скажу что сам bigbluebutton довольно сложно устроенное комлексное приложение, использующие стек технологий. Если вдруг что-то пойдёт не по стандарту 
для того чтобы иметь возможность исправить это программист должен хорошо владеть терминалом Linux (UBUNTU 16.04), хорошо знать Javascript (+xml,json) , уметь конфигурировать Nginx, apache, red5, freeswitch, kurento
(в основном конфиги представляют собой xml файлы) . 
А также иметь представления о том что такое tomcat7, red5, freeswitch, kurento-media-server, sip, и WebRTC. 
С последним даже у опытных программистов бывают проблемы.

Но если Вы уверены в себе и вас не пугают эти страшные названия. То можете смело двигаться дальше , так как судя по всему вы настоящий джедай.
И мастер Йода гордится Вами!

Не только Вы должны соответствовать уровню, но и Ваше железо.
Вот минимальные системные требования.

Minimum server requirements

The minimum server requirements for installing BigBlueButton 2.0 are

Ubuntu 16.04 64-bit OS
4 GB оперативной памяти с файлом подкачки (8 GB лутше)
Quad-core 2.6 GHZ CPU (или быстрее)
TCP ports 80, 443, 1935, and 8888 открыты на входящие и исходящие соединения.
TCP port 7443 отрыт на вход и выход если вы используете SSL конфигурацию (рекомендуется), port 5066 открыт если вы не используете SSL/
UDP ports 16384 - 32768 открыты на входящие и исходящие соединения
Port 80 не занят другим приложением.

Так же рекомендуется

500G свободного места на жестком диске (или больше) для записей.
100 Mbits/sec пропускная способность канала (symmetrical)
Нормальный микрофон, нормальная камера. =)

На этом лирическое отступление заканчивается. Я надеюсь вы готовы.

Итак приступим.

1 . Первым делом производим Pre-installation check системы.
Для корректной работы BBB в система должна быть английская локаль, проверяем что это так.

$  cat /etc/default/locale

мы должны увидеть

LANG="en_US.UTF-8"

если вы видите

LANG="ru_RU.UTF-8"

или любую другую локализацию, необходимо будет установить английскую локаль. Пишем:

apt-get install language-pack-en
update-locale LANG=en_US.UTF-8

2. Следующим шагом проверяем достаточно ли свободной оперативной памяти на сервере.

$  free -h
Вывод выглядит вот так 
total      used        free      shared  buff/cache   available
Mem: 31G 5.9G 314M 1.8G 25G 21G
Swap: 31G 360M 31G

Для нормальной работы bibbluebutton нужно МИНИМУМ!!! 4ГБ оперативной памяти, (столбец total строка Mem:).
Иначе приложения будет крашется во время работы, будут самопроизвольно отключатся микрофоны, камеры,
у пользователей могут быть проблемы с тем что их будет просто выкидывать с площадки.

3. Закрываем глаза, встаём на одну ногу ,дотрагиваемся указательным пальцем до кончика носа, и убеждаемся что мы не пьяны, и установили
на сервер именно UBUNTU 16.04 server ,а не другой дистрибутив.

$  cat /etc/lsb-release

Вывод должен выглядеть вот так:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.x LTS"

Если вы видите что-то другое , например

DISTRIB_ID=CentOS
.....

Значит пора завязывать =)

4. Снова проверка на трезвость. Проверяем что мы установили именно 64-битный дистрибутив UBUNTU.

$  uname -m

должны увидеть

x86_64

5. Проверяем поддерживает ли наш сервер IPv6

$  ip addr | grep inet6

если видим в первой строке вывода

inet6 ::1/128 scope host

значит все хорошо и можно продолжать.

Если нет , после установки bigbluebutton нужно отключить поддержку IPv6 соединений для freeswitch.
Вот ссылка

http://docs.bigbluebutton.org/install/install.html#freeswitch-fails-to-bind-to-port-8021

6. Далее во избежании проблем, до установки BBB нужно установить набор библиотек для конвертации видео ffmpeg4,
по дефолту в ubuntu стоит 2-я версию , нам же нужна последняя 4-я, библиотеки нужно просто обновить.
пишем в терминале:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get dist-upgrade

--------------------------------------------------
Теперь мы готовы установить bigbluebutton 2.0.

1. Сперва добавим multiverse репозиторий в sources.list

echo "deb http://archive.ubuntu.com/ubuntu/ xenial multiverse" | sudo tee -a /etc/apt/sources.list

Если multiverse репозитории были уже прописаны , это строчка все-равно ничего не испортит.

1.1 (Если вы устанавливаете bigbluebutton на виртуальную машину, то для нормальной работы tomcat7 нужно увеличить энтропию системы, иначе соединения будут очень долгими, 
проблема решается установкой специального пакета, называется haveged. Если установка происходит на "железный" сервер, данный шаг можно пропустить.

Пишем в терминале

$ sudo apt-get install haveged

И обновим пакеты в системе

$ sudo apt-get update
$ sudo apt-get dist-upgrade
)

2. Теперь нужно получить ключ репозитория bigbluebutton

$ wget https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc O | sudo apt-key add -

Ответ должен выглядеть так:

HTTP request sent, awaiting response... 200 OK
Length: 3112 (3.0K) [application/octet-stream]
Saving to: ‘STDOUT’
-                         100%[===================================>]   3.04K  --.-KB/s    in 0s
2017-07-21 17:00:42 (509 MB/s) - written to stdout [3112/3112]
OK

3. Теперь добавим репозиторий с пакетами нужными для bigbluebutton

$ echo "deb https://ubuntu.bigbluebutton.org/xenial-200/ bigbluebutton-xenial main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list

4. И обновим пакеты

$ sudo apt-get update

----------------------------------------------------
1. Начинаем установку

$ sudo apt-get install bigbluebutton

И набираемся терпения, установка длится 5-7 минут(зависит от скорости интернета)
Если во время установки возникнут ошибки со скачиванием и установки пакетов, после завершения, можно это исправить с помощью команды

$ sudo apt-get install -f

Дожидаемся завершения и после того как сново увидим стандартное приглашение linux, пишем в терминале

$ bbb-conf --restart

Ждём перезагрузки BBB , затем пишем

$ bbb-conf --check

Если все прошло хорошо, вывод должен выглядеть примерно так.

$ BigBlueButton Server 2.0.0-RC1 (1414)
Kernel version: 4.4.0-1060-aws
Distribution: Ubuntu 16.04.4 LTS (64-bit)
Memory: 7814 MB
/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
Port test (tunnel): rtmp://example.bigbluebutton.com.com
red5: example.bigbluebutton.com
useWebrtcIfAvailable: true
/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
websocket: 52.201.248.115:7443
WebRTC enabled: true
/etc/nginx/sites-available/bigbluebutton (nginx)
server name: example.bigbluebutton.com
port: 80, [::]:80
bbb-client dir: /var/www/bigbluebutton
/var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties (bbb-web)
bbb-web host: example.bigbluebutton.com
/var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp (API demos)
url: example.bigbluebutton.com
/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
voice conference: FreeSWITCH
/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
playback host: example.bigbluebutton.com
ffmpeg: 4.0.1-0york0~16.04

После этой последней строки не должно быть ошибок (если все сделано правильно). 
Если вы видите ошибку , утилита bbb-conf сама подскажет Вам в каком файле, и в какой строке копать.

2. Теперь для проверки работоспособности установим демо-конференцию и утилиту для проверки на стороне клиента.

$ sudo apt-get install bbb-demo    
$ sudo apt-get install bbb-check

После этого еще раз перезагрузим bigbluebutton

$ sudo bbb-conf --restart

После перезагрузки наша Большая Синяя Кнопка станет доступна по адресу сервера.
Пишем в поле ваше имя и жмём старт. В принципе на этом установка bigbluebutton 2.0 завершена. , 
теперь для того что-бы все заработало через интернет, нужно задать bbb адрес домена.

$ sudo bbb-conf --setip example.bigbluebutton.org

И пробросить все необходимые порты (полный список в начале документа) из интернета во внутреннию сеть.

В следующей части мы поговорим о том, как настроить наш вебинар на запуск сессий по https:
Как установить HTML5 интерфейс.
Как обойти сетевой экран, если трафик блокируется, и Вы получаете ошибки подключения. 
Как развернуть сайт на том же сервере (рядом) с bigbluebutton и настроить API для работы.