Найти тему
Тюнинг Админа

Zulip - Групповой чат для компании

Оглавление

  • Вводная часть
  • Задачи компании
  • Системные требования
  • Регистрация записи в DNS и проброс портов
  • Установка Zulip
  • Настройка серверной и клиентской части
  • Способы авторизации в Zulip
  • Вывод

Вводная часть

Zulip - это групповой чат для общения сотрудников компании, наподобие Slack или Mattermost. Изначальным единственным разработчиком являлся Dropbox и использовался в качестве основного средства взаимодействия своих сотрудников, но некоторое время спустя компания решила сделать код сервиса свободным, так что теперь им могут пользоваться все желающие.

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

Сервис поддерживает поиск по 10 000 последних сообщений, загрузку файлов во внутреннее хранилище объёмом не более 5 ГБ. Есть продвинутая система уведомлений, которая не позволит вам пропустить ни одного важного сообщения. Сервис переведён на все популярные языки, в том числе и на русский.

Но самое главное, Zulip имеет клиенты для всех популярных платформ, поэтому вы сможете использовать этот сервис на любом своём устройстве. Более того, если хотите, то можете установить Zulip на свой сервер и организовать внутреннюю систему коммуникации в рамках собственной организации. Исходный код можно скачать на GitHub.

Бесплатные аналоги: Mattermost, Riot.

Плюсов решения следующее:

  • Хорошая документация.
  • Простой и интуитивно понятный интерфейс, ничего лишнего.
  • Отдельные ветки обсуждений в одной конференции. К примеру, можно создать конференцию Отдела разработки и в ней создать несколько тем и по каждой сотрудники обсуждают или делятся информацией.
  • Возможность пересылки сообщений из email сразу в конференцию. Можно создать почтовый алиас, письма, отправленные в этот алиас, будут автоматом падать в конференцию в чате.
  • Хорошее логирование всех событий.

Задачи компании

Для живого - реал-тайм группового общения отделам компании и удаленным сотрудникам необходим свой собственный корпоративный чат, работать с которым можно было бы из любого уголка нашей необъятной родины. Решение должно иметь мультиплатформенные клиентские приложения. количество сотрудников 200+.

Системные требования

Минимальные требования:

  • Неттоп или виртуалка, автор использует Proxmox.
  • 2 ядра intel atom 1,8Ггц
  • Память 2ГБ
  • Жесткий диск 10ГБ

Системные требования под текущие задачи:

  • Виртуальная машина Proxmox.
  • 4 ядра intel xeon 2Ггц
  • Память 6ГБ
  • Жесткий диск 100ГБ с возможностью расширения

Требования к операционной системе:

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Debian 11

Вы также можете запустить Zulip на других платформах, поддерживающих Docker, с помощью docker-zulip.

Регистрация записи в DNS и проброс портов

На маршрутизаторе необходимо выполнить проброс портов 80,443 и 993 - если планируете включить imap и настроить интеграция сообщений в чаты сотрудников.

SSL сертификат

Вашему серверу Zulip потребуется SSL-сертификат для доменного имени, которое он использует. Для большинства серверов Zulip рекомендуемый (и самый простой) способ получить это - просто использовать опцию --certbot в установщике Zulip, которая автоматически получит сертификат для вас и сохранит его обновленным.

Для тестовых установок всегда доступна еще более простая альтернатива: параметр --self-signed-cert в установщике.

Установка Zulip

У меня уже развёрнута виртуалку с операционной системой Ubuntu 22.04.

Повышаем наши права в системе:

sudo -s

Переименовываем нашу машинку если нужно:

hostnamectl set-hostname zulip

Обновляем пакетную базу репозитория:

apt update -y

Обновляем систему:

apt upgrade -y

Скачиваем сервер Zulip Server 5.6:

curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz

-2

Распаковываем архив:

tar -xf zulip-server-latest.tar.gz

Установка zulip:

./zulip-server-*/scripts/setup/install --certbot --email=admin@company.ru --hostname=zulip.company.ru

где, admin@company.ru - ваш почтовый ящик, для регистрации в let's Encrypt и получения ssl.

zulip.company.ru - полное имя вашего сервера.

Установщик сразу попробует получить сертификат от let's encrypt с помощью certbot. Для этого нужно будет согласиться с регистрацией сведений.

-3

Сам процесс установки будет длиться в среднем минут 5, пока не появиться информация о том, что сервер установлен.

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

-4

Сервер после установки перезапускать не нужно.

Обратите внимание, что веб сервер работает по https и у нас используется сертификат полученный у let's Encrypt.

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

-5

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

-6

На этом непосредственно установка корпоративного чата zulip закончена.

Настройка серверной и клиентской части

Все основные настройки сервера хранятся в конфигурационном файле /etc/zulip/settings.py

Они очень хорошо задокументированы в виде блоков комментариев, но лучше сначала почитайте документацию.

Первым делом советую настроить отправку электронной почты. Это нужно для отправки подтверждений регистрации, уведомлений о новых сообщениях.

Настройка исходящей электронной почты

  • Создайте почтовый ящик с которого Сервер Zulip будет отправлять почту.
  • Перейдите в консоль сервера Ubuntu. Повысьте свои права в системе: sudo -s
  • Откройте основной файл настройки сервера Zulip:

nano /etc/zulip/settings.py

  • Найдите и раскомментируйте параметры:

EMAIL_HOST = 'smtp.mail.ru' -- ваш почтовый сервер

EMAIL_HOST_USER = 'zulip@company.ru' -- Ящик созданный для Zulip

EMAIL_USE_TLS = True -- Используем TLS

EMAIL_PORT = 587 -- Порт SMTP сервера с поддержкой TLS

  • Добавляем пароль от ящика, который зашит в другом конфигурационном файле:

nano /etc/zulip/zulip-secrets.conf

  • Добавляем параметр и пароль:

email_password = abcd1234

  • Сохраните конфигурационный файл сочетанием клавиш CTRL+O и выход CTRL+X.
  • Перезапустите сервер Zulip:

su zulip # /home/zulip/deployments/current/scripts/restart-server

  • Проверяем отправку почты:

# /home/zulip/deployments/current/manage.py send_test_email admin@company.ru

В указанный ящик должно упасть тестовое письмо. Если это не произошло, можно посмотреть в лог файлах:

  • /var/log/zulip/errors.log
  • /var/log/zulip/send_email.log
  • /var/log/zulip/queue_error/email_senders.errors

Базовые настройки сервера и клиента zulip

Всё основные базовые настройки осуществляются через web интерфейс, они простые и отдельного упоминания не требуют.

Первым делом переключите язык на русский и формат времени в персональных настройках и в организации.

-7
-8

Пригласить пользователей в чат можно в разделе настройки организации

-9

Добавить можно хоть целым списком почтовых адресов назначив им галочками доступные каналы

-10

Способы авторизации

Zulip поддерживает несколько типов авторизации:

Подключается в конфигурационном файле: /etc/zulip/settings.py

-11

Мобильный сервис push-уведомлений

Мобильные приложения Zulip для iOS и Android поддерживают получение push-уведомлений с серверов Zulip, чтобы пользователи знали, когда приходят новые сообщения.

Начиная с Zulip 1.6 для Android и iOS, серверы Zulip поддерживают пересылку push-уведомлений в центральную службу пересылки push-уведомлений.

Вы можете включить эту опцию для своего сервера Zulip следующим образом:

Раскомментируйте строку в файле: /etc/zulip/settings.py

PUSH_NOTIFICATION_BOUNCER_URL = 'https://push.zulipchat.com'

Выполняем регистрацию нашего сервера на сервисе push.zulipchat.com:

su zulip -c '/home/zulip/deployments/current/manage.py register_server'

Система попросит вы принимаете пользовательское соглашение:

-12

Поздравляю! Служба успешно настроена.

Заключение

В этой статье я продемонстрировал вам как устанавливается и настраивается данное решение.

В целом, этот групповой чат подходит на роль корпоративного. Сделано неплохо и проблем в работе я не заметил. Идут приготовления для ввода в эксплуатацию. Из бесплатного, это наверное оптимальный вариант, он мне понравился больше, чем все, что я видел до него. Конечно, не без недостатков, но мне они показались не критичными.

Существует десктопная и мобильная версия. Десктопная версия выглядит как аналог web интерфейсу. Мобильная версия ставится через google play.