Несмотря на обилие современных мессенджеров таких как Telegram, WhatsApp, Viber и другие, многие компании отдают предпочтение проверенным и независимым решениям. Одним из таких решений остаётся Jabber. Jabber (на данный момент известен под именем XMPP - eXtensible Messaging and Presence Protocol - открытый, основанный на XML, свободный для использования протокол для мгновенного обмена сообщениями.
Изначально он спроектирован легко расширяемым, и помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети. В данной статье будет рассмотрена установка сервера Jabber в Ubuntu 20.04 на примере XMPP ejabberd.
Содержание статьи
Установка Jabber-сервера в Ubuntu 20.04
Рассматриваемый далее сервер ejabberd являются бесплатным, поддерживает кластеризацию, имеет высокую отказоустойчивость, поддерживает веб-интерфейс и являются кроссплатформенным.
1. Установка ejabberd
ejabberd – отказоустойчивый XMPP сервер, написанный на языке программирования Erlang. Установить сервер можно при помощи официального скрипта установки. Далее будет рассмотрен данный способ.
На момент написания статьи, последней актуальной версией ejabberd была версия 21.07. Перейдите на официальный сайт ejabberd и скачайте самый первый файл с именем Linux x86 64-bits:
Перейдите в директорию куда был скачен файл (по умолчанию это директория Downloads) и сделайте скрипт исполняемым при помощи команды:
chmod +x ejabberd-21.07-linux-x64.run
Далее запустите скрипт при помощи команды:
./ejabberd-21.07-linux-x64.run
В появившемся окне необходимо выбрать язык и далее нажать на кнопку ОК:
Во всех последующих шагах после выбора настроек необходимо нажимать на кнопку Forward для перехода к следующему шагу:
Далее необходимо принять условия лицензионного соглашения поставить чек бокс напротив фразы I accept the agreement:
На следующем этапе необходимо выбрать директорию куда будет установлен ejabberd. Можно оставить путь по умолчанию (домашняя директория текущего пользователя) или выбрать любой другой путь:
Следующий шаг – выбор доменного имени устройства. На данном этапе программа автоматически определяет hostname устройства:
Далее необходимо задать имя для учетной записи администратора:
Придумайте пароль для учетной записи администратора:
На следующем шаге программа спросит будет ли данная надо являться частью кластера. Так как кластер создан не будет можно выбрать No и продолжить установку:
После этого установщик сообщит что программа готова к установке:
Необходимо дождаться завершения установки. Установка занимает менее минуты:
2. Запуск ejabberd
После завершения установки на рабочем столе появятся 2 ярлыка: Start ejabberd.desktop и Stop ejabberd.desktop:
Данные ярлыки отвечают за запуск и остановку ejabberd. Необходимо щелкнуть правой кнопкой мыши по каждому из этих 2 ярлыков и выбрать пункт Allow launching. Далее запустите ярлык Start ejabberd.desktop для запуска сервера. Откроется браузер и отобразится приветственная страница с информацией:
Необходимо щёлкнуть по ссылке admin interface для перехода в веб-интерфейс ejabberd. Веб интерфейс расположен по адресу localhost:5280. В поле username необходимо ввести имя пользователя в формате имя учетной записи@имя хоста системы и пароль, который был задан во время установки:
После ввода учетной записи отобразится веб-интерфейс ejabberd:
Подключение к серверу ejabberd
Запустите сервер ejabberd, кликнув по ярлыку Start ejabberd.desktop на рабочем столе. Далее необходимо перейти в веб-интерфейс и на открывшейся странице выбрать раздел Virtual Hosts.
В открывшемся меню выберите свой хост.
Далее необходимо создать пользователя, который будет подключаться к серверу и отправлять сообщения. В поле User придумайте и введите имя для пользователя, в поле Password придумайте и введите пароль. Далее нажмите на кнопку Add User.
Для подключения к XMPP серверу необходима программа клиент. Существует большое количество, таких программ, которые доступны на разных ОС – Windows, Linux, Mac OS, Android, iOS.
В качестве примера была выбрана программа Spark. Перейдите на официальный сайт Spark и скачайте программу. Spark доступен на Windows, Linux и Mac OS.
После установки откройте программу и в окне для подключения введите имя пользователя, пароль и домен. В качестве пользователя необходимо ввести ранее созданного пользователя в веб-интерфейсе ejabberd. В качестве имени домена можно указать как IP адрес сервера, так и имя хоста на котором установлен ejabberd. После ввода аутентфикационых данных нажмите на кнопку Войти.
При успешном входе откроется окно с карточкой контакта. Для начала чата с другим пользователем необходимо нажать на кнопку Контакты далее выбрать Добаввить контакт.
Добавляемый пользователь должен быть зарегистрирван на сервере ejabberd. Для начала чата необходимо перейти в меню Действия и выбрать пункт Начать чат, выбрав имя необходимого пользователя.
Выводы
В данной статье была рассмотрена установка Jabber в Ubuntu 20.04 на примере ejabberd. Благодаря простоте установка занимает считанные минуты. После этого программой можно пользоваться без дополнительных настроек таких как правка конфигурационных файлов, подключение к СУБД и т.д. что характерно для других XMPP серверов. Если у вас еще остались вопросы, спрашивайте в комментариях!
Для корпоративного использования все очень плохо. Плохая интеграция с ldap у ej и of. of если пользователей 2000+, они не синхронизируются из коробки, надо переписывать веб панель. ej и of не работает sso, точнее работает с мегакостылями сервер одной версии+клиент определенной версии+Пакеты (в случае с of Java, в случае с ej gss че-то там) определенных версий. С мобильными клиентами все очень плохо, с обычными клиентами тоже печаль, история не подгружается. С версии на версию сложно переезжать, так как может поломаться интеграция с ldap или sso.
Посмотрите в сторону https://rocket.chat/ это хоть не из прошлого века и пободрее.
НА счёт статьи, не хочу обидеть, но надо помимо установки писать о настройке, интеграции с другими системами, резервном копировании и восстановлении. Поставить софт очень просто, основная боль при сопровождении а в статье нет этого.
У вас в начале статьи есть такое предложение: "На этой платформе есть немало корпоративных чатов, однако для их работы неизбежно требуется серверная часть, которую зачастую разворачивают на собственных мощностях компании."
Совбственно у меня один вопрос что за "корпоративных чатов" вы имели ввиду, ведь на Jabber'e, насколько я зная, разварачивают мессенджеры, чаты же это несколько другой тип программ общения, ярким примером которого служил IRC.
P.s. Меня собственно почему интересует этот вопрос, сейчас на предприятии используем для общения в локальной сети чат V-talking, но во первых проект уже давно закрыт, во вторых серверная часть платная, плюс еще много недостатков, с удовольствием бы сменил на похожий продукт, но среди бесплатных алтернатив пока не нашел.
Автор посмотрите https://rocket.chat/ он лучше чем of и ej уж точно.
OF и ej сырые и недоработанные, хотя их уже давно пилят. Не уровень Энтерпрайза ниразу. Не работает из коробки интеграция с ldap от 1500+ и sso. И чтобы это заработало надо лезть в код и патчить. Причём должны быть определенные версии клиентов, сервера и пакетов(для of должна быть определенная Java, для ej должна быть определённая библиотека gss-что-то там). Чтобы обновится на новую версию надо делать ресерч, чтобы ничего не поломалось. Нет мобильных клиентов, история не синхронизируется и т.д. В общем ej и of очень все плохо.
Более менее адекватный вариант это rocket chat.
И автор, написать мануал по установке это такое... Нужен опыт эксплуатации и сопровождения. Статья бы была бы нормальная, если бы в ней было:
1. Установка
2. Интеграция с ldap
3. Настройка sso
4. Интеграция с другими системами
5. Пару примеров работы с api
6. Резервное копирование ( что бэкапим, зачем и как)
7. Восстановление из резервной копии.
А другие варианты кроме rocket chat можете предложить, просто в домене основными машинами являються машины с Windows XP, а клиент rocket chat требует минимум Windows 7.
Других вариантов нет. Если у вас xp, то придется страдать. Вы не планировали обновиться на 10? Как вариант teams есть веб клиент.
Посмотрите на тот же prosody, ldap в модулях есть, сам сервер очень легко настраивается, совместные группы и чаты, как раз для внутреннего использования. В качестве клиента любой jabber клиент, у меня в основном везде работает gajim, машины от хр до 10, Есть и история сообщений и оффлайн доставка. На том же андроиде клиенты тоже нормально работают с ним.
Переход на Windows 7 идет но не сильно активно, т.к. идет вместе с обвновлением парка машин. А переход на 10-пока не планируется. Веб клиент, к сожалению не подходит.
Ошибка сообщения XMPP
Не удалось доставить сообщение для Admin: DNS lookup failed: non-existing domain (Код 404)
Как исправить?
Что делать если ярлыки запуска сервер не срабатывают или открываются в текстовом редакторе?
Как удалить? Установил sudo ./ejabberd-23.01-1-linux-x64.run. Настроить не смог. Хочу удалить а как?