Установка и настройка mattermost — форк корпоративного мессенджера slack
В поисках хорошего корпоративного чата некоторое время назад я наткнулся на mattermost. При ближайшем знакомстве оказалось, что это бесплатная альтернатива Slack. Я знаком с разными бесплатными корпоративными мессенджерами, но mattermost понравился больше всего. В этой статье я хочу рассказать, как установить и настроить mattermost на Centos 7.
Посмотреть подробно, что такое mattermost можно на официальном сайте. Если кратко, то это форк платного мессенджера Slack. Я не очень знаком с историей развития последнего, поэтому не знаю, когда и при каких условиях от него отпочковался бесплатный аналог. Похоже, исходники слака в какое-то время были доступны, и благодаря этому у него появились бесплатные аналоги.
Mattermost не единственный бесплатный аналог Slack. Я лично тестировал еще один — rocket.chat. Сейчас не готов предметно и основательно их сравнивать, так как не помню подробностей, но рокет чат мне понравился значительно меньше. В целом, все менее качественно, локализация была не очень, ну и функционал победнее по сравнению с mm. Когда я их сравнивал вместе, установив одновременно, mattermost мне понравился больше, поэтому решил пользоваться им.
Так же я подробно знакомился с сервером MyChat. По ссылке подробная статья и мой личный отзыв и впечатления после тестирования. В целом, продукт неплохой при цене ниже, чем платная версия mattermost, а функционал шире.
Рассмотрю еще один момент — зачем, собственно, нужны какие-то мессенджеры, когда есть skype, telegram, viber и другие бесплатные и популярные программы для общения. Тот, кто использовал указанные выше аналоги в реальной работе коллектива в 20-30 человек, думаю прекрасно себе представляет, в чем тут могут быть проблемы. Пройдусь по основным моментам:
- Skype последнее время стал сильно глючить и потреблять много ресурсов. Реально он был когда-то хорошим инструментом для коллективной работы, но теперь перестал им быть. В любой момент с очередным обновлением он может перестать работать или начать жестко глючить. Исправления можно ждать неделю — две. Помню из недавнего — примерно две недели после обновления история путалась в окне чата по датам. Более старые сообщения были ниже, чем новые. К тому же skype постоянно крутит рекламу, пожирает ресурсы, причем непонятно на что. Он стал очень прожорлив. Иногда глючит передача файлов, приходится пересоздавать профиль.
- Второй недостаток всех публичных мессенджеров — нет централизованного управления аккаунтами. Системному администратору неудобно управлять учетками — заводить новые, менять пароли и т.д. Плюс, они часто привязаны к мобильнику. Человек увольняется и забирает с собой свою учетку со всей историей. Это очень неудобно и в какой-то момент при росте коллектива становится проблемой.
- Нет управления историей. Она вся хранится в учетных записях пользователя. Если он ее удалит, случайно или специально, нет возможности восстановить. В какой-то момент это становится важно при интенсивной и ответственной работе.
Этот список на основе моего опыта работы небольших коллективов с различными мессенджерами. Кстати, наиболее простым и функциональным решением для корпоративного чата мне долгое время казалось решение на основе openfire. И только после знакомства с mattermost я стал потихоньку его внедрять в работу. Кратко расскажу о его достоинствах и недостатках, которые заметил я. Сначала достоинства:
- Сервер mattermost представляет из себя приложение, которое вы устанавливаете на своем сервере. То есть это закрытое решение, которое полностью под вашим контролем. Вы можете как угодно ограничивать к нему доступ на уровне сервера.
- Централизованное управление учетными записями. Администратор без проблем управляет всеми учетками — создает, блокирует, меняет пароли, выдает доступы и т.д.
- Централизованное хранение истории на вашем личном сервере в базе данных mysql. Можете ее хранить сколько угодно долго, бэкапить, восстанавливать, читать при необходимости.
- Удобная передача файлов прямо в чате. При этом файлы хранятся у вас на сервере сколь угодно долго.
- Приятный и понятный дизайн. Чат выглядит абсолютно одинаково через отдельное приложение, либо через браузер. Где пользоваться чатом каждый выбирает на свое усмотрение.
Теперь недостатки mattermost:
- Нет возможности распределить людей по группам. Это очень неудобно. Если у вас человек 30 и вам нужно кому-то отправить личное сообщение, придется искать его в общем списке любо вручную, либо с помощью поиска. Мне не понятно, почему такой простой и очевидный функционал отсутствует. Частично можно выйти из положения, создав для каждой группы отдельный чат, а в списке пользователей конкретного чата выбирать нужного человека. Тем не менее это не так удобно, как просто отдельные группы в общем списке.
- Мобильное приложение ужасно, и пользоваться им невозможно. Оно глючит, виснет и ничем не отличается от мобильной версии в браузере. То есть по сути мобильное приложение это самодельный браузер для http версии. Пользоваться приложением нет никакого смысла. Частично исправляет ситуацию то, что в мобильной версии браузера чат выглядит неплохо, пользоваться удобно. Но через браузер не будет push уведомлений.
- Нет подтверждения прочтения сообщения, как, например, в telegram. Считаю это очень удобной фичей, привыкнув к которой, трудно смириться с ее отсутствием.
- Много полезных и необходимых настроек только в платной версии. Например, интеграция с AD или другим ldap сервером. Возможность ограничить создание каналов обычными пользователями тоже существует только в платной версии. В бесплатной же каждый волен насоздавать сколько угодно каналов и вы не можете запретить это делать.
Вот пожалуй и все. Если с мобильной версией еще можно смириться, лично мне она не нужна, то списка юзеров и подтверждения прочтения мне не хватает. Тем не менее, что-то лучше, чем mattermost за бесплатно я не знаю. Буду рад, если кто-то поделится информацией на эту тему. Возможно, какой-то интересный и функциональный корпоративный мессенджер прошел мимо меня.
Подготовка к установке
Устанавливать mattermost будем на сервер под управлением CentOS 7. Если у вас еще нет готового сервера, можете воспользоваться моими руководствами по установке и настройке centos.
Далее нам понадобится web сервер с mysql. Я предпочитаю управлять базой данной mysql с помощью phpmyadmin, поэтому рекомендую мою статью на эту тему — установка phpmyadmin на CentOS 7. Там я подробно рассмотрел момент подготовки web сервера и установки непосредственно phpmyadmin. Далее я кратко выполню необходимые команды, а вы сами можете более подробно ознакомиться с процессом настройки по указанной выше ссылке.
Устанавливаем http, php, mariadb (аналог mysql сервера).
# yum install httpd php mariadb mariadb-server
Запускаем все это хозяйство и добавляем в автозагрузку.
# systemctl start httpd # systemctl start mariadb # systemctl enable httpd # systemctl enable mariadb
Устанавливаем пароль root для mariadb.
# /usr/bin/mysql_secure_installation
Пройдите по адресу http://ip-сервера/ и проверьте, что веб сервер нормально работает. Если вы не читали мою статью по настройке сервера, то убедитесь, что у вас либо настроен, либо отключен firewall. Подробнее об этом рассказано в моей статье — настройка iptables. Рассмотрение настройки фаервола выходит за рамки данной статьи, поэтому просто покажу, как быстро отключить firewalld. Если вы тестируете чат, вам нет смысла заморачиваться с настройкой.
# systemctl stop firewalld # systemctl disable firewalld
Теперь установим phpmyadmin, предварительно подключив epel репозиторий. Подробнее о репозиториях читайте отдельно.
# yum install epel-release # yum install phpmyadmin
Редактируем конфиг /etc/httpd/conf.d/phpMyAdmin.conf и разрешаем доступ с любого ip к phpmyadmin. Если вам это не надо, то откройте только для конкретного ip.
# mcedit /etc/httpd/conf.d/phpMyAdmin.conf
Заменяем параметры директории /usr/share/phpMyAdmin/ на следующие значения.
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 Require all granted AllowOverride All </Directory>
Перезапускаем httpd:
# apachectl restart
Заходим по адресу http://ip-сервера/phpmyadmin/ и проверяем, что панель нормально работает.
Установка mattermost
Все подготовительные действия сделали, приступаем к установке mattermost. Я воспользуюсь инструкцией с официального сайта. Но, как это обычно бывает, если следовать только ей, то ничего не получится 🙂 Во время установки будет как минимум одна ошибка, которую нужно будет исправить. В целом я более подробно и доступно распишу весь процесс. Если кому-то что-то будет не понятно, он может с вериться с официальным руководством по установке.
Идем в phpmyadmin и создаем там пользователя mattermost, указав также создать одноименную базу и выставить новому пользователю полные права на нее.
Качаем исходники севрера. Для этого идем на страничку https://about.mattermost.com/download/ и копируем ссылку на последнюю версию. На момент написания этой статьи, последняя версия mattermost была 4.5.0.
# cd /usr/src # wget https://releases.mattermost.com/4.5.0/mattermost-4.5.0-linux-amd64.tar.gz
Распаковываем архив и переносим его в директорию /opt.
# tar -xvzf *.gz # mv mattermost /opt
Создаем директорию для хранения файлов, которые будут передавать пользователи через чат.
# mkdir /opt/mattermost/data
Создаем отдельного пользователя для запуска сервера и доступа к папкам.
# useradd – system – user-group mattermost # chown -R mattermost:mattermost /opt/mattermost # chmod -R g+w /opt/mattermost
Редактируем конфигурационный файл, указывая там доступ к базе данных mysql.
# mcedit /opt/mattermost/config/config.json
Находим строку с DataSource и изменяем параметры подключения.
"DataSource": "mattermost:12345678@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=20s&writeTimeout=20s",
mattermost | Имя пользователя и базы данных mysql. В моем случае это одно и то же слово. |
12345678 | Пароль пользователя mysql mattermost. |
localhost | IP адрес mysql сервера. В данном случае это тот же сервер, где я выполняю установку. |
По идее все готово. Пробуем запустить сервер.
# cd /opt/mattermost/bin # sudo -u mattermost ./platform
Я стабильно в этот момент получаю ошибку:
Failed to create index Error 1214: The used table type doesn't support FULLTEXT indexes
При этом делаю все в соответствии с инструкцией на сайте. Ошибка понятна и легко исправляется. Mattermost при создании таблиц в базе данных создает их типа Innodb, а ему надо MyISAM. Я не вдавался в подробности, почему так происходит. Возможно это как-то связано с настройками базы данных по-умолчанию. Мы просто изменим тип уже созданных таблиц. Для этого идем в phpmyadmin, открываем там базу данных mattermost и выполняем sql запрос.
SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` engine=MyISAM;') as sqlcode FROM `information_schema`.`TABLES` t WHERE 1 AND t.`TABLE_SCHEMA` = 'mattermost' ORDER BY 1
Этот запрос сформирует нам список команд для изменения каждой таблицы. Я это сделал, чтобы не вручную менять тип каждой таблицы по отдельности. Отображаем полные строки получившихся команд и копируем их все.
Должен получиться такой набор SQL команд.
ALTER TABLE `mattermost`.`Audits` engine=MyISAM; ALTER TABLE `mattermost`.`ChannelMembers` engine=MyISAM; ALTER TABLE `mattermost`.`Channels` engine=MyISAM; ALTER TABLE `mattermost`.`Commands` engine=MyISAM; ALTER TABLE `mattermost`.`Compliances` engine=MyISAM; ALTER TABLE `mattermost`.`Emoji` engine=MyISAM; ALTER TABLE `mattermost`.`FileInfo` engine=MyISAM; ALTER TABLE `mattermost`.`IncomingWebhooks` engine=MyISAM; ALTER TABLE `mattermost`.`Licenses` engine=MyISAM; ALTER TABLE `mattermost`.`OAuthAccessData` engine=MyISAM; ALTER TABLE `mattermost`.`OAuthApps` engine=MyISAM; ALTER TABLE `mattermost`.`OAuthAuthData` engine=MyISAM; ALTER TABLE `mattermost`.`OutgoingWebhooks` engine=MyISAM; ALTER TABLE `mattermost`.`PasswordRecovery` engine=MyISAM; ALTER TABLE `mattermost`.`Posts` engine=MyISAM; ALTER TABLE `mattermost`.`Preferences` engine=MyISAM; ALTER TABLE `mattermost`.`Reactions` engine=MyISAM; ALTER TABLE `mattermost`.`Sessions` engine=MyISAM; ALTER TABLE `mattermost`.`Status` engine=MyISAM; ALTER TABLE `mattermost`.`Systems` engine=MyISAM; ALTER TABLE `mattermost`.`TeamMembers` engine=MyISAM; ALTER TABLE `mattermost`.`Teams` engine=MyISAM; ALTER TABLE `mattermost`.`Users` engine=MyISAM;
Выполняем их все сразу так же в базе mattermost. После этого все таблицы должны стать MyISAM.
Снова запускаем сервер.
/opt/mattermost/bin/platform
Если все в порядке, то должны увидеть такой вывод. Сервер успешно стартовал на порту 8065. Создадим файл для управления и запуска сервера как службы через systemctl. Останавливаем сервер по ctrl+c в консоли и создаем файл.
# mcedit /etc/systemd/system/mattermost.service
[Unit] Description=Mattermost After=syslog.target network.target mariadb.service [Service] Type=simple WorkingDirectory=/opt/mattermost/bin User=mattermost ExecStart=/opt/mattermost/bin/platform PIDFile=/var/spool/mattermost/pid/master.pid LimitNOFILE=49152 [Install] WantedBy=multi-user.target
Делаем его исполняемым.
# chmod 664 /etc/systemd/system/mattermost.service
Перезапускаем службу systemd.
# systemctl daemon-reload
Разрешаем запуск службы mattermost, добавляем ее в автозагрузку и запускаем.
# chkconfig mattermost on # systemctl enable mattermost # systemctl start mattermost
Проверяем, запустился ли сервер.
# netstat -tulnp | grep 8065 tcp6 0 0 :::8065 :::* LISTEN 2547/platform
Все в порядке, сервер повис на порту 8065. Правда почему-то на ipv6, но по ipv4 тоже отвечает. Открываем в браузере страничку с чатом. В моем случае ее адрес такой — http://192.168.13.25:8065. На этом установка корпоративного мессенджера mattermost закончена. Приступаем к настройке.
Настройка mattermost
При первом заходе в чат по указанному ранее адресу, вы попадаете на страницу создания учетной записи администратора. Указывайте ваш емейл, имя пользователя и пароль. Далее вам предлагают создать команду — team. В данном случае это что-то вроде отдельного изолированного чата. На сервере может быть несколько независимых друг от друга тимов со своими пользователями и комнатами. Можно создать team позже, а сначала перейти в консоль и сделать несколько полезных настроек.
Здесь я рекомендую сразу настроить авторизацию на smtp сервере для отправки уведомлений. Без них полноценной работы чата не получится. Работать все будет, но без оповещений, а они иногда бывают полезны. Например, если пользователь в оффлайне, а ему пишут личное сообщение, он может быть уведомлен об этом по почте. Считаю это полезным функционалом.
Так что идем в раздел NOTIFICATIONS -> Email, указываем там Enable Email Notifications — true и дальше заполняем необходимые настройки, которые будут отличаться в зависимости от того, каким почтовым сервером вы будете пользоваться.
Далее укажите язык по-умолчанию для всех пользователей, чтобы не пришлось его потом менять у каждого по отдельности. Для этого идем в раздел GENERAL -> Localization и выбираем нужные языки.
Так же рекомендую обратить внимание на настройку подтверждения email адреса. Она по-умолчанию выключена. Лично мне так удобнее, я ее не включаю. Когда сервер закрытый и все учетные записи создает администратор, подтверждение email не нужно. Но если у вас пользователи сами создают свои учетки, то лучше включить подтверждение, иначе при ошибке в указании почтового адреса, уведомления приходить не будут.
Делается эта настройка в разделе SECURITY -> Signup, пункт Require Email Verification. Здесь же еще одна важная настройка — Enable Open Server. По умолчанию она стоит в режиме false. Это значит, что пользователь просто так не сможет зарегистрироваться, если перейдет по публичному адресу сервера, в данном случае http://192.168.13.25:8065. Там просто не будет ссылки на регистрацию. Для регистрации, ему необходимо получить ссылку от администратора сервера, у которого она будет отдельная для каждой team.
Не забудьте в разделе FILES-> Storage указать путь к каталогу хранения файлов — /opt/mattermost/data.
Теперь создадим одну team. Для этого нажимаем на ссылку Team Selection.
Нажимаем на ссылку Create a new team, указываем название и ссылку для входа в данную команду.
После этого мы попадаем в только что созданную команду. Если вы решили отключить публичную регистрацию, то для регистрации пользователя вам надо получить ссылку. Она находится в меню пользователя администратора.
Так как это первый пользователь, и он был создан еще до изменения настроек языка, его меню на английском языке. Исправить это можно в настройках аккаунта.
Перевод адекватный, ляпов я не заметил, можно пользоваться.
Остальные настройки можете сами пробежать, просмотреть. Их не много, все достаточно понятно. Создавайте пользователей, каналы для них, приватные комнаты и т.д. В общем, изучайте самостоятельно функционал, ничего особенного там нет. Упомяну еще несколько настроек, которые я делаю пользователям. На мой взгляд, с ими удобнее. Все параметры указываются в настройках аккаунта.
- В разделе Общие указываю реальные ФИО человека.
- В разделе Вид ставлю 24 часовой формат времени и отображение имени в команде в виде ФИО.
- Там же ставлю Вид отображения сообщений — компактный. Так больше информации умещается на экране. Настройка на любителя.
- Рекомендую заглянуть в раздел Уведомления. Возможно вам захочется изменить настройки по-умолчанию.
Вот в общем и все, что я обычно делаю. Настройка сервера и учетной записи закончена. Можно добавлять юзеров и начинать пользоваться.
Установка приложения mattermost на компьютер
Я рекомендую все настройки учетной записи делать сразу после создания через браузер. А затем можно ставить пользователю приложение и заходить в нужную команду. Все настройки будут сохранены, а учетная запись полностью готова к работе. Скачать приложение можно по ссылке с сайта программы. Если забудете адрес, его всегда можно посмотреть в самом чате.
После установки необходимо подключиться к нужной команде. Для этого надо использовать свою учетную запись и ссылку на конкретную команду, которая формируется в момент создания. В моем случае подключение настраивается так.
Дальше вводите логин и пароль и начинаете пользоваться.
В процессе эксплуатации я встречал мелкие баги, поэтому рекомендую следить за выходом новых версий. Проект активно развивается и периодически выходят новые версии как клиента, так и сервера. Не забывайте обновляться.
Все основные моменты рассказал. Сервер мы настроили, пользователей добавили. Корпоративным чатом можно пользоваться. Но если вы хотите опубликовать его в интернете и использовать публичный доступ, то я расскажу вам как это красиво и аккуратно сделать. До кучи добавим сертификат на доменное имя.
Проксирование чата mattermost через nginx
Вы можете напрямую разместить сервер mattermost в интернете, указать ему использовать 80-й порт вместо 8065 и ничего не делать. Это будет простой, но плохой вариант. Сами разработчики не рекомендуют так делать, а предлагают настроить в качестве frontend веб сервер nginx. Сделаем это и мы. В итоге у нас получится аккуратный поддомен mm.serveradmin.ru, который будет работать по https. В таком виде сервер не стыдно и интернету показать.
Так как работать дальше будем с nginx, httpd нужно будет отключить. Он нам нужен был только для быстрой настройки phpmyadmin. Больше нам настраивать нечего, так что отключаем его.
# systemctl stop httpd # systemctl disable httpd
Вместо него установим nginx. По большому счету, это можно было сделать сразу, но я поленился, так как phpmyadmin под апачем настроить проще и быстрее. Добавляем репозиторий nginx.
# mcedit /etc/yum.repos.d/nginx.repo
[nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/7/$basearch/ gpgcheck=0 enabled=1
Устанавливаем nginx.
# yum install nginx.x86_64
Запускаем и добавляем в автозагрузку.
# systemctl start nginx # systemctl enable nginx
Убеждаемся, что он работает, перейдя по ip адресу сервера в браузере. Рисуем файл конфигурации для проксирования mattermost.
# mcedit /etc/nginx/conf.d/mattermost.conf
upstream backend { server 127.0.0.1:8065; } proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off; server { listen 80 default_server; server_name mm.serveradmin.ru; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name mm.serveradmin.ru; ssl on; ssl_certificate /etc/letsencrypt/live/mm.serveradmin.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mm.serveradmin.ru/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; location /api/v3/users/websocket { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; client_max_body_size 50M; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; proxy_read_timeout 600s; proxy_pass http://backend; } location / { client_max_body_size 50M; proxy_set_header Connection ""; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; proxy_read_timeout 600s; proxy_cache mattermost_cache; proxy_cache_revalidate on; proxy_cache_min_uses 2; proxy_cache_use_stale timeout; proxy_cache_lock on; proxy_pass http://backend; } }
Сохраняем конфигурацию в файле. В данном случае я использую бесплатный сертификат от популярного сервиса Let’s encrypt. Я не буду сейчас рассказывать, как получить от них сертификат. В интернете очень много статей на эту тему. Можете воспользоваться, к примеру, вот этим руководством моего знакомого — https://sevo44.ru/ssl-besplatnyj-dlja-sajta-nginx.
Удалим стандартную конфигурацию nginx. Вместо нее будет использоваться наша.
# rm /etc/nginx/conf.d/default.conf
Проверяем конфигурацию nginx и перезапускаем его.
# nginx -t # systemctl restart nginx
Теперь чат будет доступен по адресу https://mm.serveradmin.ru, при этом будет работать переадресация с http на https. В данном случае имя домена вымышленное, так что по ссылке ничего открываться не будет.
На этом все, установка и настройка бесплатного мессенджера mattermost завершена. Получилось вполне функциональное и законченное решение.
Обновление mattermost
С момента написания статьи прошло некоторое время, и вышла новая 4-я версия сервера. Я расскажу, как обновить сервер 3-й версии до последней на текущий момент версии mattermost 4.5.0. При обновлении любого продукта необходимо делать резервные копии. Сделаем и мы, отдельно директорию с самим сервером и базу данных.
Останавливаем сервер.
# systemctl stop mattermost
Копируем директорию с файлами.
# cp -R /opt/mattermost /backup
Бэкапим mysql базу.
# /usr/bin/mysqldump – opt -v – databases mattermost -umattermost -ppassword | /usr/bin/gzip -c > /backup/mattermost.sql.gz
Теперь можно смело обновляться. Если что-то пойдет не так, можем быстро откатиться на старую версию. Скачиваем и распаковываем свежую версию сервера.
# cd ~ # wget https://releases.mattermost.com/4.5.0/mattermost-4.3.0-linux-amd64.tar.gz # tar xzvf mattermost-4.5.0-linux-amd64.tar.gz
Удаляем старую папку с сервером и копируем на ее место новую.
# rm -Rf /opt/mattermost # cp -R ~/mattermost /opt
Копируем из бэкапа конфиг, загруженные файлы и логи.
cp -r /backup/mattermost/config /opt/mattermost cp -r /backup/mattermost/data /opt/mattermost cp -r /backup/mattermost/logs /opt/mattermost
Делаем владельцем директории с новой версией системного пользователя mattermost.
# chown -R mattermost:mattermost /opt/mattermost
Запускаем сервер и проверяем работу.
# systemctl start mattermost
С обновлением mattermost все. Можно заходить и проверять изменения. Не забудьте обновить версию клиента. Хотя старая все равно будет работать, но в новой будет расширен функционал и исправлены баги.
Заключение
Я привел реальный пример использования бесплатного корпоративного чата в своей практике. Чат удобный, функциональный, легко и быстро настраивается. Можно без проблем передать администрирование чата после настройки обычному сотруднику, который через админку будет управлять командами и пользователями. Внимание к себе чат почти не просит, работает надежно и стабильно. В общем, получился неплохой продукт. Рекомендую обратить на него внимание и попробовать. Если у кого есть еще удачные примеры подобных чатов, делитесь информацией в комментариях.