Решение проблемы

Установка и настройка mattermost — форк корпоративного мессенджера slack


В поисках хорошего корпоративного чата некоторое время назад я наткнулся на mattermost. При ближайшем знакомстве оказалось, что это бесплатная альтернатива Slack. Я знаком с разными бесплатными корпоративными мессенджерами, но mattermost понравился больше всего. В этой статье я хочу рассказать, как установить и настроить mattermost на Centos 7.

Содержание:

  • 1 Введение
  • 2 Подготовка к установке
  • 3 Установка mattermost
  • 4 Настройка mattermost
  • 5 Установка приложения mattermost на компьютер
  • 6 Проксирование чата mattermost через nginx
  • 7 Обновление mattermost
  • 8 Заключение

Введение

Установка и настройка mattermost — форк корпоративного мессенджера slack

Посмотреть подробно, что такое mattermost можно на официальном сайте. Если кратко, то это форк платного мессенджера Slack. Я не очень знаком с историей развития последнего, поэтому не знаю, когда и при каких условиях от него отпочковался бесплатный аналог. Похоже, исходники слака в какое-то время были доступны, и благодаря этому у него появились бесплатные аналоги.

Mattermost не единственный бесплатный аналог Slack. Я лично тестировал еще один — rocket.chat. Сейчас не готов предметно и основательно их сравнивать, так как не помню подробностей, но рокет чат мне понравился значительно меньше. В целом, все менее качественно, локализация была не очень, ну и функционал победнее по сравнению с mm. Когда я их сравнивал вместе, установив одновременно, mattermost мне понравился больше, поэтому решил пользоваться им.

Рассмотрю еще один момент — зачем, собственно, нужны какие-то мессенджеры, когда есть skype, telegram, viber и другие бесплатные и популярные программы для общения. Тот, кто использовал указанные выше аналоги в реальной работе коллектива в 20-30 человек, думаю прекрасно себе представляет, в чем тут могут быть проблемы. Пройдусь по основным моментам:

  • Skype последнее время стал сильно глючить и потреблять много ресурсов. Реально он был когда-то хорошим инструментом для коллективной работы, но теперь перестал им быть. В любой момент с очередным обновлением он может перестать работать или начать жестко глючить. Исправления можно ждать неделю — две. Помню из недавнего — примерно две недели после обновления история путалась в окне чата по датам. Более старые сообщения были ниже, чем новые. К тому же skype постоянно крутит рекламу, пожирает ресурсы, причем непонятно на что. Он стал очень прожорлив. Иногда глючит передача файлов, приходится пересоздавать профиль.
  • Второй недостаток всех публичных мессенджеров — нет централизованного управления аккаунтами. Системному администратору неудобно управлять учетками — заводить новые, менять пароли и т.д. Плюс, они часто привязаны к мобильнику. Человек увольняется и забирает с собой свою учетку со всей историей. Это очень неудобно и в какой-то момент при росте коллектива становится проблемой.
  • Нет управления историей. Она вся хранится в учетных записях пользователя. Если он ее удалит, случайно или специально, нет возможности восстановить. В какой-то момент это становится важно при интенсивной и ответственной работе.

Этот список на основе моего опыта работы небольших коллективов с различными мессенджерами. Кстати, наиболее простым и функциональным решением для корпоративного чата мне долгое время казалось решение на основе openfire. И только после знакомства с mattermost я стал потихоньку его внедрять в работу. Кратко расскажу о его достоинствах и недостатках, которые заметил я. Сначала достоинства:

  1. Сервер mattermost представляет из себя приложение, которое вы устанавливаете на своем сервере. То есть это закрытое решение, которое полностью под вашим контролем. Вы можете как угодно ограничивать к нему доступ на уровне сервера.
  2. Централизованное управление учетными записями. Администратор без проблем управляет всеми учетками — создает, блокирует, меняет пароли, выдает доступы и т.д.
  3. Централизованное хранение истории на вашем личном сервере в базе данных mysql. Можете ее хранить сколько угодно долго, бэкапить, восстанавливать, читать при необходимости.
  4. Удобная передача файлов прямо в чате. При этом файлы хранятся у вас на сервере сколь угодно долго.
  5. Приятный и понятный дизайн. Чат выглядит абсолютно одинаково через отдельное приложение, либо через браузер. Где пользоваться чатом каждый выбирает на свое усмотрение.

Теперь недостатки mattermost:

  1. Нет возможности распределить людей по группам. Это очень неудобно. Если у вас человек 30 и вам нужно кому-то отправить личное сообщение, придется искать его в общем списке любо вручную, либо с помощью поиска. Мне не понятно, почему такой простой и очевидный функционал отсутствует. Частично можно выйти из положения, создав для каждой группы отдельный чат, а в списке пользователей конкретного чата выбирать нужного человека. Тем не менее это не так удобно, как просто отдельные группы в общем списке.
  2. Мобильное приложение ужасно, и пользоваться им невозможно. Оно глючит, виснет и ничем не отличается от мобильной версии в браузере. То есть по сути мобильное приложение это самодельный браузер для http версии. Пользоваться приложением нет никакого смысла. Частично исправляет ситуацию то, что в мобильной версии браузера чат выглядит неплохо, пользоваться удобно. Но через браузер не будет push уведомлений.
  3. Нет подтверждения прочтения сообщения, как, например, в telegram. Считаю это очень удобной фичей, привыкнув к которой, трудно смириться с ее отсутствием.
  4. Много полезных и необходимых настроек только в платной версии. Например, интеграция с 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 — форк корпоративного мессенджера slack

Все подготовительные действия сделали, приступаем к установке mattermost. Я воспользуюсь инструкцией с официального сайта. Но, как это обычно бывает, если следовать только ей, то ничего не получится ? Во время установки будет как минимум одна ошибка, которую нужно будет исправить. В целом я более подробно и доступно распишу весь процесс. Если кому-то что-то будет не понятно, он может с вериться с официальным руководством по установке.

Идем в phpmyadmin и создаем там пользователя mattermost, указав также создать одноименную базу и выставить новому пользователю полные права на нее.

Создание базы и пользователя mysql

Качаем исходники севрера. Для этого идем на страничку 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 запроса

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

Изменение типа таблиц базы mattermost

Должен получиться такой набор 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

Запуск сервера mattermost

Если все в порядке, то должны увидеть такой вывод. Сервер успешно стартовал на порту 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 позже, а сначала перейти в консоль и сделать несколько полезных настроек.

Настройка сервера mattermost

Здесь я рекомендую сразу настроить авторизацию на 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, указываем название и ссылку для входа в данную команду.

Добавление team URL

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

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

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

Настройка языка пользователя

Перевод адекватный, ляпов я не заметил, можно пользоваться.

Остальные настройки можете сами пробежать, просмотреть. Их не много, все достаточно понятно. Создавайте пользователей, каналы для них, приватные комнаты и т.д. В общем, изучайте самостоятельно функционал, ничего особенного там нет. Упомяну еще несколько настроек, которые я делаю пользователям. На мой взгляд, с ими удобнее. Все параметры указываются в настройках аккаунта.

  1. В разделе Общие указываю реальные ФИО человека.
  2. В разделе Вид ставлю 24 часовой формат времени и отображение имени в команде в виде ФИО.
  3. Там же ставлю Вид отображения сообщений — компактный. Так больше информации умещается на экране. Настройка на любителя.
  4. Рекомендую заглянуть в раздел Уведомления. Возможно вам захочется изменить настройки по-умолчанию.

Вот в общем и все, что я обычно делаю. Настройка сервера и учетной записи закончена. Можно добавлять юзеров и начинать пользоваться.

Установка приложения mattermost на компьютер

Установка и настройка mattermost — форк корпоративного мессенджера slack

Я рекомендую все настройки учетной записи делать сразу после создания через браузер. А затем можно ставить пользователю приложение и заходить в нужную команду. Все настройки будут сохранены, а учетная запись полностью готова к работе. Скачать приложение можно по ссылке с сайта программы. Если забудете адрес, его всегда можно посмотреть в самом чате.

Загрузка приложений 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

Установка и настройка mattermost — форк корпоративного мессенджера slack

С момента написания статьи прошло некоторое время, и вышла новая 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 все. Можно заходить и проверять изменения. Не забудьте обновить версию клиента. Хотя старая все равно будет работать, но в новой будет расширен функционал и исправлены баги.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Я привел реальный пример использования бесплатного корпоративного чата в своей практике. Чат удобный, функциональный, легко и быстро настраивается. Можно без проблем передать администрирование чата после настройки обычному сотруднику, который через админку будет управлять командами и пользователями. Внимание к себе чат почти не просит, работает надежно и стабильно. В общем, получился неплохой продукт. Рекомендую обратить на него внимание и попробовать. Если у кого есть еще удачные примеры подобных чатов, делитесь информацией в комментариях.


СМОТРИ ТАКЖЕ