BigBlueButton deployment

Материал из wiki

Требования и этапы

Минимальные требования к аппаратному обеспечению

BigBlueButton предъявляет следующие требования к аппаратному обеспечению:

  1. Процессор должен иметь не менее 4 ядер;
  2. Объем ОЗУ должен быть не менее 8 ГБ;
  3. Размер свободного дискового пространства должен быть не менее 50 ГБ. Данный размер необходим только для установки BigBlueButton и его недостаточно для хранения записей конференций.

Требования к программному обеспечению

BigBlueButton 3.0 предъявляет следующие требования к программному обеспечению:

  1. Операционная система Linux 22.04 Jammy Fish. Версия BigBlueButton 3.0 работает только на данном дистрибутиве;
  2. 64-разрядная операционная система;
  3. Наличие зарегистрированного в Интернете доменного имени. В нашем случае это gk-rte.ru.

Этапы развертывания BigBlueButton

Развертывание BigBlueButton состоит из следующих этапов:

  1. Подготовка Операционной системы к установке BigBlueButton;
  2. Установка BigBlueButton одновременно с Greenlight;
  3. Создание аккаунта администратора по умолчанию
  4. Кастомизация Greenlight

Подготовка Операционной системы к установке BigBlueButton

Проверка версии операционной системы

Для проверки версии операционной системы введите команду

cat /etc/lsb-release

Вы должны увидеть следующий резуьтат

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"

Если ваш результат отличается, то установите linux Ubuntu 22.04 Jammy Fish

Проверка локалей

Данный этап можно пропустить, если при установке операционной системы вы в качестве языка выбрали английский.

Для проверки локалей ведите команду

cat /etc/default/locale

Ваш результат должен быть

LANG=en_US.UTF-8

Если ваш результат отличается, то последовательно введите команды

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

Для того, чтобы убедиться, что локали действительно настроены правильно, введите следующую команду

sudo systemctl show-environment

Вы должны увидеть в качестве вывода LANG="en_US.UTF-8

Проверка разрядности

Для проверки разрядности операционной системы введите команду

sudo uname -m

Если ваша система действительно имеет разрядность 64 бит, вы увидите следующий результат

x86_64

Если вы видите иной результат, то установите 64-битную версию требуемой операционной системы.

Активация и настройка брандмауэра

Последовательно введите следующие команды

sudo ufw enable
sudo ufw allow 80
sudo ufw allow 443

После введения этих команд брандмауэр активируется и откроет порты 80 и 443.

Установка BigBlueButton

Установка с автоматическим выпуском сертификата

Для установки BigBlueButton с автоматическим выпуском сертификата необходимо ввести следующую команду

sudo wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh  | bash -s -- -w -v jammy-300 -s <имя_компьютера>.gk-rte.ru -e info@<имя_компьютера>.gk-rte.ru -g

В данной команде почта info@<имя_компьютера>.gk-rte.ru необходима для выпуска сертификата. Она может быть любой, но обязательно должна присутствовать, иначе сертификат не выпустится.

Аргумент -g означает, что вместе с BigBlueButton установится и Greenlight.

После завершения исполнения скрипта введите следующую команду

sudo bbb-conf --check

Это необходимо для проверки, установился ли BigBlueButton на сервер, или нет.

Перейдите по доменному имени, которое было указано в скрипте и проверьте, работает ли BigBlueButton. Если вас все устраивает, то можно переходить к этапу создания учетной записи администратора по умолчанию и кастомизировать Greenlight.

Установка с выпуском сертификата вручную

Сначала необходимо установить nginx. Это можно сделать при помощи команды

sudo apt install nginx

Далее необходимо установить certbot. Это можно сделать при помощи команды

sudo apt install certbot

Следующий шаг - настройка webroot. Для этого, необходимо открыть файл

sudo nano /etc/letsencrypt/cli.ini

В этом файле необходимо вписать следующее

authenticator = webroot
webroot-path = /var/www/html
post-hook = service nginx reload
text = True

После этого необходимо зарегистрировать почту в Let's encrypt при помощи следующей команды

sudo certbot register --email info@<имя_компьютера>.gk-rte.ru

Необходимо запустить nginx. Для этого выполните команду

sudo service nginx start

Далее нужно зарегистрировать сертификат при помощи certbot. Для этого выполните команду

sudo certbot certonly --webroot -d <имя_компьютера>.gk-rte.ru

Последний шаг - установка BigBlueButton. Это можно сделать при помощи команды

 sudo wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh  | bash -s -- -w -v jammy-300 -s <имя_компьютера>.gk-rte.ru -g

После завершения исполнения скрипта введите следующую команду

sudo bbb-conf --check

Это необходимо для проверки, установился ли BigBlueButton на сервер, или нет.

Перейдите по доменному имени, которое было указано в скрипте и проверьте, работает ли BigBlueButton. Если вас все устраивает, то можно переходить к этапу создания учетной записи администратора по умолчанию и кастомизировать Greenlight.

Создание аккаунта администратора по умолчанию

Необходимо перейти в следующую директорию

sudo cd ~/greenlight-v3

После этого, необходимо выполнить следующую команду

sudo docker exec -it greenlight-v3 bundle exec rake admin:create

В результате создастся аккаунт администратора по умолчанию с логином admin@example.com и паролем Administrator1!

Кастомизация Greenlight

Файлы Greenlight находятся в контейнере докера. Для получения идентификатора контейнера необходимо выполнить следующую команду

sudo docker ps

После получения идентификатора необходимо зайти в контейнер. Это делается при помощи команды

sudo docker exec -it <идентификатор_конейнера> /bin/bash

Для дальнейшего удобства навигации в контейнере, относительно данной статьи, перейдите в корневую директорию контейнера при помощи команды cd.

Следующий шаг - обновление apk и добавление в контейнер nano. Для этого последовательно выполните команды

apk update
apk add nano

Для того, чтобы внесенные в контейнер изменения применились, выйдите из контейнера при помощи команды exit и последовательно введите следующие команды

docker <идентификатор_конейнера> restart
bbb-conf --restart

Далее будет описан процесс кастомизации отдельных элементов Greenlight'a

Редактирование заголовка страницы

Для этого, необходимо отредактировать тэг <title> в следующих файлах

nano /usr/src/app/app/views/layouts/application.html.erb	
nano /usr/src/app/app/javascript/App.jsx

В тэг <title> нужно вписать строку «Портал обучения группы компаний ГК "РусТехЭксперт».

Редактирование Header'a

Необходимо перейти в файл с header'ом при помощи команды

nano /usr/src/app/app/javascript/components/shared_components/Header.jsx 

В этом файле:

  1. Удалить строку import Logo from './Logo';
  2. В тэге <Navbar.Brand> удалить строку <Logo size="small" /> и на ее месте вписать
<a href="https://srv-conf5.gk-rte.ru/" target="_self" rel="noreferrer" style={{textDecoration: 'none', color: 'black', paddingtop: '20px',}}>
  <div className="text-center pb-4">
   <h4>Портал обучения ГК "РусТехЭксперт"</h4>
  </div>
 </a>

Таким образом, картинка заменится на нужную надпись.

Редактирование Home page

Для редактирования домашней страницы необходимо перейти в файл

nano /usr/src/app/app/javascript/components/home/HomePage.jsx

В этом файле:

  1. Удалить строку import HomepageFeatureCard from './HomepageFeatureCard'
  2. Удалить последний тэг <Row> вместе с его содержимым
  3. В открывающем тэге <h1> после classname="my-4" вписать style={{width: 850,}}
  4. Удалить тэг <a>, который находится в первом тэге <Row>, вместе с его содержимым

Таким образом, на главной странице останется только две строки текста.

Редактирование текста на домашней странице

Для редактирования текста на домашней странице необходимо перейти в файл

nano /usr/src/app/app/assets/locales/ru.json

В этом файле:

1. В блоке "homepage": удалить текст во всех записях. Все записи, кавычки и запятые, не относящие к тексту, должны быть оставлены.

2. В запись "welcome_bbb": вписать

Добро пожаловать на портал обучения группы компаний \"РусТехЭксперт\"

3. В запись "bigbluebutton_description": вписать

По всем вопросам, связанным с работой портала, обращаться на почту \"help_desk@gk-rte.ru\"

Таким образом, текст на домашней странице изменится.

Редактирование Footer'a

Для редактирования Footer'a необходимо перейти в файл

nano /usr/src/app/app/javascript/components/shared_components/Footer.jsx

В этом файле:

1. В блоке return необходимо удалить первый тэг <a> и вместо него вставить

<div><a href="https://gk-rte.ru/" target="_blank" rel="noreferrer">ГК "РусТехЭксперт"</a></div>

2. Удалить блок {env?.VERSION_TAG}

Таким образом, изменится надпись в футере и ссылка на этой надписи

Редактирование окна входа

Для редактирования окна входа необходимо перейти в файл

nano /usr/src/app/app/javascript/components/users/authentication/SignIn.jsx

В этом файле:

1. Удалить тэг <div> с classname="text-center pb-4". Вместо него вставить следующую запись

<a href="https://srv-conf5.gk-rte.ru/" target="_blank" rel="noreferrer" style={{textDecoration: 'none', color: 'black',}}>
  <div className="text-center pb-4">
   <h4>Портал обучения группы компаний "РусТехЭксперт"</h4>
  </div>
</a>

2. Удалить последний тэг <span> вместе с его содержимым. Это нужно для лишения сторонних пользователей возможности зарегистрироваться.

Редактирование карточки входа в конференцию для приглашенного пользователя

Для редактирования этой карточки необходимо перейти в файл

nano /usr/src/app/app/javascript/components/rooms/room/join/RoomJoin.jsx

В первом тэге <Row> удалить все содержимое и вписать следующее

<a href="https://srv-conf5.gk-rte.ru/" target="_blank" rel="noreferrer" style={{textDecoration: 'none', color: 'black',}}>
  <div className="text-center pb-4">
   <h4>Портал обучения группы компаний "РусТехЭксперт"</h4>
  </div>
</a>

Таким образом, произойдет замена логотипа BigBlueButton на надпись.

Удаление кнопки регистрации

Для удаления кнопки регистрации необходимо перейти в файл

nano /usr/src/app/app/javascript/components/home/AuthButtons.jsx

В блоке return удалить блок с вызовом функции showSignUp, и тэгом <ButtonLink>