В поисках хорошего корпоративного чата некоторое время назад я наткнулся на mattermost. При ближайшем знакомстве оказалось, что это бесплатная альтернатива Slack. Я знаком с разными бесплатными корпоративными мессенджерами, но mattermost понравился больше всего. В этой статье я хочу рассказать, как установить и настроить mattermost на Centos 7.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Содержание:
Введение
Посмотреть подробно, что такое 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 все. Можно заходить и проверять изменения. Не забудьте обновить версию клиента. Хотя старая все равно будет работать, но в новой будет расширен функционал и исправлены баги.
Заключение
Я привел реальный пример использования бесплатного корпоративного чата в своей практике. Чат удобный, функциональный, легко и быстро настраивается. Можно без проблем передать администрирование чата после настройки обычному сотруднику, который через админку будет управлять командами и пользователями. Внимание к себе чат почти не просит, работает надежно и стабильно. В общем, получился неплохой продукт. Рекомендую обратить на него внимание и попробовать. Если у кого есть еще удачные примеры подобных чатов, делитесь информацией в комментариях.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Развернул mattermost v10, опубликовал его наружу через реверс прокси traefik. Пытаюсь теперь настроить плагин звонков, который требует 8443 tcp/udp с клиентов на сервер mattermost. Пробросил все так же на traefik но звонки по прежнему не завелись. Куда копать? Есть опыт настройки подобной схемы? ЧЯДНТ?
А вы вебсокеты проксируете по аналогии с тем, как это описано для nginx?
https://docs.mattermost.com/install/config-proxy-nginx.html
Доброго дня!
Решил я поставить по вашему мануалу, в итоге у меня зависло все на Failed to create index error 1214.
По статье зашел в SQL все как описали сделал, после чего снова запускаю команду, та же ошибка, куда копать в таком случае?
Я не знаю, чем помочь. Статья очень старая. Сам давно уже не разворачивал этот чат.
https://docs.mattermost.com/install/install-docker.html
Добрый день.
Были ли кейсы интеграции "Яндекс 360" и Mattermost? Интересует возможность пересылки писем в каналы Mattermost.
У меня нет.
Для приложения нужны толдько веб-порты? Или ещё что-то?
Только http или https.
Dear Friends,
Anybody can share new cracked version? I need enterprise version for to use ldap function. Please help me.
Best Regards!
you can use gitlab or keycloak for ldap integration
Доброго времени суток, подскажите как с бэкапа восстановить mattermost, обновил до новой версии и перестал запускаться
А бэкап то вы как делали? Не проверяли его работу?
Как в статье бэкап приложения сделал, просто я его не запускал и не проверял(Бэкап)… не нахожу как бэкап развернуть вместо текущей нерабочей версии…
Надо вернуть обратно старые файлы и восстановить дамп базы данных. Это в общем случае. Но статья давно писалась, возможно сейчас это и не сработает.
Команды отдельной нет как бэкап накатить?)
Сначала надо распаковать архив базы:
# gunzip /backup/mattermost.sql.gz
Зайти в консоль mysql:
# mysql -u root -p
Выбрать базу данных mattermost:
# use mattermost;
Распаковать в неё базу:
# source /backup/mattermost.sql;
Возможно перед восстановлением надо будет полностью очистить базу данных.
Спасибо! А с бэкапом приложения не подскажите?)
я вот получается обновил маттермост, у меня теперь запускается только через эту комманду /opt/mattermost/bin/platform, но если я ее закрываю то все перестает работать, как сделать так чтобы он автоматом работал, а не в режиме мониторинга
А кто хорошо знает mattermost? Ситуация такая, работаю в конторе, от админа бывшего достался Rocket.Chat, но он сейчас ограничен в 10000 уведомлений в месяц, а у меня их съедают за 4-5 дней. Решил заменить на mattermost. Проблема в интеграции с сайтом. На сайте есть всплывающее окно, сообщения из которого летят в Rocket.Chat, как реализовать тоже самое на Mattermost??? И форма заказать звонок, подобное же.
Это никто не подскажет. Надо смотреть, как это в принципе реализовано сейчас. По идее, должно быть запрограммировано на языке сайта и работает через api сервера чата. Это надо заказывать у кого-то разработку или плотно погружаться. Такие вопросы с пол тычка не делаются.
Спасибо! А то ищу информацию по mattermost, и что-то очень мало полезного нахожу.
Это в MyChat с полтычка решается и количество уведомлений не ограничено :)
https://nsoft-s.com/mychatarticles/1176-kak-ustanovit-chat-na-sayt.html
КАК ОБЫЧНО!!! ОТВЕТА НЕ ДОЖДАЛСЯ! РЕШИЛ ПРОБЛЕМУ САМ!
Dear Friends,
I need crack that works with ldap function. Can anybody help me ?
Или как обновить с 4.5 до 5.26 Делаю все четко по вашей статье, обновление не проходит
Какой же ты молодец! Мы так рады за тебя.
При установке версии MATTERMOST 5.26 установка не проходит. Просьба обновить статью
Anybody can solve LDAP/ AD license problem
Dear Alex,
Thank you for sharing links.I installed again with new files you shared. I installed also Version 5.16. and also changed 2 files in bin folder with new ones. System Console it says " Mattermost Enterprise Edition. Enterprise features on this server have been unlocked with a license key and a valid subscription." but when I want to setup AD/LDAP it says " AD/LDAP Test Failure: AD/LDAP disabled or licence does not support AD/LDAP. - undefined" . I need to setup AD/LDAP. Please can you help me ?
Спасибо за статью, настроил правда по оф документации, но от вас узнал про этот чат. Установил, настроил, пока все выглядит очень неплохо. только мне лично 2х функций не хватает - возможности видеть прочтено сообщение или нет, и голосовых сообщений. а так все прекрасно, моб приложение вроде вполне нормальное. пока только пару дней использования, позже будет ясно как хорошо все на длительную перспективу.
Спасибо!
Доброго времени суток.
Проблема удаления любого чата любым пользователем не дает возможность использовать бесплатную версию в большинстве случаев.
Ну что же, давайте это исправим. Тем более лицензия MIT это позволяет.
Все манипуляции производились на Ubuntu Server 16.04. Нам понадобится GoLang, NodeJS, Docker. Можно еще установить MySQL. Желательно использовать версии поновее.
Скачиваем MatterMost из репозитория "sudo go get -v github.com/mattermost/mattermost-server/..." Переходим в папку проекта и скачиваем зависимости "sudo go get -d ./..."
Открываем файл GOPATH/src/github.com/mattermost/mattermost-server/app/license.go (GOPATH в моем случае папка go в домашнем каталоге)
Ищем функцию "func (a *App) LoadLicense()". Комментируем или удаляем все кроме первой и последней строки (фигурные скобки не удалять). Последняя строка по желанию. В первой строке вместо a.SetLicense(nil) пишем a.SetLicense(model.NewTestLicense()) (В коде есть функция, которая дает тестовую лицензию. Спасибо разработчикам). Сохраняем. Собираем из папки проекта mattermost-server "sudo make build". Перед этим нужно создать папку enterprise в каталоге mattermost чтобы собралась именно Enterprise версия. В папке GOPATH/bin будут лежать ваши скомпилированные бинарники (mattermost и platform). Заменяем ими оригинальные в каталоге /opt/mattermost/bin. Не забудьте заново раздать права как написано в инструкции.
Ссылка на последнюю сборку с изменениями: https://yadi.sk/d/8bLwkQyN0UcbSw
Тестовая лицензия на 90 дней. Но после перезагрузки она начинается заново. Изменить срок действия тестовой лицензиии можно в файле /mattermost-server/model/license.go
Добрый день! Уже пытаюсь пару дней собрать самостоятельно, но ничего не выходит. Может у вас есть более подробная инструкция?
не знаю куда уж подробнее. В чем загвоздка, на каком этапе?
Если нужно, то можете скачать скомпилированную мнойверсию 5.16.0 на торрент-треккер http://nnmclub.to/forum/viewtopic.php?t=1332229
На этапе сборки, просто ничего не собираетя. Вот такой вывод команды:
sudo make build
cp: cannot stat '../enterprise/imports/imports.go': No such file or directory
fatal: not a git repository (or any of the parent directories): .git
Build Linux amd64
env GOOS=linux GOARCH=amd64 go build -o /bin -mod=vendor -trimpath -ldflags '-X "github.com/mattermost/mattermost-server/v5/model.BuildNumber=dev" -X "github.com/mattermost/mattermost-server/v5/model.BuildDate=Thu Feb 27 10:11:59 UTC 2020" -X "github.com/mattermost/mattermost-server/v5/model.BuildHash=376ec9e0e30c8215196f957441213a4ad295cd7d" -X "github.com/mattermost/mattermost-server/v5/model.BuildHashEnterprise=" -X "github.com/mattermost/mattermost-server/v5/model.BuildEnterpriseReady=true"' ./...
После идет таких же две для Mac и Windows, потом команда завершает выполнение, а в GOPATH каталога bin вообще нет.
Я так понимаю первая ошибка не критичная, а вот ошибка о том, что это не гит репозиторий? Пробовал делать git init не помогло.
Прошу прощения разобрался, почему то бинарики он положил в корневой каталог /bin
Добрый день.
Может есть в наличии скомпилированная более новая версия?
Заранее спасибо.
Dear Alex;
Link : https://yadi.sk/d/8bLwkQyN0UcbSw not working. Can you share with me mattermost and platform files.
Best Regards
https://yadi.sk/d/jpzCp4KC0Lb3yQ
Version 5.9.5
Добрый день.
А можно ссылку на новую сборку.
Старые файлы на яндекс диске не найдены (
http://nnmclub.to/forum/viewtopic.php?t=1332229
Version 5.16
Dear Alex,
is it possible for you to check "AD / LDAP" function ? I need to use AD / LDAP function. I think you need to change something in files for AD / LDAP to work. Can you share files that AD / LDAP works?
Best Regards!
Hi )
Did you downloaded version Version 5.9.5
Can you share? please?
Не подскажете, как запретить обычным пользователям уровня Member создавать приватные каналы? В config.json в соответствующих строчках прописал system_admin, но обычным пользователям всё равно доступно управление как общим каналом (переименование и даже удаление), так и создание приватных каналов.
По-моему, в бесплатной версии нет такой возможности. Это одна из причин, почему я не использую mattermost. Там есть какие-то критичные ограничения, которые не позволяют большому коллективу работать с mattermost в бесплатной редакции.
Хорошо. Тогда что из описанного вами в ваших статьях вы всё-таки посоветуете для использования в коллективе из 25-ти человек? MyChat, пожалуйста, не предлагайте, интересует именно бесплатный вариант серверной частью под Linux (конкретно CentOS, Zulip уже не подходит).
Посмотрите комментарий выше.
А кто-то может посоветовать кого-то для настройки и в идеале поддержания сервера mattermost?
Не уверен, что стоит развивать в эту сторону собственных спецов, т.к. потом вряд ли пригодится
Могу настроить без проблем.)
а можете мне написать на mors@1eska.ru пожалуйста контакты свои =)
Подскажите, если можете еще такой момент. С какого-то времени стали пропадать сообщения в чатах. Личных и публичных. Снизу чата расположена кнопка "Больше сообщений" при нажатии на которую ничего не происходит и чат полностью чист от сообщений, хотя там было их очень много до этого. Сообщения исчезают из чатов рендомно. Не понятна закономерность. Не подскажите, куда вообще рыть в этом случае? Сервер на Cent OS, в виртуалке, которая крутится на WinServ2008 R2 Enterprise. Спасибо.
Даже не знаю. Продукт этот достаточно зрелый, странно видеть такие ошибки. Надо смотреть либо лог серверной части, если он есть, либо идти на форум разработчиков и там задавать вопрос. Сам я не использую нигде mattermost.
Добрый день еще раз.
Уже, пожалуй три сервера mattermost установил по вашей инструкции и они уже как год работают. Но вот опять ставлю и после запуска получаю вот такой вывод:
{"level":"info","ts":1553426325.7105906,"caller":"utils/i18n.go:83","msg":"Loaded system translations for 'en' from '/opt/mattermost/i18n/en.json'"}
{"level":"info","ts":1553426325.71098,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."}
{"level":"info","ts":1553426325.7225804,"caller":"sqlstore/supplier.go:215","msg":"Pinging SQL master database"}
{"level":"error","ts":1553426325.7914166,"caller":"sqlstore/supplier.go:807","msg":"Failed to create index Error 1071: Specified key was too long; max key length is 1000 bytes"}
Не могу понять, в чем дело. Не может подсказать куда рыть.
Добрый день. Подскажите пожалуйста. Есть рабочий сервер mattermost. Есть задача по переносу его на другой сервер, в облако. Необходимо, собственно сохранить базу пользователей и всю переписку с чатами, приватными и публичными группами, настройками доступа и т.д. Что для этого необходимо сделать? Спасибо.
Я подробно не изучал этот вопрос, но подозреваю, что вся основная информация находится в базе данных. Соответственно, перенести надо ее и веб интерфейс.
Доброго дня! После выполнения "sudo -u mattermost ./platform" получаю такой результат:
{"level":"info","ts":1552493733.3972054,"caller":"utils/i18n.go:79","msg":"Loaded system translations for 'en' from '/opt/mattermost/i18n/en.json'"}
{"level":"info","ts":1552493733.397451,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."}
{"level":"info","ts":1552493733.4061995,"caller":"sqlstore/supplier.go:215","msg":"Pinging SQL master database"}
{"level":"error","ts":1552493733.51112,"caller":"sqlstore/supplier.go:807","msg":"Failed to create index Error 1071: Specified key was too long; max key length is 1000 bytes"}
Заранее, огромное спасибо за помощь....
Добрый день, вы решили проблему?
Решил. Вместо MariaDB установил MySQL.....
И еще одна ошибка [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory Смотрел в комментариях создал сам папку, но результат тот же - ошибка!
Отключил в консоле плагины ошибка пропала!)
Здравствуйте. Делал все строго по вашей инструкции. В локалке все работает. При подключении из вне в журнале ошибки [EROR] /api/v4/websocket:connect code=500 rid=bg7x61saoidhuk5baa69srabnh uid=mtkte1cpg7gxber4dm68hfac6y ip=111.111.11.11 Failed to upgrade websocket connection [details: ] [EROR] websocket соединение err: websocket: not a websocket handshake: 'upgrade' token not found in 'Connection' header не могу понять в чем дело. Можно подробнее?
Как у вас настроен доступ извне к серверу с чатом?
через доменное имя. все как у вас.
проброс портов на шлюзе сделал. Через https подключается. Но в вебпанели все время сообщение выскакивает Проверьте соединение, Mattermost недоступен. Если проблема не устранена, попросите администратора проверить порт WebSocket. Хотя сообщения отправляются и принимаются.
Спасибо за Ваши быстрые и полноценные ответы. Все решил уже сам.) Нашел ошибку в конфиге nginx
есть мысли как с этим справиться?
В ошибке четко указано, что нет доступа к базе данных:
Access denied for user 'mattermost'@'localhost' (using password: YES)
накосячил с iptables и логином от базы.
Спасибо за статью все работает.
Буду признателен, если укажите дорогу.
Вопрос такой: чат-сервер будет за сервером на котором nat, iptables, squid. Как выпустить mattermost в интернет? Я так понимаю настройка nginx как в статье будет недостаточно?
Надо пробросить 80-й или 443-й порт на сервер с mattermost. По сути он работает как обычный веб сервер, ему нужно http и https порты.
sudo -u mattermost ./platform
получаю:
------------------------------------ ERROR ------------------------------------------------
The platform binary has been deprecated, please switch to using the new mattermost binary.
The platform binary will be removed in a future version.
-------------------------------------------------------------------------------------------
ставил https://releases.mattermost.com/5.4.0/mattermost-5.4.0-linux-amd64.tar.gz
Подскажите, что-то я не понял.
при наличии статического белого ip, но без привязки доменного имени, можно запустить у себя mattermost и подключаться к нему?
Да, можно, по ip адресу.
На работе отлично прижилась связка OpenFire + Spark с импортом пользователей из AD, причем не последней версии - в версиях Spark выше 2.7.7 сломан поиск пользователей при импорте из AD, и чинить, похоже, не собираются, по крайней мере, недавно смотрел - ситуация не изменилась. Из минусов - нет клиента для мобильных устройств, как и для всех jabber-мессенджеров, но на работе он используется только на десктопах.
В коментариях упоминали MyChat - раньше им пробовали пользоваться, после OpenFire на него смотреть невозможно.
Вы серьёзно? :) А чем именно так плох MyChat, что OpenFire сильно лучше? Хотя бы два-три факта.
Я после тестов всех современных чатов, заочно полюбил MyChat за его легковесный нативный клиент. И вообще в целом стал очень хорошо относиться к старой Миранде, которую изначально решил заменить за ее древность. Но поюзав современные поделки на Electron (slack, zulip, mattermost и т.д.) резко негативно к ним отношусь за неотзывчивый, пожирающий ресурсы интерфейс. Эта тенденция просто удручает. Какой-то обычный чат начинает отжирать со временем 1-2 гигабайта оперативной памяти. Так быть не должно. В погоне за скоростью разработки, никто не думает об оптимизации.
Вы 100% правы. К сожалению, люди этого не видят сразу, а когда понимают - то уже поздно что-то менять. Сотрудники обучены, софт настроен, худо-бедно как-то работает.
День добрый. Есть желание посмотреть и написать про MyChat?
Я хорошо знаком с этим чатом, так как внимательно его тестировал и готовил к внедрению, но потом передумал. В целом, продукт понравился, функциональный и удобный. Настраивается достаточно легко, есть хорошая документация. Не понравилось, что нет подтверждения о прочтении, как во всех современных массовых мессенджерах, дистрибутив только под винду. А еще больше не понравился дизайн, аля привет из 2000-х. Сам клиент внешним видом классическую миранду напомнил. Не захотелось внедрять такой архаизм, в итоге отказался и внедрил zulip. Не сказать, что он сильно лучше, но внешне выглядит более современно.
В версии 7.0 интерфейс обновился, а касаемо подтверждения о прочтении стоит глянуть специальный инструмент, называется "Оповещения", вероятно, вы его просто пропустили мимо своего внимания. Он как раз заточен на эти вещи.
Инструмент "оповещения" я видел и он мне понравился, но речь не о нем. Я имел ввиду аналог одной или двух (когда прочитано) галочек, которые есть, к примеру, в telegram или watsapp. Я так понимаю, вы как-то связаны с разработкой mychat и пришли его популяризировать.
У меня были идеи написать про mychat статью, так как реально он мне понравился. Но я увидел в нем архитектурные проблемы, которые не дают ему развиваться и двигаться вперед, становиться более современным. Например, какой-то бот, который сидит в каждой конференции и его невозможно удалить. Он там совершенно не нужен, но убрать его невозможно из-за каких-то архитектурных особенностей.
Далее версия сервера только под винду. Да, кому-то может это показаться плюсом, но лично для меня это минус. Я привык к серверным решениям на linux.
Веб интерфейс управления какой-то тормознутый. На фоне нескучные обои с видом на море. Зачем они там? Чтобы по rdp картинка тормозила? Или предполагается, что администратор поставит сервер чата локально на свой компьютер?
Про внешний вид я уже сказал. К сожалению, не смог оценить изменений, о которых вы говорите. Не нашел на сайте скриншотов обновленного интерфейса.
Написал пост, отправил, но он не отобразился. Посмотрите пожалуйста, возможно, из-за линка его ваш антиспам зарезал.
Напишу ещё раз. Скрины есть в последней новости о выходе версии 7.0, гляньте, там "карусель".
Галочек в приватных мессаджах пока нету, ваша правда, со временем появятся. Насчёт робота в конференциях - думаю, у вас не было времени разобраться, зачем он там нужен, если есть такое желание - расскажу подробно, вопросы должны отпасть.
Сервер под Windows. Это не хорошо и не плохо, есть как есть. Дело вкуса и привычек. Никто не запрещает поднять виртуальную машину на Linux и юзать сервер MyChat там.
Касаемо WEB-интерфейса. Использовать его через RDP - это дикость какая-то. Это же удалённая админка, открываете в своём браузере на любом компьютере адрес сервера MyChat, логинитесь и админите. Зачем в терминалке-то мучить себя? И работает админка очень быстро, мы специально делаем на этом упор.
Да, я напрямую связан с разработкой этого мессенджера и хотел бы, чтобы вы попробовали написать обзор по нему, потому что нам очень важен взгляд "со стороны".
Добрый день! Кто нибудь сталкивался с такой ситуацией, когда подключение клиента через браузер осуществляется, а через приложение на Android выводиться сообщение "Не удалось подключиться к серверу. Проверьте адрес сервера и подключение к интернету"
Доброго дня суток! Хочу поднять примерно для 80 юзеров. Необходимо нужен параметры для сервека. Или поднять другой чат-сервер?
Заранее благодарю за совет :)
Я бы начал с виртуалки 2 ядра, 4 гига оперативы, диск 50 гб с возможностью расширения.
140 человек
Виртуалка на 1 ядро и 1 гиг
Серверная версия CentOs ест очень мало :)
Привет всем, никто не пробовал соеденить 2 серевера матермоста?
Каким образом они соединяются? Я не слышал об этом.
есть 2 филиала одной организации в разных городах у каждой свой сервер болталки, возможноли заиметь общий рум какойто, т.е. создать общий канал? Возможно ли такое в принципе?
Общий канал делаете и все, но должен быть доступ из вне можно по ip лучше через домен
Приветствую!
А как решали проблему с 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
server {
listen 80 default_server;
server_name mkz.asia;
return 301 http://$server_name$request_uri; - убери этот костыль
}
Привет при настройке 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;
}
}
Кто то побывал прикрутить к ldap? Вижу есть такое https://github.com/Crivaledaz/Mattermost-LDAP
Посмотрел описание. Настраивается вроде не сложно. Но для меня бесплатный mattermost в качестве корпоративного мессенджера вообще не подходит. Там любой пользователь может удалить любой чат. Управление правами доступа к чатам есть только в платной версии. Это подходит только для небольшой группы участников.
Приветствую. Вопрос по локализации, точнее ее отсутствие, несмотря на выбор русского. В логе - Загружен перевод системы на '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-а.
Отвечаю сам себе же) Был уверен,что сменил права на нужные и не проверил.
Вопрос снят с повестки дня!
В чем была проблема?
Привет! Нужно помощь выручайте пожалуйста! Поставил MM все отлично работает. Но когда пропускаю через прокси пользователям ругается "Проверьте соединение, Mattermost недоступен. Если проблема не устранена, попросите администратора проверить порт WebSocket." при том сообщение доход но без popup уведомление, это не удобно и даже не знаешь если кто нибудь отправить тебе сообщение.
Прокси Сервер - IP 192.168.1.56 (Squid+AD+Sams2)
MM Сервер - IP 192.168.1.75
> Skype последнее время стал сильно глючить и потреблять много ресурсов
Как правило, глючит не скайп, а маршрутизатор. Виноват может быть как скайп (MS любит менять протокол), так и роутер. VOIP, особенно коллективный и тем более корректно, отрабатывать могут не только лишь все
На счёт ресурсов - ПК 15 летней давности, 3 выработавшие ресурс? Ну да жрёт, особенно если не убрать ручками хост рекламы. Но если для ПК 150 Мб в ОЗУ нагрузка - его пора менять, так как браузеры жрут на порядок и более
> теперь перестал им быть.
Не замечал, вот чтобы прямо так категорично
> В любой момент с очередным обновлением он может перестать работать или начать жестко глючить.
Не ставить бездумно обновления, да? ))
> Исправления можно ждать неделю — две.
Если тупо вкатывать обновления и так же тупо пялиться в экран после подачи тикета в ожидании решения - конечно )
> К тому же skype постоянно крутит рекламу, пожирает ресурсы, причем непонятно на что. Он стал очень прожорлив.
драйвер hands.dvr ;-)) Хотя справедливость замечания имеет место быть
> Иногда глючит передача файлов, приходится пересоздавать профиль.
См выше про роутер, это один из первых и типичных признаков. А вообще, для бизнес коммуникаций есть skype for business/lync
Не бесплатно, конечно. Во всяком случае, халявщикам надо поработать ручками
> Второй недостаток всех публичных мессенджеров — нет централизованного управления аккаунтами. > Нет управления историей.
*рукалицо* Вы определитесь - шашечки вам или ехать )) Откройте гугл сьюит кроме бизнес-скайп,
там такая централизация - КГБ и концлагерь отдыхает. Опять же не бесплатно, нищебродам там не рады
Вообще, общее замечание: в коммуникациях есть два состояния
первый: стартап-фриланс, с использованием SOHO железа и опенсырцовых/фриварных решений.
Разрешено всё и под свою ответственность, без каких либо гарантий -as is
Второй: групповые коммуникации для бизнеса. Компании, выпускающие решения, тоже хотят кушать и зарабатывать много на VoIP
Следует помнить и понимать, что есть вероятности и риски. Так как VoIP крайне чувствителен, развитая групповая работа может потребовать обеспечения такой же групповой работы специалистов, начиная с хорошего сетевика и заканчивая программистом(-ами)
Особенно, если к коммуникациями предъявляются требования первого и бизнес класса, которые подразумевают отдельные бюджеты
"К тому же skype постоянно крутит рекламу"
Не выгораживаю скайп, но о какой версии речь и на какой платформе?
Спасибо большое Вам, ошибка было из-за не внимательности.
Доброго дня! Имеется вопрос: У меня стоит Proxy Server (настроил по Вашим рекомендациям, конечно Большое спасибо). и вот Proxy не пропускает Mattermost, искал в настройках не нашел где можно было прописать proxy. Как быть? Спасибо заранее.
Вообще, он работает через прокси нормально. У меня работал в офисе на прокси с авторизацией в домене по керберосу. Никаких особенных настроек для mm не делал.
Спасибо решил :)
Привет! Нужен помощь. При добавления в автозапуск 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
Надо еще не забять исполняемым сделать файл.
chmod +x /etc/systemd/system/mattermost.service ?
Доброго дня суток. Нужен помощь. При старте /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 осваивать...
Спасибо за хорошую и содержательную статью! Вопрос такой. Есть корпоративный портал на 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 в скорости его вытеснит.
И как успехи по 2 пункту?есть ли статья?интересует тоже эта тема,чтобы и клиенты под ведро и огрызки нормально работали с таким сервером,пересылка файлов,аудио хотя бы,спасибо.
Так и не внедрил, но задача стоит. Думаю, что на следующей недели буду настраивать. Когда статья выйдет - не знаю.
Здравствуйте.
Лег винт на сервере, образ отказался восстанавливаться, Акронис вылетает.
Вообщем такой вопрос, иду по инструкции и вот дохожу до этапа запроса SQL выполняю его, после выполнения SQL запроса, получаю сообщение что возвращен пустой ответ, и вот не могу найти пункт меню в котором можно отобразить полные тексты.
Как на картинке сверху:
https://serveradmin.ru/wp-content/uploads/2017/04/centos-mattermost-03.png
Не подскажите где искать этот подпункт?
Если вернула пустой ответ, значит код выполнен либо в пустой базе данных, либо не в той, которой нужно. Запрос должен выводить некий ответ, с которым потом уже работаем. У вас ответа вообще нет.
Такой вопрос.
Ранее у меня с этой задачей проблемы не было SQL запрос и все последующее по инструкции проходило на ура, и после была наращена база и сделана копия.
Если у меня есть копия базы, и ее просто импортирую, эта операция со SQL запросом, нужна?
Отвечаю на свой вопрос.
Если у вас уже есть копия существующей sql базы для mattermost, то да, ее можно просто импортировать.
Конечно нужно вначале создать пользователя и саму базу, с теми именами и паролями, с которыми они существуют в сохраненной базе данных.
А после просто импортировать сохраненную базу, в только что созданную.
Проверил. Удаление и создание новых каналов, сообщения. Все остается и ничего не теряется.
Спасибо, тебе админ)
Твой сайт очень помогает.
На основании твоих статей и нескольких других сайтов, я наконец сделал полный сценарий по настройке своего Centos 7 сервера. На котором превосходно работает mattemost и owncloud.
Респект и уважуха, тебе!
Я заметил что этот чатик может портироваться с Active Directory. На данный момент сам гуглю настройки, но был бы благодарен примеру))
Если не ошибаюсь, то это платный функционал.
"https" для него тоже платный функционал? А то ли я где-то не понимаю толи он так работает. Перевести nextcloud на "https" с самоподписанными сертификатами смог, а с чатом воюю. Хотя "воюю" только часа 2 как))
docs.mattermost.com помог)) Сорян за беспокойство
А как Вы настроили PUSH?
Когда выбираешь опцию указать свой push-сервер появляется текст содержащий ссылки(или ссылку не помню их там две или одна) на страницу где на английском описано что мы можем использовать их бесплатный сервер. Я скопировал адрес - вставил в нужное поле и вуаля))
Вопрос по теме push-уведомлений. Пока тестил на виртуалке они включились и работали. Только развернул на живом пк не могу включить push-уведомлений. Как быть кто подскажит?
Вопрос снимается с повестки дня))
А как Вы настроили Push?
Напиши пожалуйста как правильно сделать обновление на свежую версию.
Хорошо, посмотрю на днях. Как раз есть сервер под рукой. Думаю, там не должно быть сложностей.
Обновил статью, добавил новый раздел. Только что проверил на своем сервере, обновление прошло нормально.
Спасибо огромное!!!
Тоже столкнулся с выбором корпоративного мессенджера и, глубоко проанализировав текущие решения, нашел для себя отличный вариант - 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. Напишу статью.
Я тоже не нашел. Похоже этого функционала там нет. А без него реально грустно.
Потестил я этот matrix с riot. Никак статью не допишу, так как много разбирался с темой. Но в целом мой вывод такой - этот продукт для продакшена совершенно не готов. Очень много непонятного, какие-то глюки время от времени: то оповещения не работают, то в установке файлы пропущены, то версии модулей питона не совпадают, то еще что-нибудь. Каждая установка на новой системе танцы с бубном. Я их попробовал несколько, так как в каждой системе что-нибудь глючило и я надеялся, что в другой будет нормально. Но нет :)
Оповещения на почту работают как-то странно. Руками добавляешь условия через настройки - работают. Но как сделать, чтобы сразу приходили уведомления о личных сообщениях, если ты в офлайне, я не понял.
Сам riot работает немного странно и непривычно, подтормаживает и подтупливает временами. Иногда верстка разъезжается, особенно на странице логина (выпадающий список).
Документации нет, кроме инструкции с инсталлом. Так что использование matrix это для тех, у кого много свободного времени и желания возиться с недоделками. Возможно и получится что-то дельное, так как в целом функционал хороший. До интеграции с AD не дошел, более насущные проблемы решал, но если работает без плясок с бубном (в чем сомневаюсь:)) то будет неплохим решением.
вот это сокровище вообще!
спасибо большое
Спасибо, Вам за подробные инструкции.
Получилось mattermost настроить? Как он, понравился?
Да, но с без https. Также не нашёл как обойти ограничение по одновременной загрузки 5 изображений. Спасибо за подробные инструкции, благодаря им, я запустил и частично настроил у себя Centos 7. Спасибо)
Со всем уважением, но мне кажется несколько часов вашей работы, будут стоить как покупка платного но удобнейшего и многофункционального MyChat. До 20 пользователей - бесплатно!
Посмотрел описание. Функционал понравился, внешний вид не очень. Старовато выглядит. Надо будет потестировать.
Всенепременно попробуйте! Крутецкая штуковина.
А что до внешнего вида... ну тут вспоминается анекдот про шашечки и ехать + разработчик очень внимательно прислушиваются к своим пользователям, так что, как знать, может и поддержку скинов внедрят.
Ах, да, чуть не забыл!
За блог - спасибо! :-)
Ни к чему ваш этот MyChat с закрытым исходником. Другое дело, если бы был платный, но с открытым исходником.
И что, исходники стали бы изучать? Mychat хорошее решение для тех, кто хочет просто купить, поставить и пользоваться. Весь заявленный функционал там работает из коробки без танцев с бубном.
А почему OpenFire + Spark не рассматривали? Там даже интеграция с АД есть насколько я помню
А как на счет привязки пользователей к почте как в ejabberd можно реализовать?
Не понял, о какой привязке идет речь?
Примерно ejabberd можно привязать к postfix. пользователи у которых есть почта, могут используя свой почтовый адрес и пароль авторизовываться в ejabberd чате. Как бы один логин и пароль ко двум системам.
Такое возможно в mattermost?
Не увидел преимуществ перед OpenFire + MySQL.
Mattermost - это вебня, т.е. красивый гуй
Skype - это жалкое подобие Slack,
да ещё и с кривым поиском.
А Mattermost - это лучше чем slack, потому что работает на собственном сервере
(а не в чьём-то облаке) и поиск по истории бесплатный
По функционалу Mattermost Слаку явно проигрывает. Ну а то, что он на своем сервере крутится, для меня определяющее преимущество.
мы переехали с опенфайра на маттермост и в итоге плюсом оказалось, что в мм можно вставить картинку контрол+в, а в оф можно нажать "разбудить контакт" или как-то так, когда надо на что-то срочно обратить внимание сотрудника. В целом рано или поздно новые штуки типа мм завоюют весь рынок, а оф не развивается совсем. Сейчас я посмотрел бы на Discord в силу наличия видеоконференций.
Discord немного использовал. Качество связи хорошее, лучше, чем в скайп. Но я так понял, он конкурент скайпу, а не корпоративным мессенджерам, типа слака или мм.
А можно про rocket.chat подробнее? Я так понял, в нём есть видеоконференции, в отличие от MM. В MM есть отдельная enterprise версия, то есть опять все интересные плюшки типа AD интеграции вынесены за плату?
За бесплатно нигде полезных плюшек не будет, можно даже не надеяться. В рокете видеоконференции не смотрел даже. Мне не нужно было.
А если сервер будет выключен, клиенты будут работать?
Нет, они же к серверу подключаются. Это только клиент-серверная реализация.