Mattermost. Установка на Debian 11.


Mattermost — это бесплатная платформа для совместной работы и обмена сообщениями с открытым исходным кодом, созданная с учетом требований безопасности. Это альтернатива Discord или Slack, предлагающая множество полезных функций, включая обмен сообщениями один на один, неограниченную историю поиска и возможности обмена файлами, двухфакторную авторизацию и уведомления. Это автономный онлайн-чат, написанный на Golang и React. Он специально разработан для организаций и компаний, позволяющий различным командам безопасно общаться из любой точки мира.

Давайте рассмотрим, как установить сервер для чата Mattermost на Debian 11. 

Установка и конфигурирование базы данных. 

Mattermost использует MySQL или MariaDB в качестве базы данных. Я решил остановить свой выбор на MariaDB. Поэтому начнем свою работу с установки именно этой БД. Установить ее можно с помощью следующей команды ((Не забудьте сначала сделать apt update, чтобы получить свежий пакет с приложением):

# apt-get install mariadb-server -y

После установки MariaDB, необходимо запустить службу:

 # systemctl start mariadb

И включить автоматический запуск при загрузке системы

 # systemctl enable mariadb

Теперь подключаемся к оболочке базы с помощью следующей команды:

 # mysql

После подключения создаем базу данных и пользователя с помощью следующих команд:

MariaDB [(none)]> create database mattermost;
Query OK, 1 row affected (0.002 sec)

MariaDB [(none)]> create user mattermost@localhost identified by ‘password’;
Query OK, 0 rows affected (0.005 sec)

Предоставляем привилегии для БД mattermost:

MariaDB [(none)]> grant all privileges on mattermost.* to mattermost@localhost;
Query OK, 0 rows affected (0.005 sec)

Теперь сбрасываем привилегии и выходим из оболочки

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> exit
Bye

Переходим к следующему шагу.

Установка mattermost

Сначала создадим отдельного пользователя для Mattermost, используя следующую команду:

useradd —system —user-group mattermost

Теперь загружаем последнюю версию пакета mattermost

# wget https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz 
—2022-07-28 15:48:26— https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz

2022-07-28 15:49:14 (5.41 MB/s) — ‘mattermost-6.0.2-linux-amd64.tar.gz’ saved [263718449/263718449]

После завершения загрузки, распакуем скачанный архив

tar -xvzf mattermost-6.0.2-linux-amd64.tar.gz

mattermost/manifest.txt

Теперь переместим извлеченные файлы в каталог /opt

 # mv mattermost /opt

Создаем каталог с данными для mattermast (data)

 # mkdir /opt/mattermost/data

Меняем владельца каталога

# chown -R mattermost:mattermost /opt/mattermost
# chmod -R g+w /opt/mattermost

Теперь редактируем файл конфигурации, любым удобным текстовым редактором. Находим следующие строки

«DriverName»: «postgres»,
«DataSource»: «postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10»,

И меняем данные строки на следующие:

«DriverName»: «mysql»,
«DataSource»: «mattermost:password@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s»,

Сохраняем, закрываем, переходим к следующему шагу.

Создание юнита для Mattermost

Теперь нам необходимо создать юнит service для mattermost. Создаем файл /etc/systemd/system/mattermost.service и открываем его в любом удобном редакторе. Записываем туда следующую информацию:

[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Сохраняем, закрываем и перезагружаем демон systemd, следующей командой

# systemctl daemon-reload

Далее запускаем, созданную нами, службу. И включаем запуск при загрузке системы.

# systemctl start mattermost
#systemctl enable mattermost

Проверим состояние службы

# systemctl status mattermost
● mattermost.service — Mattermost
Loaded: loaded (/etc/systemd/system/mattermost.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-07-28 17:40:15 MSK; 1min 42s ago
Main PID: 4826 (mattermost)
Tasks: 33 (limit: 1132)
Memory: 411.8M
CPU: 5.725s
CGroup: /system.slice/mattermost.service
├─4826 /opt/mattermost/bin/mattermost
├─4849 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
├─4859 plugins/playbooks/server/dist/plugin-linux-amd64
├─4865 plugins/focalboard/server/dist/plugin-linux-amd64
└─4893 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

По умолчанию Mattermost прослушивает порт 8065. Поэтому рекомендуется установить и настроить Nginx в качестве обратного прокси-сервера для доступа к Mattermost через порт 80. Для этого переходим к следующему пункту.

Настройка Nginx в качестве обратного прокси для Mattermost.

Сначала установим nginx с помощью следующей команды:

# apt-get install nginx -y

После установки создадим и отредактируем файл конфигурации виртуального хоста nginx по следующему адресу /etc/nginx/conf.d/mattermost.conf. Добавьте в него следующее содержимое

upstream mattermost {
server localhost:8065;
keepalive 32;
}

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;
server_name mattermost.example.com;

location ~ /api/v[0-9]+/(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;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_pass http://mattermost;
}

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_http_version 1.1;
proxy_pass http://mattermost;
}
}

Сохраняем и закрываем файл. Можно проверить еще этот файл на ошибки с помощью следующей команды:

[termianl]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful [/terminal]

Если у вас как на примере выше, значит Вы все делаете правильно. Запускаем nginx

# systemctl start nginx

На этом шаге, мы завершили настройку Matterhost. Все должно быть запущено и работать без ошибок.

Доступ к веб-интерфейсу Mattermost.

Теперь откройте веб-браузер и войдите в веб-интерфейс Mattermost, используя URL-адрес http://mattermost.example.com. Вы будете перенаправлены на следующую страницу:

Укажите адрес электронной почты администратора, имя пользователя, пароль и нажмите кнопку «Создать учетную запись». Вы должны увидеть следующую страницу:

Теперь нажмите «Перейти к системной консоли». Вы будете перенаправлены на панель инструментов Mattermost, как показано ниже:

Поздравляем! вы успешно установили Mattermost с Nginx в качестве обратного прокси-сервера в Debian 11. Теперь вы можете внедрить Mattermost в своей организации и позволить командам общаться друг с другом.

Was this helpful?

0 / 0

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