- Вводная часть
- Задачи компании
- Системные требования
- Регистрация записи в 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
Распаковываем архив:
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. Для этого нужно будет согласиться с регистрацией сведений.
Сам процесс установки будет длиться в среднем минут 5, пока не появиться информация о том, что сервер установлен.
Переходим по приведенной ниже ссылке, чтобы подтвердить установку и зарегистрировать организацию.
Сервер после установки перезапускать не нужно.
Обратите внимание, что веб сервер работает по https и у нас используется сертификат полученный у let's Encrypt.
Дальше выполняете указания мастера по созданию организации.
После создания организации, вы сразу же попадаете в веб интерфейс мессенджера.
На этом непосредственно установка корпоративного чата 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 интерфейс, они простые и отдельного упоминания не требуют.
Первым делом переключите язык на русский и формат времени в персональных настройках и в организации.
Пригласить пользователей в чат можно в разделе настройки организации
Добавить можно хоть целым списком почтовых адресов назначив им галочками доступные каналы
Способы авторизации
Zulip поддерживает несколько типов авторизации:
Подключается в конфигурационном файле: /etc/zulip/settings.py
Мобильный сервис 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'
Система попросит вы принимаете пользовательское соглашение:
Поздравляю! Служба успешно настроена.
Заключение
В этой статье я продемонстрировал вам как устанавливается и настраивается данное решение.
В целом, этот групповой чат подходит на роль корпоративного. Сделано неплохо и проблем в работе я не заметил. Идут приготовления для ввода в эксплуатацию. Из бесплатного, это наверное оптимальный вариант, он мне понравился больше, чем все, что я видел до него. Конечно, не без недостатков, но мне они показались не критичными.
Существует десктопная и мобильная версия. Десктопная версия выглядит как аналог web интерфейсу. Мобильная версия ставится через google play.