Mattermost | Мессенджер

Answer

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five http://jquery2dotnet.com/ centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

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

Например тот же самый jabber сервер отказывался работать с русскими именами пользователей с пробелами (я когда их увидел долго бился головой об стол). Всякие чаты на подобии Commfort - оказывались на практике совсем не комфортными: неудобны в использовании, громоздки. Некоторые решения не поддерживали терминалы (большинство пользователей сидят и работают за терминальными машинами).
Причин было много, вплоть до того как десктопное приложение обрабатывало уведомления и список пользователей или не умело передавать файлы. Самым подходящим вариантом был Softros LAN Messenger, но не подходил по ценовой политике. Да он не дорого стоит, но начальство это не устраивало. Ведь не известно что будет завтра, и будем ли мы его использовать на следующей неделе. К тому же чтобы получить бессрочную лицензию (с возможностью обновления более чем 3 года) нужно было заплатить ещё столько же.

Попробовав ещё различные варианты - мы подзабили. И вот. Спустя 1.5 лет, мы вновь вернулись к этому вопросу. Поднимался даже вопрос написать своё приложение, даже была попытка такое сделать - но это требовало больше времени чем у нас было и не рентабельно по трудозатратам. И тогда я наткнулся на статью про Mattermost. Почитал, посмотрел на аналоги и пришёл к выводу что можно попробовать. И так, основные критерии по которым выбирался чат:
  • Один раз настроил и забыл. Так как пользователи ленивые, каждый раз вводить логины пароли они не любят (и запоминать их тоже из за чего частенько приходится сбрасывать после отпуска/или после очередной смены) это было основным критерием. В противном случае затрачиваемые усилия не стоили того. ИТ отдел мог пользоваться и WhatsApp запущенным на компе.
  • На своих серверах - так как чат предполагался в основном для обсуждения рабочих вопросов должен быть на своих серверах. К тому же у некоторых пользователей кто работает за терминалами, нет доступа в интернет.
  • История сообщений - хранимая хистори за всё время. Во всех каналах, как приватных так и публичных. Чтобы можно было по щелчку пальцев вытащить/посмотреть и предоставить на стол в виде отчёта :)
  • Уведомления - правильная обработка уведомлений. Если отсутствующему человеку пришло сообщение в какой-либо канал или ЛС, он придя на рабочее место мог об этом узнать не открывая чата. В mattermost помимо стандартных уведомлений в чатах, можно настроить отправку таких уведомлений на почту :)
  • Передача файлов - для обмена документами. Чтобы минимизировать использование пабликов и прекратить превращение последних в помойку. 
  • Понятность - русский интерфейс должен работать из коробки :)
  • Мобильная версия - как хотелка для ИТО - возможность использовать приложение на телефоне.
С целями определились, перейдём к самой установке. Хочу напомнить чтобы безопасность серверов я в статье не рассматриваю и по умолчанию отключаю фаервол и selinux.И так, я буду предполагать что у нас уже стоит сервер с установленной и обновлённой Centos 7, поэтому буду приводить команды особо на них не останавливаясь и начну сразу с установки необходимых компонентов для работы чата.Первым делом собственно поставим веб сервер

yum install httpd php mariadb mariadb-server

Запускаем и добавляем в автозагрузку

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Запускаем скрипт для мускуля

/usr/bin/mysql_secure_installation

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

yum install epel-release
yum install phpmyadmin

Редактируем конфиг phpmyadmin чтобы разрешить доступ помимо как с локалхоста

nano /etc/httpd/conf.d/phpMyAdmin.conf



Я его настроил чтобы иметь доступ с любого IP адреса. После этого перезапускаем Apache

apachectl restart

Теперь заходим в PMA который теперь доступен по адресу http://ip-сервера/phpmyadmin/ , и создаём нового пользователя с одноимённой базой для него. 
НЕ ЗАБЫВАЕМ про галочку :)

У меня пользователь mattermost2 т.к. уже есть mattermost :) 

Теперь переходим на сайт mattermost'a и копируем ссылку на скачивание последней версии. На момент написания статьи это 4.3.1. Скачиваем её

cd /usr/src
wget https://releases.mattermost.com/4.3.1/mattermost-4.3.1-linux-amd64.tar.gz



Распаковываем и перемещаем всё в /opt

tar -xvzf *.gz
mv mattermost /opt

Создадим папку для обмена файлами. Если подразумевается что файлов будет много и объём нужен большой, лучше сделать её на отдельном винте или подцепить по NFS. Расположение папки указывается в настройках самого приложения

mkdir /opt/mattermost/data

Создаём пользователя для работы mattermost'a. Так же следует выдать права на папку для обмена файлами, если вы указали её отличную от моей.

useradd --system --user-group mattermost
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Редактируем конфиг файл

/opt/mattermost/config/config.json

и указываем в нём доступ к мускулю, для этого находим строчку DataSource и заменяем её на

"DataSource": "mattermost:pass@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=20s&writeTimeout=20s",

mattermost - пользователь мускуля которого мы создали
pass - пароль от него

После чего переходим снова в phpmyadmin(или heidisql) и выполняем SQL запрос для базы mattermost

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 запрос. Этим самым мы сменили тип таблиц с InnoDB на MyISAM.
Теперь сделаем чтобы mattermost запускался автоматом. Для этого создаём файл

nano /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

Теперь мы можем добавить его в автозагрузку, что мы и сделаем и сразу запустим его

chkconfig mattermost on
systemctl enable mattermost
systemctl start mattermost

Теперь переходим по адресу http://ваш_ip:8065 и можно приступать к настройке.

Более подробно на настройке я останавливаться не буду, там я считаю что и так всё понятно. К тому же можно включить русский интерфейс и станет ещё понятней :)

Если будут вопросы, спрашивайте в коментариях.

Статья основана на примере serveradmin.ru За что ему уже не в первый раз огромное спасибо :) 

Поделись с друзьями

Похожие новости
Комментариев: 4
  1. User name
    Подскажите:

    В MatterMost пользователь может удалять и редактировать свои сообщения.

    Возможно ли восстановление удалённых сообщений?
    Просмотр истории изменений?


     
    1. User name
      Удалять свои посты можно. Удаляются с сервера. Логи я не пользую, поэтому ответить не могу остаются ли записи там. 
      Редктировать посты так же можно, у всех будет писаться что пост отредактирован
       
  2. User name
    Добрый день. Пользовалась этой прогой на телефоне и каким то образом вылетела. Теперь он просить скинуть пароль - но кнопки такой я не обнаружила.Подскажите плиз
     
    1. User name
      Сброс пароля, если я не ошибаюсь, возможен только на сервере. 
       
Имя:*
E-Mail: