Установка Prosody и миграция с ejabberd

Решил систематизировать все сакральные знания по установке этого неплохого Jabber-сервера. Настройка велась не с нуля, а выполнялся переезд с ejabberd, который в принципе неплох, но для небольшой организации немного тяжёлый, а также плохо себя вёл на Ubuntu 14.04.

Я ставил самую свежую версию (читай — версию в разработке), которая на данный момент 0.10. Адрес сервера будет 192.168.0.2, все операции от рута.

Установка и начальная настройка Prosody

Вначале добавим репозиторий и ключ:

и ставим:

Генерируем ключи:

Теперь редактируем конфиг. Prosody написан на Lua, который гораздо более читабелен, чем старый формат Erlang (с переходом на YAML это исправили)

Вот пример моего конфига на 2 домена:

Движок базы. Я выбрал MySQL, хотя встроенный файловый формат тоже хорош и удобочитаем. Создаём базу:

Важные моменты

c2s_require_encryption = false — в Miranda NG в Windows XP не работает TLS, поэтому я разрешил соединяться без шифрования. Внутри корпоративной сети это некритично. Также добавил параметр legacyauth

groups_file должен обязательно идти до VirtualHost. Это единственная настройка модуля groups, который нужен для загрузки общего ростера. Сам формат файла такой:

Плюсик означает публичную группу, то есть группы «Бухгалтерия» и «Продажи» будут у всех в списках, а «IT» только у членов группы «IT». Через веб-интерфейс управлять ими нельзя (я редактирую через Webmin). Через равно задаётся имя в списке. Кириллица работает (разумеется, UTF-8)

mod_admin_web — плагин веб-интерфейса. Он ещё менее функциональный, чем у ejabberd, и из него не отредактировать общий ростер, но лучшего пока нет. И его нужно ставить отдельно.
Инструкция по установке модулей
Инструкция к самому модулю
Ставим Mercurial, скачиваем репозиторий с плагинами, копируем и добавляем в конфиг (у меня уже добавлено). В Ubuntu плагины лежат в /usr/lib/prosody/modules/, узнать свой путь можно запустив prosodyctl about

Обычно в локальной сети Jabber-сервер не резольвится по своему полному доменному имени, поэтому нужно добавить VirtualHost для IP-адреса или внутреннего доменного имени.  Пример:
http://192.168.0.2:5280/admin/
https://192.168.0.2:5281/admin/

LuaExpat. prosodyctl может ругаться (без потери функционала, но сервер уязвим к DoS-атакам) на устаревший или отсутствующий luaexpat, который должен быть версии 1.3.0 или новее. В репозиториях текущего LTS Ubuntu Server 14.04 есть только 1.2.0, варианты решения — либо прикрутить из этого репозитория, либо отключить mod_compression, либо не заморачиваться :)

Миграция пользователей с ejabberd

1. Экспортируем дамп базы ejabberd

Может понадобиться пакет exmpp. Файл окажется в /var/lib/ejabberd, потом можно будет его перенести.

2. Импортируем дамп базы ejabberd в prosody

Инструкция по импорту здесь. Нужно поставить Mercurial (если ещё не установлен), скачать репозиторий с исходниками и отредактироватьь конфиг.

3. Конвертируем файловую базу Prosody в MySQL

Необязательно если мы не используем MySQL. Инструкция к мигратору.

По умолчанию этот файл есть в папке /etc/prosody, можно отредактировать либо его, либо этот и запускать с опцией —config=./migrator.cfg.lua

И запускаем импорт


So, what do you think ?

You must be logged in to post a comment.