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