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

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

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

Введение

Посмотреть подробно, что такое 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. Я воспользуюсь инструкцией с официального сайта. Но, как это обычно бывает, если следовать только ей, то ничего не получится 🙂 Во время установки будет как минимум одна ошибка, которую нужно будет исправить. В целом я более подробно и доступно распишу весь процесс. Если кому-то что-то будет не понятно, он может с вериться с официальным руководством по установке.

Идем в 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

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

Настройка подключения к серверу

Дальше вводите логин и пароль и начинаете пользоваться.

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

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

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

Заключение

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

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

Помогла статья? Есть возможность отблагодарить автора

97 комментариев

  1. А если сервер будет выключен, клиенты будут работать?

    • Нет, они же к серверу подключаются. Это только клиент-серверная реализация.

  2. Василий

    А можно про rocket.chat подробнее? Я так понял, в нём есть видеоконференции, в отличие от MM. В MM есть отдельная enterprise версия, то есть опять все интересные плюшки типа AD интеграции вынесены за плату?

    • За бесплатно нигде полезных плюшек не будет, можно даже не надеяться. В рокете видеоконференции не смотрел даже. Мне не нужно было.

  3. Не увидел преимуществ перед OpenFire + MySQL.

    • Mattermost — это вебня, т.е. красивый гуй

      Skype — это жалкое подобие Slack,
      да ещё и с кривым поиском.

      А Mattermost — это лучше чем slack, потому что работает на собственном сервере
      (а не в чьём-то облаке) и поиск по истории бесплатный

      • По функционалу Mattermost Слаку явно проигрывает. Ну а то, что он на своем сервере крутится, для меня определяющее преимущество.

    • Аноним

      мы переехали с опенфайра на маттермост и в итоге плюсом оказалось, что в мм можно вставить картинку контрол+в, а в оф можно нажать «разбудить контакт» или как-то так, когда надо на что-то срочно обратить внимание сотрудника. В целом рано или поздно новые штуки типа мм завоюют весь рынок, а оф не развивается совсем. Сейчас я посмотрел бы на Discord в силу наличия видеоконференций.

      • Discord немного использовал. Качество связи хорошее, лучше, чем в скайп. Но я так понял, он конкурент скайпу, а не корпоративным мессенджерам, типа слака или мм.

  4. А как на счет привязки пользователей к почте как в ejabberd можно реализовать?

    • Не понял, о какой привязке идет речь?

      • Примерно ejabberd можно привязать к postfix. пользователи у которых есть почта, могут используя свой почтовый адрес и пароль авторизовываться в ejabberd чате. Как бы один логин и пароль ко двум системам.
        Такое возможно в mattermost?

  5. А почему OpenFire + Spark не рассматривали? Там даже интеграция с АД есть насколько я помню

  6. Со всем уважением, но мне кажется несколько часов вашей работы, будут стоить как покупка платного но удобнейшего и многофункционального MyChat. До 20 пользователей — бесплатно!

    • Посмотрел описание. Функционал понравился, внешний вид не очень. Старовато выглядит. Надо будет потестировать.

      • Всенепременно попробуйте! Крутецкая штуковина.
        А что до внешнего вида… ну тут вспоминается анекдот про шашечки и ехать + разработчик очень внимательно прислушиваются к своим пользователям, так что, как знать, может и поддержку скинов внедрят.
        Ах, да, чуть не забыл!
        За блог — спасибо! 🙂

    • GtaSaKompanion

      Ни к чему ваш этот MyChat с закрытым исходником. Другое дело, если бы был платный, но с открытым исходником.

      • И что, исходники стали бы изучать? Mychat хорошее решение для тех, кто хочет просто купить, поставить и пользоваться. Весь заявленный функционал там работает из коробки без танцев с бубном.

  7. Спасибо, Вам за подробные инструкции.

    • Получилось mattermost настроить? Как он, понравился?

      • Да, но с без https. Также не нашёл как обойти ограничение по одновременной загрузки 5 изображений. Спасибо за подробные инструкции, благодаря им, я запустил и частично настроил у себя Centos 7. Спасибо)

  8. вот это сокровище вообще!
    спасибо большое

  9. Тоже столкнулся с выбором корпоративного мессенджера и, глубоко проанализировав текущие решения, нашел для себя отличный вариант — Riot.IM который работает на базе протокола [matrix] — офсайт клиента http://riot.im/

    Огромный плюс Matrix — это федерация, т.е. разные сервера могут отправлять сообщения друг другу (как в XMPP Jabber), но в отличии от жаббера — есть все новомодные фишки в виде веб-клиента, истории на сервере, комнаты, боты и т.п.

    И в протоколе [matrix] вы не привязаны к одному мессенджеру, есть широкий выбор альтернатив: https://matrix.org/docs/projects/try-matrix-now.html#clients (правда большинство пока в бета-версиях).

    Также можно настроить шлюзы в большинство других сетей, в том числе Skype, Telegram, Mattermost, и т.п. — https://matrix.org/docs/projects/try-matrix-now.html#application-services — т.е. клиенты и внешние сотрудники могут общаться с сотрудниками компании в их любимом мессенджере, а ваши сотрудники получать и отправлять им сообщения через один мессенджер.

    • Спасибо за информацию, посмотрю на Matrix.

    • хотел бы уточнить
      надо поднять matrix «home server»
      а riot.im это уже как клиет к нему будет так?
      что-то заблудился в гайдах

      • Да, все так. В целом, matrix с riot не связан, это просто один из клиентов, но на вид самый удобный.

    • Не нашел как на матриксе управлять пользователями, кроме как напрямую в БД. Печалька.

    • Потестил я этот matrix с riot. Никак статью не допишу, так как много разбирался с темой. Но в целом мой вывод такой — этот продукт для продакшена совершенно не готов. Очень много непонятного, какие-то глюки время от времени: то оповещения не работают, то в установке файлы пропущены, то версии модулей питона не совпадают, то еще что-нибудь. Каждая установка на новой системе танцы с бубном. Я их попробовал несколько, так как в каждой системе что-нибудь глючило и я надеялся, что в другой будет нормально. Но нет 🙂

      Оповещения на почту работают как-то странно. Руками добавляешь условия через настройки — работают. Но как сделать, чтобы сразу приходили уведомления о личных сообщениях, если ты в офлайне, я не понял.

      Сам riot работает немного странно и непривычно, подтормаживает и подтупливает временами. Иногда верстка разъезжается, особенно на странице логина (выпадающий список).

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

  10. Валентин

    Напиши пожалуйста как правильно сделать обновление на свежую версию.

  11. Володя

    Вопрос по теме push-уведомлений. Пока тестил на виртуалке они включились и работали. Только развернул на живом пк не могу включить push-уведомлений. Как быть кто подскажит?

  12. А как Вы настроили PUSH?

    • Владимир

      Когда выбираешь опцию указать свой push-сервер появляется текст содержащий ссылки(или ссылку не помню их там две или одна) на страницу где на английском описано что мы можем использовать их бесплатный сервер. Я скопировал адрес — вставил в нужное поле и вуаля))

  13. Володя

    Я заметил что этот чатик может портироваться с Active Directory. На данный момент сам гуглю настройки, но был бы благодарен примеру))

    • Если не ошибаюсь, то это платный функционал.

      • Володя

        «https» для него тоже платный функционал? А то ли я где-то не понимаю толи он так работает. Перевести nextcloud на «https» с самоподписанными сертификатами смог, а с чатом воюю. Хотя «воюю» только часа 2 как))

  14. Здравствуйте.

    Лег винт на сервере, образ отказался восстанавливаться, Акронис вылетает.
    Вообщем такой вопрос, иду по инструкции и вот дохожу до этапа запроса SQL выполняю его, после выполнения SQL запроса, получаю сообщение что возвращен пустой ответ, и вот не могу найти пункт меню в котором можно отобразить полные тексты.
    Как на картинке сверху:
    https://serveradmin.ru/wp-content/uploads/2017/04/centos-mattermost-03.png
    Не подскажите где искать этот подпункт?

    • Если вернула пустой ответ, значит код выполнен либо в пустой базе данных, либо не в той, которой нужно. Запрос должен выводить некий ответ, с которым потом уже работаем. У вас ответа вообще нет.

      • Такой вопрос.
        Ранее у меня с этой задачей проблемы не было SQL запрос и все последующее по инструкции проходило на ура, и после была наращена база и сделана копия.
        Если у меня есть копия базы, и ее просто импортирую, эта операция со SQL запросом, нужна?

        • Отвечаю на свой вопрос.

          Если у вас уже есть копия существующей sql базы для mattermost, то да, ее можно просто импортировать.
          Конечно нужно вначале создать пользователя и саму базу, с теми именами и паролями, с которыми они существуют в сохраненной базе данных.
          А после просто импортировать сохраненную базу, в только что созданную.
          Проверил. Удаление и создание новых каналов, сообщения. Все остается и ничего не теряется.

          Спасибо, тебе админ)
          Твой сайт очень помогает.

          На основании твоих статей и нескольких других сайтов, я наконец сделал полный сценарий по настройке своего Centos 7 сервера. На котором превосходно работает mattemost и owncloud.

          Респект и уважуха, тебе!

  15. Спасибо за хорошую и содержательную статью! Вопрос такой. Есть корпоративный портал на sharepoint 2013, там надо реализовать чат между сотрудниками. Что посоветуете? Какой мессенджер можно интегрировать и с АД, и с Sharepoint?

    • По-моему тот же mattermost имеет платный плагин для интеграции с AD. Бесплатных решений я не встречал для этого.

      • Алексей

        в 2012 запустил у себя
        openfire (на убунте) + ad через kerberos
        в качестве клиента сборка миранды. sso работает даже на windows 10
        пользователей около 150. управление через группы в AD.
        все бесплатно уже в течении 5 лет 🙂

        • Openfire + Miranda у меня сейчас работает. Претензий к этой штуке у меня нет. Но когда я смотрю на миранду, мне становится грустно 🙂 Это уже прошлый век. Даже не хочется перечислять, чего не хватает.

          • Здравствуйте.

            1. Скажите, о какой Miranda-e вы говорите: Maranda-I’m or miranda-ng?
            И…, о ванильной или о какой-то сборке?

            2. Из перечисленных вами плюсов M.most его выгодно отличает от xmpp возм.хранения вложений на сервере (а след., возм.отправки файлов офлайн пользователям).
            Скажите, какие вы для себя видите преимущества M.Most в сравнении с xmpp?

            • 1. Так а какая разница? Они все похожи друг на друга. Я обычно использовал сборку hotcoffee.
              2. Сейчас у меня стоит задача внедрить современный чат сервер на базе xmpp. Как сделаю и посмотрю все современные возможности и решения, возможно напишу статью на эту тему и сравню.

              • Аноним

                Про XMPP:
                Насколько я могу судить, этот протокол продолжает развиваться в основном за счёт XEP-ов. Новые RFC на сам XMPP, вроде бы, не пишутся.
                Правда, я не оч.внимательно слежу за развитием этого протокола.
                Как вам видится будущее этого протокола? Есть ощущение, что HTTP/HTTPS в скорости его вытеснит.

  16. Доброго дня суток. Нужен помощь. При старте /opt/mattermost/bin/platform ругается:

    [2017/12/20 15:21:03 +05] [INFO] Loaded system translations for ‘en’ from ‘/opt/mattermost/i18n/en.json’
    [2017/12/20 15:21:03 +05] [INFO] Current version is 4.5.0 (4.5.0/Fri Dec 15 23:15:33 UTC 2017/03f5c939deb4a6ab2fd01639b5570799e4118bab/dc1a5c62b18d87b9effd4ec249f29c77d1ffdde0)
    [2017/12/20 15:21:03 +05] [INFO] Enterprise Enabled: true
    [2017/12/20 15:21:03 +05] [INFO] Current working directory is /opt/mattermost/bin
    [2017/12/20 15:21:03 +05] [INFO] Loaded config file from /opt/mattermost/config/config.json
    [2017/12/20 15:21:03 +05] [INFO] Loaded system translations for ‘en’ from ‘/opt/mattermost/i18n/en.json’
    [2017/12/20 15:21:03 +05] [INFO] Server is initializing…
    [2017/12/20 15:21:04 +05] [INFO] Pinging SQL master database
    [2017/12/20 15:21:04 +05] [INFO] Initializing plugin: ldapextras
    [2017/12/20 15:21:04 +05] [INFO] Able to write files to local storage.
    [2017/12/20 15:21:04 +05] [INFO] License key from https://mattermost.com required to unlock enterprise features.
    [2017/12/20 15:21:04 +05] [INFO] Starting up plugins
    [2017/12/20 15:21:04 +05] [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory
    [2017/12/20 15:21:04 +05] [INFO] Starting Server…
    [2017/12/20 15:21:04 +05] [INFO] Server is listening on [::]:8065
    [2017/12/20 15:21:04 +05] [INFO] Initializing job API routes
    [2017/12/20 15:21:04 +05] [INFO] API version 3 is scheduled for deprecation. Please see https://api.mattermost.com for details.
    [2017/12/20 15:21:04 +05] [INFO] Starting 2 websocket hubs
    [2017/12/20 15:21:04 +05] [INFO] Starting up plugins
    [2017/12/20 15:21:04 +05] [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory
    [2017/12/20 15:21:04 +05] [INFO] Starting up plugins
    [2017/12/20 15:21:04 +05] [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory
    [2017/12/20 15:21:04 +05] [INFO] Starting workers
    [2017/12/20 15:21:04 +05] [INFO] Starting schedulers.

    • Кажется, у меня такие же ошибки были. Ругался на создание директории, но при этом сам сервер работал. Проверьте, запустилась ли служба на указанном порту — 8065.

      При повторном запуске эта директория уже была создана. На крайний случай можно создать руками:
      mkdir /opt/mattermost/client/plugins

      • Спасибо за статью и за ресурс в целом. 2 вопроса, если позволите. 1) Такая же ошибка как юзверя выше. Сервер запускается, но выдает [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory
        При этом уже и папку руками создал (с соответствующими разрешениями), все равно в упор ее не видит. ЧТо можно предпринять?
        2) Есть ли вариант сделать из матермоста сервис, если ставлю ее на centos 6-ой ветки, не наблюдаю тут systemctl

        • В centos 6 нету systemctl, там нужно писать скрипт запуска в /etc/init.d. В принципе, это даже проще, надо только готовый пример найти или по аналогии сделать.

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

          • Насчет /etc/init.d разобрался, у них на сайте есть статья по настройке на CentOS 6, там все есть. По поводу ошибки директории плагинов. Как уже говорил: создал папку, добавил в автозагрузку. Возможно после ребута Mattermost увидел ее. В итоге всё уперлось в проксирование. Купил домен, купил серт. Несколько дней ковырял свой Apache 2.2.15. Уже и отдельно модуль proxy_wstunnel_module компилил — подсовывал, и отдельно сорцы качал, патчил, заменял все модули, которые к прокси относятся, но так и не смог WebSocket’ы запустить. Похоже придется NginX осваивать…

  17. Привет! Нужен помощь. При добавления в автозапуск systemctl enable mattermost:

    Failed to execute operation: Bad message

    • Похоже ошибка в конфиге systemd. Сейчас разбираюсь. Напишу как исправлю.

    • С таким конфигом у меня нормально работает:

      [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

      Надо еще не забять исполняемым сделать файл.

  18. Спасибо решил 🙂

  19. Доброго дня! Имеется вопрос: У меня стоит Proxy Server (настроил по Вашим рекомендациям, конечно Большое спасибо). и вот Proxy не пропускает Mattermost, искал в настройках не нашел где можно было прописать proxy. Как быть? Спасибо заранее.

    • Вообще, он работает через прокси нормально. У меня работал в офисе на прокси с авторизацией в домене по керберосу. Никаких особенных настроек для mm не делал.

  20. Спасибо большое Вам, ошибка было из-за не внимательности.

  21. «К тому же skype постоянно крутит рекламу»

    Не выгораживаю скайп, но о какой версии речь и на какой платформе?

  22. > Skype последнее время стал сильно глючить и потреблять много ресурсов
    Как правило, глючит не скайп, а маршрутизатор. Виноват может быть как скайп (MS любит менять протокол), так и роутер. VOIP, особенно коллективный и тем более корректно, отрабатывать могут не только лишь все
    На счёт ресурсов — ПК 15 летней давности, 3 выработавшие ресурс? Ну да жрёт, особенно если не убрать ручками хост рекламы. Но если для ПК 150 Мб в ОЗУ нагрузка — его пора менять, так как браузеры жрут на порядок и более
    > теперь перестал им быть.
    Не замечал, вот чтобы прямо так категорично
    > В любой момент с очередным обновлением он может перестать работать или начать жестко глючить.
    Не ставить бездумно обновления, да? ))
    > Исправления можно ждать неделю — две.
    Если тупо вкатывать обновления и так же тупо пялиться в экран после подачи тикета в ожидании решения — конечно )
    > К тому же skype постоянно крутит рекламу, пожирает ресурсы, причем непонятно на что. Он стал очень прожорлив.
    драйвер hands.dvr ;-)) Хотя справедливость замечания имеет место быть
    > Иногда глючит передача файлов, приходится пересоздавать профиль.
    См выше про роутер, это один из первых и типичных признаков. А вообще, для бизнес коммуникаций есть skype for business/lync
    Не бесплатно, конечно. Во всяком случае, халявщикам надо поработать ручками

    > Второй недостаток всех публичных мессенджеров — нет централизованного управления аккаунтами. > Нет управления историей.
    *рукалицо* Вы определитесь — шашечки вам или ехать )) Откройте гугл сьюит кроме бизнес-скайп,
    там такая централизация — КГБ и концлагерь отдыхает. Опять же не бесплатно, нищебродам там не рады

    Вообще, общее замечание: в коммуникациях есть два состояния
    первый: стартап-фриланс, с использованием SOHO железа и опенсырцовых/фриварных решений.
    Разрешено всё и под свою ответственность, без каких либо гарантий -as is
    Второй: групповые коммуникации для бизнеса. Компании, выпускающие решения, тоже хотят кушать и зарабатывать много на VoIP
    Следует помнить и понимать, что есть вероятности и риски. Так как VoIP крайне чувствителен, развитая групповая работа может потребовать обеспечения такой же групповой работы специалистов, начиная с хорошего сетевика и заканчивая программистом(-ами)
    Особенно, если к коммуникациями предъявляются требования первого и бизнес класса, которые подразумевают отдельные бюджеты

  23. Привет! Нужно помощь выручайте пожалуйста! Поставил MM все отлично работает. Но когда пропускаю через прокси пользователям ругается «Проверьте соединение, Mattermost недоступен. Если проблема не устранена, попросите администратора проверить порт WebSocket.» при том сообщение доход но без popup уведомление, это не удобно и даже не знаешь если кто нибудь отправить тебе сообщение.
    Прокси Сервер — IP 192.168.1.56 (Squid+AD+Sams2)
    MM Сервер — IP 192.168.1.75

  24. Вопрос снят с повестки дня!

  25. Дмитрий

    Приветствую. Вопрос по локализации, точнее ее отсутствие, несмотря на выбор русского. В логе — Загружен перевод системы на ‘ru’ из ‘/opt/mattermost/i18n/ru.json’. Причем смены языка в аккаунте юзера у меня нет,что самое интересное, только в System Console.
    Еще смущает /api/v4/users/waridkk8m7yumxwzoe1xf1oh1a/image:WriteFimbeozozdg1yh uid=waridkk8m7yumxwzoe1xf1oh1a ip=10.xx.xx.xx Encountered an error crea file [details: directory=/opt/mattermost/bin/data/users/waridkk8m7yumxwzoe1xf1oh1a, er denied], в ip адрес моей машинки,с которой я захожу на виртуалку mattermost-а.

    • Дмитрий

      Отвечаю сам себе же) Был уверен,что сменил права на нужные и не проверил.

  26. Алексей

    Кто то побывал прикрутить к ldap? Вижу есть такое https://github.com/Crivaledaz/Mattermost-LDAP

    • Посмотрел описание. Настраивается вроде не сложно. Но для меня бесплатный mattermost в качестве корпоративного мессенджера вообще не подходит. Там любой пользователь может удалить любой чат. Управление правами доступа к чатам есть только в платной версии. Это подходит только для небольшой группы участников.

  27. Привет при настройке nginx я похоже сделал что то не так и теперь при переходе на мой домен mkz.asia выдает ошибку ERR_TOO_MANY_REDIRECTS.
    Можете помочь пожалуйста. Если перейти на http://айпи моего vps:8065 то mattermost нормально открывается.
    Кстати при попытке прикрепить картинку mattermost ругается на ошибку JAVA я подключил AmazonS3(подключение прошло успешно и IAM имеются права на запись, в самом баскете создаются файлы которые отправлял по чату)

    • И чем я тут могу помочь? Уж конфиг nginx сами составляйте, если мой не подходит. Если не получается, можно просто не использовать nginx.

      • Не я не хочу сказать что ваш не подходит просто пытаюсь понять что я в нем написал не так.
        А как тут текстовый файл можно прикрепить с конфигой?
        закоментировал ssl чтобы не ругался на тест nginx так как получить сертификат как то не получается

        1: Spin up a temporary webserver (standalone)
        2: Place files in webroot directory (webroot)
        ——————————————————————————-
        Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel): 2
        Plugins selected: Authenticator webroot, Installer None
        Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
        Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’
        to cancel): mkz.asia
        Obtaining a new certificate
        Performing the following challenges:
        http-01 challenge for mkz.asia
        Input the webroot for mkz.asia: (Enter ‘c’ to cancel): /etc/letsencrypt/live/mkz.asia/
        Waiting for verification…
        Cleaning up challenges
        Failed authorization procedure. mkz.asia (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://mkz.asia/.well-known/acme-challenge/A6EdTWHoAH2MK-1Wxphc3h1hAYn6KY1J-ZhLspmhM6E: Error getting validation data

        IMPORTANT NOTES:
        — The following errors were reported by the server:

        Domain: mkz.asia
        Type: connection
        Detail: Fetching
        http://mkz.asia/.well-known/acme-challenge/A6EdTWHoAH2MK-1Wxphc3h1hAYn6KY1J-ZhLspmhM6E:
        Error getting validation data

        To fix these errors, please make sure that your domain name was
        entered correctly and the DNS A/AAAA record(s) for that domain
        contain(s) the right IP address. Additionally, please check that
        your computer has a publicly routable IP address and that no
        firewalls are preventing the server from communicating with the
        client. If you’re using the webroot plugin, you should also verify
        that you are serving files from the webroot path you provided.

        • забыл конфигу
          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 mkz.asia;
          return 301 http://$server_name$request_uri;
          }

          server {
          # listen 443 ssl http2;
          # server_name mkz.asia;
          # ssl off;
          # ssl_certificate /etc/letsencrypt/live/chat.mkz.asia/*.pem;
          # ssl_certificate_key /etc/letsencrypt/live/chat.mkz.asia/*.pem;
          # ssl_session_timeout 5m;
          # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
          # ssl_dhparam /etc/ssl/certs/*.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;
          }
          }

  28. server {
    listen 80 default_server;
    server_name mkz.asia;
    return 301 http://$server_name$request_uri; — убери этот костыль
    }

  29. Приветствую!
    А как решали проблему с websocket? Связка такая: MM на одной виртуалке, nginx на другой, вроде через nginx MM проходит, но какой то урезанный и без доступа к консоли. Если исследовать страницу то там куча ошибок websocket ws://mattermost.mydomain.com/api/v4/websocket (400 BAD Request)

    • Нашел проблему
      в /etc/nginx/sites-available/mattermost (это расположение конфига в Ubuntu)
      заменил
      location /api/v3/users/websocket$ {
      на
      location ~ /api/v[0-9]+/(users/)?websocket$ {

      • proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection «upgrade»;

        Это обязательно впиши, решает пргоблему с WS

  30. Привет всем, никто не пробовал соеденить 2 серевера матермоста?

    • Каким образом они соединяются? Я не слышал об этом.

      • есть 2 филиала одной организации в разных городах у каждой свой сервер болталки, возможноли заиметь общий рум какойто, т.е. создать общий канал? Возможно ли такое в принципе?

  31. Доброго дня суток! Хочу поднять примерно для 80 юзеров. Необходимо нужен параметры для сервека. Или поднять другой чат-сервер?
    Заранее благодарю за совет 🙂

    • Я бы начал с виртуалки 2 ядра, 4 гига оперативы, диск 50 гб с возможностью расширения.

    • 140 человек
      Виртуалка на 1 ядро и 1 гиг
      Серверная версия CentOs ест очень мало 🙂

  32. Константин

    Добрый день! Кто нибудь сталкивался с такой ситуацией, когда подключение клиента через браузер осуществляется, а через приложение на Android выводиться сообщение «Не удалось подключиться к серверу. Проверьте адрес сервера и подключение к интернету»

  33. Алексей

    День добрый. Есть желание посмотреть и написать про MyChat?

    • Я хорошо знаком с этим чатом, так как внимательно его тестировал и готовил к внедрению, но потом передумал. В целом, продукт понравился, функциональный и удобный. Настраивается достаточно легко, есть хорошая документация. Не понравилось, что нет подтверждения о прочтении, как во всех современных массовых мессенджерах, дистрибутив только под винду. А еще больше не понравился дизайн, аля привет из 2000-х. Сам клиент внешним видом классическую миранду напомнил. Не захотелось внедрять такой архаизм, в итоге отказался и внедрил zulip. Не сказать, что он сильно лучше, но внешне выглядит более современно.

      • Алексей

        В версии 7.0 интерфейс обновился, а касаемо подтверждения о прочтении стоит глянуть специальный инструмент, называется «Оповещения», вероятно, вы его просто пропустили мимо своего внимания. Он как раз заточен на эти вещи.

        • Инструмент «оповещения» я видел и он мне понравился, но речь не о нем. Я имел ввиду аналог одной или двух (когда прочитано) галочек, которые есть, к примеру, в telegram или watsapp. Я так понимаю, вы как-то связаны с разработкой mychat и пришли его популяризировать.

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

          Далее версия сервера только под винду. Да, кому-то может это показаться плюсом, но лично для меня это минус. Я привык к серверным решениям на linux.

          Веб интерфейс управления какой-то тормознутый. На фоне нескучные обои с видом на море. Зачем они там? Чтобы по rdp картинка тормозила? Или предполагается, что администратор поставит сервер чата локально на свой компьютер?

          Про внешний вид я уже сказал. К сожалению, не смог оценить изменений, о которых вы говорите. Не нашел на сайте скриншотов обновленного интерфейса.

          • Алексей

            Написал пост, отправил, но он не отобразился. Посмотрите пожалуйста, возможно, из-за линка его ваш антиспам зарезал.

          • Алексей

            Напишу ещё раз. Скрины есть в последней новости о выходе версии 7.0, гляньте, там «карусель».

            Галочек в приватных мессаджах пока нету, ваша правда, со временем появятся. Насчёт робота в конференциях — думаю, у вас не было времени разобраться, зачем он там нужен, если есть такое желание — расскажу подробно, вопросы должны отпасть.

            Сервер под Windows. Это не хорошо и не плохо, есть как есть. Дело вкуса и привычек. Никто не запрещает поднять виртуальную машину на Linux и юзать сервер MyChat там.

            Касаемо WEB-интерфейса. Использовать его через RDP — это дикость какая-то. Это же удалённая админка, открываете в своём браузере на любом компьютере адрес сервера MyChat, логинитесь и админите. Зачем в терминалке-то мучить себя? И работает админка очень быстро, мы специально делаем на этом упор.

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

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.