OpenMeetings

Ставлю на Ubuntu 20.04
sudo apt update && sudo apt dist-upgrade -y && sudo apt install vim htop mc net-tools -y && sudo ufw disable && sudo reboot now
sudo apt install -y openjdk-11-jdk openjdk-11-jdk-headless imagemagick libjpeg62 zlib1g-dev && \
sudo add-apt-repository ppa:libreoffice/ppa && sudo apt update && sudo apt install libreoffice -y

Выбираем OpenJava 11, если установлено больше одной версии:

sudo update-alternatives --config java
sudo vi /etc/ImageMagick-6/policy.xml

В файле меняем:

<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PDF" />

на

<!-- <policy domain="coder" rights="none" pattern="PS" /> -->
<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->
sudo apt install -y sox mariadb-server ffmpeg vlc curl && \
sudo systemctl enable mariadb && sudo systemctl start mariadb && sudo mysqladmin -u root password ec85b5401344bc448beff20907b8d

после "-p" дописываем пароль, установленный выше без пробела

sudo mysql -u root -pec85b5401344bc448beff20907b8d
CREATE DATABASE open600 DEFAULT CHARACTER SET 'utf8';
GRANT ALL PRIVILEGES ON open600.* TO 'open600admin'@'localhost' IDENTIFIED BY 'ec85b5401344bc448beff20907b8d' WITH GRANT OPTION;
quit

Записываем на будущее параметры доступа к БД:

DB=open600, USER=open600admin, PASSWORD=ec85b5401344bc448beff20907b8d

Скачиваем актуальную версию OpenMeetings, коннектор Tomcat, создаем несколько папок для записей комнат:

cd /opt 
sudo wget https://archive.apache.org/dist/openmeetings/6.1.0/bin/apache-openmeetings-6.1.0.tar.gz && \
sudo tar xzvf apache-openmeetings-6.1.0.tar.gz && sudo mv apache-openmeetings-6.1.0 open600 && \
sudo mkdir -p /opt/open600/webapps/openmeetings/data/streams/{1..14} && \
sudo mkdir -p /opt/open600/webapps/openmeetings/data/streams/hibernate && \
sudo chmod -R 750 /opt/open600/webapps/openmeetings/data/streams && sudo chown -R nobody:nogroup /opt/open600
cd /opt && sudo wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.22/mysql-connector-java-8.0.22.jar && \
sudo cp /opt/mysql-connector-java-8.0.22.jar /opt/open600/webapps/openmeetings/WEB-INF/lib && \
sudo wget https://cwiki.apache.org/confluence/download/attachments/27838216/tomcat3 && \
sudo cp tomcat3 /etc/init.d/ && sudo chmod +x /etc/init.d/tomcat3

Открываем на редактирование и добавляем после #!/bin/sh

sudo vi /etc/init.d/tomcat3

### BEGIN INIT INFO
# Provides:          tomcat3
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: tomcat3...
### END INIT INFO

Добавляем Tomcat в автозагрузку, ставим докер и запускаем в контейнере Kurento

sudo systemctl enable tomcat3 && sudo apt install -y apt-transport-https ca-certificates software-properties-common && \
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
sudo apt install -y docker-ce && sudo usermod -aG docker ${USER} && su - ${USER}
sudo docker run --restart=always -d --name kms -p 8888:8888 --mount type=bind,source=/opt/open600/webapps/openmeetings/data,target=/opt/open600/webapps/openmeetings/data kurento/kurento-media-server 

Я отключаю https, т.к. буду использовать Nginx Reverse Proxy: открываем на редактирование и в двух местах меняем:

sudo vi /opt/open600/conf/server.xml
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

на

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

и

<Connector port="5080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">

на

<Connector port="5080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="false">

Далее идем по адресу тачки, например, http://192.168.0.167:5443/openmeetings

Тип БД - MySQL
DB=open600, USER=open600admin, PASSWORD=85b5401344bc448beff209sHjhn

Заводим пользователя с административными правами и вбиваем данные:

Username = Имя пользователя с административными правами
Userpass = его же пароль
Email = его же почта
User Time Zone = часовой пояс
Name = например, openmeetings - группа администраторов.

Вперед, настройки почтовика и т.д., в строке OpenOffice/LibreOffice Path for jodconverter прописываем /usr/lib/libreoffice

По окончании установки сначала перезапускаем tomcat:

sudo systemctl restart tomcat3

Ждём секунд 30, а затем нажимаем ссылку ВХОД В ПРИЛОЖЕНИЕ.

Далее ставим и включаем Coturn, раскомментируя строку TURNSERVER_ENABLED=1:

sudo apt install coturn -y && sudo vi /etc/default/coturn

Создаем папку логов:

sudo mkdir -p /var/log/turnserver

Создаем безопасный пароль и записываем, понадобится в дальнейшем (типа такого af881ec85b5401344bc448beff20907b8d44bebb1c5dc61a):

sudo openssl rand -hex 32

Раскомментируем следующие строки и заполняем:

sudo vi /etc/turnserver.conf
use-auth-secret
static-auth-secret=af881ec85b5401344bc448beff20907b8d44bebb1c5dc61a1a
realm=DNS-имя вашего сайта, например openmeetings.domain.ru
stale-nonce=0
log-file=/var/log/turnserver/turnserver.log

В секции ### Kurento ### меняем следующие строки:

sudo vi /opt/open600/webapps/openmeetings/WEB-INF/classes/openmeetings.properties
kurento.turn.url="Внешний IP-адрес для обращения к серверу, на котором NginX proxy висит":3478
kurento.turn.user=coturnuserexternal
kurento.turn.secret=af881ec85b5401344bc448beff20907b8d44bebb1c5dc61a

Приведу рабочую конфигурацию для NginX Reverse Proxy

upstream openmeetings {
server 192.168.0.167:5080;
}
server {
    listen 443;
    server_name "DNS-имя вашего сайта, например openmeetings.domain.ru";
location / {
    proxy_pass http://openmeetings;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_redirect off;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    }
  }

Осталось только пробросить порты на роутере и можно подключаться извне:

TCP to NginX Proxy 5443,3478,8888
UDP to OpenMeetings server 3478,49152-65535

Опционально настраиваем на тачке UFW (Ubuntu FireWall):

sudo ufw allow OpenSSH
sudo ufw allow 5443,3478,8888/tcp
sudo ufw allow 3478,49152:65535/udp
sudo ufw enable

IT-Admins. 2020