Openfire on Ubuntu 18.04

Задача - сделать корпоративный чат.

Выбор пал на продукт под именем Openfire. Это XMPP-сервер, написанный на Java. Живет данный продукт здесь - https://www.igniterealtime.org, там же можно найти и клент для него, под названием Spark. Хотя можно пользоваться любым, приглянувшивсям вам клиентом Jabber.

Ставим java

Нам нужна только  java-jre, приступим:

apt install openjdk-8-jre

java -version

Вывод должен быть:

openjdk version "1.8.0_171"

OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.18.04.1-b11)

OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Если не установлен Mysql - вам сюда: https://onedayadmin.sytes.net/mysql-in-ubuntu-14-04/

Для корректного отображения логинов и групп латиницей, подкорректируем MySQL

nano /etc/mysql/my.cnf

В конец секции [mysqld] добавим три строки

collation_server=utf8_unicode_ci

character_set_server=utf8

skip-character-set-client-handshake

 
mysql -p

Создадим пользователя и базу для нашего сервиса.

create database openfiredb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

create user 'openfire'@'localhost' IDENTIFIED BY 'You_Password';

grant all privileges on openfiredb.* to 'openfire'@'localhost';

FLUSH PRIVILEGES;

Скачиваем и устанавливаем сам Openfire

wget http://download.igniterealtime.org/openfire/openfire_4.2.3_all.deb

dpkg -i openfire_4.2.3_all.deb

service openfire start          или            systemctl start openfire.service

Заходим на web интерфейс http://192.168.1.10:9090

1. Выбираем язык

2.1 Доменное имя XMPP: my.lan

2.2 Имя узла сервера (полное доменное имя): openfire.my.lan

2.3 Порт консоли администраторa: 9090

2.4 Безопасный порт консоли администраторa: 9091

2.5  Шифрование свойств через: Blowfish

3. Стандартное подключение к базе данных

4. 1 Предварительные настройки драйверов базы данных: Mysql

4.2 Класс драйвера JDBC: com.mysql.jdbc.Driver

4.3 URL базы данных: jdbc:mysql://127.0.0.1:3306/openfiredb?rewriteBatchedStatements=true&characterEncoding=UTF-8

для новых версий

jdbc:mysql://127.0.0.1:3306/openfiredb?rewriteBatchedStatements=true&characterEncoding=utf-8&characterSetResults=utf-8&requireSSL=false&useSSL=false&serverTimezone=MST7MDT

Возможно надо установить (не проверено) mysql-connector-java_8.0.18-1ubuntu18.04_all.deb

4.4 Имя пользователя: Openfire

4.5 Пароль: You_Password     (пароль для пользователя которого создали в Mysql)

5. Настройки профиля: По умолчанию

6. Пишем свой майл и новый пароль от админки.

Если что-то пошло не так, всегда можно остановить сервис 

systemctl stop openfire

Удалить базу данных, создать ее заново.

Изменить одну строку в конфигурационном файле Openfire

nano /etc/openfire/openfire.xml

<setup>false</setup>

меняем на <setup>true</setup>

Запускаем сервис

systemctl start openfire

Для нормальной работы XMPP сервера требуется запись типа SRV  на нашем ДНС сервере.

nano /var/cache/bind/db.my.local

добавим в конец

_xmpp-client._tcp.atlant.local. 86400 IN SRV 0 5 5222 openfire.my.local.

_xmpp-server._tcp.atlant.local. 86400 IN SRV 0 5 5269 openfire.my.local.

А также должна быть запись A типа

openfire A 192.168.1.11(ip сервера openfire)

Клиент я решил взять Spark, однако выбор никто не ограничивает их просто куча...

Скачиваем, инсталим Spark, запускаем его.

Заходим в дополнительно:

Основное -> ставим галочки

Accept all certificates

Disable certificate hostname verification

Вводим имя и пароль созданного нами заранее пользователя

Домен : my.lan

Автоматизация установки Spark тут:

https://onedayadmin.sytes.net/avtomaticheskoe-dobavlenie-nastroek-pri-ustanovke-spark/

Плагины

  • Плагин registration

Идем в закладку Плагины -> Доступные плагины -> Ставим "+" на против registration

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

registration.tar

Перемещаем его по адресу

 /var/lib/openfire/plugins/registration/i18n/registration_i18n_ru_RU.properties

Если возникает ошибка Cache Roster was full, shrinked to 90% in 0ms.

Беремся настраивать кэш openfire, для этого зайдем в Сервер -> Свойства системы ->  и добавим вот эти переменные:

cache.group.size = 5242880

cache.group.maxLifetime = 3600000

cache.username2roster.size = 5242880

cache.username2roster.maxLifetime = 3600000

cache.userGroup.size = 5242880

cache.userGroup.maxLifetime = 3600000

cache.userCache.size = 2097152

cache.userCache.maxLifetime = 3600000

cache.groupMeta.size = 2097152

cache.groupMeta.maxLifetime = 3600000