Как установить mattermost на ubuntu

Обновлено: 02.07.2024

Установите готовую к работе систему Mattermost на 1–3 машинах.

Если у вас возникли проблемы с установкой Mattermost, просмотрите или присоединитесь к сообществу пользователей Mattermost для получения помощи по устранению неполадок.

Чтобы получить помощь по приглашению пользователей в вашу систему, см. и другую информацию для начала работы.

Чтобы представить улучшение или исправление на этой странице, нажмите Отредактируйте в правом верхнем углу страницы.

Установите и настройте компоненты в следующем порядке. Обратите внимание, что вам нужна только одна база данных, MySQL или PostgreSQL.

Установите 64-разрядную версию Ubuntu Server на каждый компьютер, на котором размещен один или несколько компоненты.

Чтобы установить Ubuntu Server 18.04:

  1. Чтобы установить Ubuntu Server 18.04, см.
  2. После установки системы убедитесь, что в ней установлены самые последние исправления безопасности. Откройте окно терминала и выполните следующие команды:

sudo apt update

sudo apt upgrade

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

Установить и настроить базу данных для использования сервером Mattermost. Вы можете установить MySQL или PostgreSQL.

Чтобы установить MySQL на Ubuntu Server 18.04:

  1. Войдите в сервер, на котором будет размещена база данных, и открыть окно терминала.
  2. Установить MySQL.
  1. Запустите mysql_secure_installation и следуйте инструкциям.

mysql> создать пользователя' mmuser '@'% ', идентифицированного как' mmuser-password ';

  1. Предоставить права доступа пользователю mmuser.

mysql> предоставить все привилегии на материейст. * для 'mmuser' @ '%';

Примечание

Этот запрос предоставляет пользователю MySQL, которого мы только что создали, все привилегии в базе данных для удобства. Если вам нужна дополнительная безопасность, вы можете использовать этот запрос, чтобы предоставить пользователю только права, необходимые для запуска Mattermost.

mysql> GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT , ВЫБРАТЬ, ОБНОВИТЬ НА САМОЕ важное значение. * TO 'mmuser' @ '%';

После установки базы данных и завершения начальной настройки вы можете установить сервер Mattermost.

Установить и настроить базу данных для использования на сервере Mattermost. Вы можете установить PostgreSQL или MySQL.

Для установки PostgreSQL на Ubuntu Server 18.04:

  1. Войдите на сервер, на котором будет размещена база данных, и выполните следующую команду:

sudo apt install postgresql postgresql-contrib

По завершении установки сервер PostgreSQL запущен, а пользователь Linux учетная запись с именем postgres создана.

Примечание

Используйте более безопасный пароль, чем «mmuser-password».

  1. Предоставить пользователю доступ к базе данных Mattermost.
  1. Выйдите из интерактивного терминала PostgreSQL.
  1. (Необязательно) Если вы используете другой сервер для своей базы данных и сервер приложений Mattermost, вы можете разрешить PostgreSQL прослушивать все назначенные IP-адреса. Для этого откройте /etc/postgresql/10/main/postgresql.conf от имени пользователя root в текстовом редакторе. Рекомендуется убедиться, что только сервер Mattermost может подключаться к порту PostgreSQL через брандмауэр.
  1. Раскомментируйте строку и измените localhost на * :
  1. Перезапустите PostgreSQL, чтобы изменения вступили в силу:
  1. Измените файл pg_hba.conf , чтобы сервер Mattermost мог взаимодействовать с базой данных.

Если сервер Mattermost и база данных находятся на одном компьютере :

  1. Откройте /etc/postgresql/10/main/pg_hba.conf как root в текстовом редакторе.

    Найдите следующие строки:

local all all peer

разместить все все :: 1/128 identity

  1. Изменить однорангового узла и identify на trust :

local all all trust

host all all :: 1/128 trust

Если сервер Mattermost и база данных находятся на разных машинах :

sudo systemctl reload postgresql

  1. Убедитесь, что вы можете подключиться к пользователю mmuser .
  1. Если сервер Mattermost и база данных находятся на одном компьютере, используйте следующую команду:
  1. Если сервер Mattermost находится на другом компьютере, войдите на этот компьютер и используйте следующую команду:

psql --host = --dbname =attermost --username = mmuser --password

Примечание

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

Запустится интерактивный терминал PostgreSQL. Чтобы выйти из интерактивного терминала PostgreSQL, введите q и нажмите

С помощью база данных установлена ​​и первоначальная настройка завершена, теперь вы можете установить сервер Mattermost.

Установить сервер Mattermost на 64-битная машина.

Для установки Mattermost Server в Ubuntu

  1. Войдите на сервер, на котором будет размещен сервер Mattermost, и откройте окно терминала.
  2. Загрузить. В следующей команде замените XXX версией, которую вы хотите загрузить:

Примечание

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

  1. Настройте системного пользователя и группу с именем Самая важная , которая будет запускать эту службу, и установит права собственности и разрешения.
  1. Задайте пользователя и группу questionmost в качестве владельца файлов Mattermost:
  1. Предоставьте права на запись группе attermost :
  1. Настройте драйвер базы данных в файле /opt/mattermost/config/config.json . Откройте файл в текстовом редакторе и внесите следующие изменения:
  1. Установите для "DriverName" значение "postgres"
  2. Задайте для "DataSource" следующее значение, заменив и с соответствующими значениями:
"postgres://mmuser: @ : 5432/attermost? sslmode = disable & connect_timeout = 10 " . "mmuser: @tcp (: 3306)/attermost? charset = utf8mb4, utf8 & readTimeout = 30s & writeTimeout = 30s"

Также установите "SiteURL" на полную базовый URL сайта (например, "https://mattermost.example.com" ).

Проверить Mattermost сервер, чтобы убедиться, что все работает.

  1. Запустите сервер Mattermost как наиболее важного для пользователя:

sudo -uattermost ./bin/ самый важный

Когда сервер запускается, он показывает некоторая информация журнала n и текст Сервер прослушивает: 8065 . Вы можете остановить сервер, нажав CTRL + C в окне терминала.
  1. Настройте Mattermost для использования systemd для запуска и остановка.
  1. Откройте файл модуля с правами root в текстовом редакторе и скопируйте в файл следующие строки:

Если вы используете MySQL, замените postgresql.service с mysql.service в 2 местах в разделе [Unit] и в 1 месте в [Install] раздел.

Если вы установили MySQL или PostgreSQL на выделенный сервер, то вы необходимо

  • удалить After = postgresql.service и BindsTo = postgresql .service или After = mysql.service и BindsTo = mysql.service в строках [Unit] и
  • замените строку WantedBy = postgresql.service или WantedBy = mysql.service в строке [Установить] с WantedBy=multi-user.target

или Служба Mattermost не запускается.

Установка WantedBy для вашей локальной службы базы данных гарантирует, что при запуске службы базы данных запускается и сервер Mattermost. Это предотвращает остановку работы сервера Mattermost после автоматического обновления базы данных.

sudo systemctl statusattermost.service

Вы должен увидеть вывод, подобный следующему:

  1. Установить Mattermost для запуска при запуске машины.

Теперь, когда сервер Mattermost запущен и работает, вы можете выполнить некоторую первоначальную настройку и настройку.

Создайте пользователя системного администратора и настройте Mattermost для общего использования.

  1. Откройте браузер и перейдите к своему экземпляру Mattermost. Например, если IP-адрес сервера Mattermost 10.10.10.2 , перейдите по адресу.
  2. Создайте первую команду и пользователя. Первый пользователь в системе имеет роль system_admin , которая дает вам доступ к системной консоли.
  3. Чтобы открыть системную консоль, щелкните свое имя пользователя вверху панели навигации и выберите Системная консоль .
  4. Задайте URL-адрес сайта:
  1. Откройте системную консоль >Environment >Хранилище файлов , чтобы настроить место для хранения файлов и изображений.
  • Если вы храните файлы локально, установите для File Storage System значение Local File System , а затем либо примите значение по умолчанию для Каталог локального хранилища или введите местоположение. Расположение должно быть каталогом, который существует и имеет права записи для сервера Mattermost.. Это может быть абсолютный или относительный путь. Относительные пути указываются относительно каталога Самая важная .
  • Если вы храните файлы на Amazon S3, установите для File Storage System значение Amazon S3 и введите соответствующие значения для своей учетной записи Amazon.
  1. Выберите Сохранить , чтобы применить конфигурацию.
  2. Просмотрите и настройте любые другие параметры, которые могут быть применимы.
  3. Перезапустите Mattermost.
  1. Настроить TLS на Сервер Mattermost.
  2. Установите прокси, например NGINX, и настройте TLS на прокси.

Настройте TLS на сервере Mattermost. :

  1. В Системной консоли> Среда> Веб-сервер (или Системная консоль> Общие> Конфигурация в версиях до 5.12).
  1. Измените адрес прослушивания установите значение : 443 .
  2. Измените настройку Connection Security на TLS .
  3. Измените настройку Forward port 80 на 443 на true .
  1. Активируйте возможность CAP_NET_BIND_SERVICE , чтобы позволить Mattermost связываться с нижними портами.
sudo setcap cap_net_bind_service = + ep/opt/attermost/bin/attermost
  1. Установить сертификат безопасности te. Вы можете использовать его для автоматической установки и настройки сертификата или можете указать свой собственный сертификат.

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

Чтобы использовать собственный сертификат :

Сертификаты, защищенные паролем, не поддерживаются.

Использование TLS на NGINX (как proxy)

Не настраивайте TLS на Mattermost до того, как сделаете это для NGINX. Он разрывает соединение, поскольку TLS не позволяет ему успешно взаимодействовать с сервером Mattermost.

  • NGINX будет действовать как прокси-сервер пересылки для шифрования трафика между клиентом и Сервер Mattermost. После установки SSL-сертификата входящий трафик будет обрабатываться через NGINX на порту 443, доступном для Интернета, прокси-серверу Mattermost, работающему на порту 80.
  • (Необязательно) Шифрование восходящего потока между NGINX и Mattermost сервер разрешен.
  • Подпишитесь.

Другие полезные ресурсы:

В производственных условиях используйте прокси-сервер для большей безопасности и производительности Mattermost.

Основные преимущества использования прокси-сервера заключаются в следующем:

Чтобы установить NGINX на сервере Ubuntu:

  1. Войдите на сервер, на котором будет размещен прокси, и откройте окно терминала.
  2. Установите NGINX.
  1. После завершения установки убедитесь, что NGINX запущен.

Вы можете останавливать, запускать и перезапускать NGINX с помощью следующих команд:

Что делать дальше

NGINX настраивается с использованием файла в /etc/nginx Каталог/sites-available . Вам нужно создать файл, а затем включить его. При создании файла вам потребуется IP-адрес вашего сервера Mattermost и полное доменное имя (FQDN) вашего веб-сайта Mattermost.

Чтобы настроить NGINX в качестве прокси-сервера

  1. Войдите на сервер, на котором размещен NGINX, и откройте окно терминала.
  2. Создайте файл конфигурации для Mattermost.

В RHEL 7 и 8: sudo touch/etc/nginx/conf.d/mattermost

  1. Откройте файл /etc/ nginx/sites-available/attermost как пользователь root в текстовом редакторе и замените его содержимое, если оно есть, следующими строками. Убедитесь, что вы используете свои собственные значения для IP-адреса сервера Mattermost и FQDN для server_name.

В RHEL 7 и 8 откройте файл /etc/nginx/conf.d/mattermost .

  1. Удалить существующий файл с поддержкой сайтов по умолчанию.

В RHEL 7 и 8: sudo rm/etc/nginx/conf.d/default

sudo ln -s/etc/nginx/sites-available/attermost/etc/nginx/sites-enabled/attermost

В RHEL 7 и 8: sudo ln -s/etc/nginx/conf.d/mattermost/etc/nginx/conf.d/default.conf

  1. Убедитесь, что вы можете видеть Mattermost через прокси.

По умолчанию сервер Mattermost принимает соединения через порт 8065 от каждой машины в сети. Используйте свой брандмауэр, чтобы запретить подключения через порт 8065 ко всем машинам, кроме машины, на которой размещен NGINX, и машины, которую вы используете для администрирования сервера Mattermost. Если вы устанавливаете Amazon Web Services, вы можете использовать группы безопасности для ограничения доступа.

Почему соединения Websocket возвращают ошибку 403?

Вероятно, это связано с неудачной проверкой перекрестного происхождения. Для кода WebSocket применяется проверка, чтобы узнать, совпадает ли заголовок Origin с заголовком хоста. В противном случае возвращается ошибка 403. Откройте файл /etc/nginx/sites-available/attermost как root в текстовом редакторе и убедитесь, что заголовок хоста, установленный в прокси-сервере, является динамическим:

Затем в config.json установите AllowCorsFrom , чтобы соответствовать домену, используемому клиентами. Возможно, вам потребуется добавить варианты имени хоста, которые могут отправлять клиенты. Ваш журнал NGINX поможет в диагностике проблемы.

Другие советы по поиску и устранению ошибок WebSocket см.

Как мне настроить прокси-сервер NGINX с установкой Mattermost Docker?

  1. Найдите имя сети Mattermost и подключите его к прокси-серверу NGINX:
  1. Обновите файл docker-compose.yml , включив в него новую переменную среды VIRTUAL_HOST и директива expose .

Почему происходит сбой NGINX при установке Gitlab CE с Mattermost в Azure?

Возможно, вам потребуется обновить URL-адреса обратного вызова для записи приложения Mattermost внутри вашего экземпляра GitLab.

  1. Войдите в свой экземпляр GitLab как администратор.
  2. Перейдите в Admin> Applications .
  3. Нажмите Edit в GitLab-Mattermost.
  4. Обновите URL-адреса обратного вызова для вашего нового домена/URL.
  5. Сохранить изменения.
  6. Обновите внешний URL-адрес для GitLab и Mattermost в файле конфигурации /etc/gitlab/gitlab.rb .

NGINX настраивается с использованием файла в /etc/nginx/sites-available код> каталог. Вам нужно создать файл, а затем включить его. При создании файла вам потребуется IP-адрес вашего сервера Mattermost и полное доменное имя (FQDN) вашего веб-сайта Mattermost.

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

  1. Войдите на сервер, на котором размещен NGINX, и откройте окно терминала.
  2. Установите git.

Если вы используете Ubuntu или Debian:

sudo apt-get install git

Если вы используете RHEL:

sudo yum install git

В Ubuntu 14.04 и RHEL 6:

sudo service nginx stop

В Ubuntu 18.04, RHEL 7 и RHEL 8:

sudo systemctl stop nginx

  1. Выполнить netstat , чтобы убедиться, что порт 80 ничего не прослушивает..

./letsencrypt-auto certonly --standalone

При появлении запроса введите имя вашего домена. После завершения установки вы можете найти сертификат в каталоге /etc/letsencrypt/live .

  1. Откройте файл /etc/nginx/sites-available/attermost как root в текстовом редакторе и обновите раздел server , чтобы включить выделенные строки в следующий образец. Обязательно замените на свое собственное доменное имя в 3 местах.
  1. Удалите существующий файл с поддержкой сайтов по умолчанию.

В RHEL 7: sudo rm/etc/nginx/conf.d/default

sudo ln -s/etc/nginx/sites-available/attermost/etc/nginx/sites-enabled/attermost

В RHEL 7: sudo ln -s/etc/nginx/conf.d/mattermost/etc/nginx/conf.d/default.conf

В Ubuntu 14.04 и RHEL 6:

sudo service nginx start

В Ubuntu 18. 04, RHEL 7 и RHEL 8:

sudo systemctl start nginx

  1. Убедитесь, что вы можете видеть Mattermost через прокси.
  1. Убедитесь, что ваш сертификат SSL настроен правильно.
  • Проверьте сертификат SSL, посетив такой сайт, как
  • Если есть ошибка об отсутствующей цепочке или пути сертификата, вероятно, отсутствует промежуточный сертификат, который необходимо включить.
  1. Настроить cron , чтобы сертификат автоматически обновлялся каждый месяц.

crontab -e

В следующей строке используйте собственное доменное имя вместо

@monthly/home/ubuntu/letsencrypt/letsencrypt-auto certonly --reinstall --nginx -d && sudo service nginx reload

Почему соединения Websocket возвращают ошибку 403?

Это нравится Или из-за неудачной проверки перекрестного происхождения. Для кода WebSocket применяется проверка, чтобы узнать, совпадает ли заголовок Origin с заголовком хоста. В противном случае возвращается ошибка 403. Откройте файл /etc/nginx/sites-available/attermost как root в текстовом редакторе и убедитесь, что заголовок хоста, установленный в прокси-сервере динамический:

Затем в config.json установите AllowCorsFrom , чтобы соответствовать домену, используемому клиентами. Возможно, вам потребуется добавить варианты имени хоста, которые могут отправлять клиенты. Ваш журнал NGINX поможет в диагностике проблемы.

Другие советы по поиску и устранению ошибок WebSocket см.

Как мне настроить прокси-сервер NGINX с установкой Mattermost Docker?


Установите Mattermost на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.

Шаг 2. Установка стека LEMP.

Требуется сервер Ubuntu 20.04 LEMP. Если у вас не установлен LEMP, вы можете следовать нашему руководству здесь .

Шаг 3. Установка Mattermost на Ubuntu 20.04.

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

Теперь скачиваем последнюю версию Mattermost с официального сайта:

После загрузки распакуйте архив Mattermost в корневой каталог документов на вашем сервере:

Нам нужно будет изменить права доступа к некоторым папкам:

После этого отредактируйте файл конфигурации Mattermost и определите URL вашего сайта и настройки базы данных:

Измените следующие строки в соответствии с вашими потребностями:

Шаг 4. Настройка MariaDB для Mattermost.

По умолчанию MariaDB не усилен. Вы можете защитить MariaDB с помощью mysql_secure_installation скрипта. вы должны внимательно прочитать и под каждым шагом, который установит пароль root, удалит анонимных пользователей, запретит удаленный вход root, а также удалит тестовую базу данных и доступ к безопасности MariaDB:

Настройте это так:

Затем нам нужно будет войти в консоль MariaDB и создать базу данных для Mattermost. Выполните следующую команду:

Вам будет предложено ввести пароль, поэтому введите свой корневой пароль MariaDB и нажмите Enter. После входа на сервер базы данных вам необходимо создать базу данных для установки Mattermost:

Шаг 5. Создайте служебный файл Systemd для Mattermost.

Теперь мы создаем systemd служебный файл для управления службой Mattermost. Вы можете создать его с помощью следующей команды:

Добавьте следующие строки:

Сохраните и закройте файл, затем перезагрузите systemd демон с помощью следующей команды:

Шаг 6. Настройте Nginx в качестве обратного прокси.

Теперь создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:

Добавьте следующие строки:

Сохраните и закройте файл, затем активируйте конфигурацию виртуального хоста с помощью следующей команды:

Если проверка прошла успешно, перезагрузите Nginx, чтобы изменения вступили в силу:

Шаг 8. Настройте брандмауэр.

Шаг 9. Доступ к Mattermost.

Поздравляю! Вы успешно установили Mattermost . Благодарим вас за использование этого руководства для установки Mattermost в вашей системе Ubuntu 20.04 LTS Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Mattermost .

В этом руководстве мы установим Mattermost на сервер Ubuntu 18.04 и настроим Nginx как обратный прокси-сервер SSL .

Подготовка

Прежде чем продолжить работу с этим руководством, убедитесь, что вы выполнили следующие предварительные требования:

Создать базу данных MySQL

Мы будем использовать MySQL в качестве базы данных для Mattermost. Если на вашем сервере не установлены MySQL или MariaDB, вы можете установить их, следуя этим инструкциям .

Войдите в оболочку MySQL:

Создайте новую базу данных и пользователя для нашей установки Mattermost с помощью:

Убедитесь, что вы используете более надежный пароль, чем P4ssvv0rD .

Создать нового пользователя системы

Создайте нового пользователя и группу, которые будут запускать наш экземпляр Mattermost. Назовем наиболее mattermost пользователя:

Установить сервер Mattermost

На момент написания этой статьи последней стабильной версией Mattermost была версия 5.1.0. Загрузите архив с помощью следующей команды curl :

После завершения загрузки извлеките архив и переместите его в каталог /opt

Создайте каталог для хранения файлов:

Измените владельца каталога на самого mattermost пользователя:

Откройте файл /opt/mattermost/config/config.json , установите драйвер базы данных на mysql и введите информацию о базе данных:

Чтобы убедиться, что наш экземпляр Mattermost работает должным образом, мы протестируем сервер Mattermost. Перейдите в каталог /opt/mattermost и запустите сервер с помощью следующих команд:

Если все работает нормально, сервер запустится, и результат будет выглядеть примерно так:

Теперь мы можем остановить сервер Mattermost с помощью CTRL+C и перейти к следующим шагам.

Создайте модуль Systemd

Чтобы запустить наш экземпляр Mattermost в качестве службы, мы создадим файл mattermost.service каталоге /etc/systemd/system/ .

Откройте текстовый редактор и создайте следующий файл:

Сообщите systemd, что мы создали новый файл модуля, и запустите службу Mattermost с помощью следующих команд:

Теперь мы можем проверить статус службы с помощью:

Если ошибок нет, включите автоматический запуск службы Mattermost во время загрузки:

Настройте обратный прокси с Nginx

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

Перезагрузите службу Nginx, чтобы изменения вступили в силу:

Настройка Mattermost

Откройте браузер, введите свой домен, и вы будете перенаправлены на страницу подписки.

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

Первый созданный пользователь в системе будет иметь права администратора.

На следующем этапе мастер настройки попросит вас создать новую команду.

Щелкните ссылку « Create a new team , введите свою первую команду и нажмите кнопку « Next .

На следующем этапе вам будет предложено выбрать веб-адрес вашей новой команды:

Откройте системную консоль, щелкнув свое имя пользователя в верхней части панели навигации, и в новом открывшемся меню щелкните ссылку System Console .

Установите URL-адрес сайта, перейдя в Настройки Общие → Конфигурация.

Чтобы включить уведомления по электронной почте, выберите «Уведомления» → «Электронная почта», измените значение « Enable Email Notifications с false на true и введите параметры SMTP.

Вы можете использовать любые популярные сервисы транзакционной электронной почты, такие как SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet и Postmark, или вы можете настроить свой собственный почтовый сервер, следуя этому руководству.

Наконец, нам нужно перезапустить службу Mattermost, чтобы изменения вступили в силу:

Выводы

Вы успешно установили Mattermost на свой сервер Ubuntu 18.04 и настроили Nginx в качестве обратного прокси. Теперь вы можете начать использовать Mattermost для совместной работы со своей командой.

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


Многие команды по достоинству оценили простоту и возможности открытой платформы Mattermost

Требования

    Сервер Ubuntu 20.04: как минимум 2 ГБ RAM, root доступ и учетная запись sudo. Вы можете настроить сервер, следуя этому мануалу.
Мы как раз хотели предложить Вам VPS с Ubuntu, который подойдёт для Вашего проекта всего от 4 евро в месяц!

Примечание: Чтобы SMTP-сервер Postfix работал правильно, записи PTR вашего сервера должны соответствовать your_domain. Вы можете проверить имя хоста сервера, введя hostname в командную строку. Результат покажет имя, которое вы дали своему серверу при его создании.

1: Установка Mattermost

Сначала мы должны установить Mattermost. Это включает в себя загрузку последней версии пакета, настройку взаимодействия с MariaDB и создание сервиса systemd, благодаря которому платформа будет постоянно работать в фоновом режиме.

Загрузка Mattermost

Все данные Mattermost будут храниться в папке по имени

/mattermost. Создайте такую папку:

Перейдите в нее:

Откройте официальный сайт Mattermost и скопируйте ссылку на последнюю версию. На момент написания мануала последней была 5.24.2. Загрузите ее с помощью wget:

Затем распакуйте архив:

tar -xvzf mattermost*.gz

Эта команда распакует все архивные файлы в каталоге, чьи имена начинаются с mattermost.

Вы получите папку с двоичными файлами Mattermost, имя которой будет совпадать с исходным файлом, который вы скачали. Скопируйте папку в /opt, чтобы вы могли получить к ней доступ в системе:

sudo cp -r mattermost /opt

Затем создайте папку для Mattermost, в которой будут храниться пользовательские данные:

sudo mkdir /opt/mattermost/data

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

Затем создайте пользователя и группу для Mattermost:

sudo useradd --system --user-group mattermost

Сделайте нового пользователя и его группу владельцами папки данных:

sudo chown -R mattermost:mattermost /opt/mattermost

Это нужно для того, чтобы в случае взлома ограничить злоумышленника каталогом Mattermost: так он не сможет быстро получить доступ к остальной части системы.

Теперь откройте группам право на изменение каталога /opt/mattermost:

sudo chmod -R g+w /opt/mattermost

Теперь, когда у нас есть все необходимые файлы Mattermost и установлены надежные привилегии, давайте настроим базу данных.

Настройка базы данных MariaDB для Mattermost

Откройте командную строку MariaDB:

Создайте для базы данных пользователя mmuser, выполнив следующую команду (замените your_mmuser_password сложным паролем):

CREATE USER 'mmuser'@'%' IDENTIFIED BY 'your_mmuser_password';

Затем создайте базу данных для Mattermost:

CREATE DATABASE mattermost;

Чтобы пользователь mmuser мог получить доступ к базе данных mattermost, предоставьте ему права доступа:

GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'%';

Затем перезагрузите таблицы привилегий, чтобы сразу применить изменения:

Когда вы закончите, закройте командную строку БД:

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

Откройте файл в редакторе:

sudo nano /opt/mattermost/config/config.json

Найдите строки, которые выглядят следующим образом:

Измените их, как показано ниже, заменив your_mmuser_password паролем, который вы установили для пользователя mmuser:

"DriverName": "mysql"
"DataSource": "mmuser:your_mmuser_password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

Сохраните и закройте файл.

Создание сервиса systemd для Mattermost

Чтобы Mattermost всегда работал в фоновом режиме, вам нужно запустить его как сервис systemd.

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

sudo nano /lib/systemd/system/mattermost.service

Вставьте в файл следующие строки:

[Unit] Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service
[Service] Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152
[Install] WantedBy=mysql.service

Файл начинается с описания сервиса. Затем мы объявляем, что сервис mysql должен запускаться перед сервисом Mattermost, поскольку Mattermost для работы требуется база данных. После раздела [Unit] определяется тип сервиса. Здесь благодаря значению notify процесс будет сообщать system о загрузке. Мы указываем команду, которая будет выполняться, и устанавливаем политику перезапуска always. Также здесь определяется рабочий каталог процесса и указывается, от имени какого пользователя и группы он должен работать.

В разделе [Install] в качестве значения параметра WantedBy нужно указать сервис базы данных, чтобы обеспечить перезапуск Mattermost вместе с БД. Пропуск этого параметра может вызвать проблемы при автоматическом обновлении базы данных – Mattermost может перестать работать без перезапуска.

Сохраните и закройте файл, а затем перезагрузите все сервисы, выполнив следующую команду:

sudo systemctl daemon-reload

Убедитесь, что сервис mattermost загружен правильно:

sudo systemctl status mattermost

Вы увидите следующий результат:

mattermost.service - Mattermost
Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
Active: inactive (dead)

Если systemd выдает ошибку, проверьте имя файла сервиса, его расположение и содержимое.

Затем включите сервис Mattermost:

sudo systemctl enable mattermost

Мы установили Mattermost, настроили его для поддержки базы данных MariaDB и создали для него сервис systemd. Идем дальше.

2: Размещение Mattermost на домене

Теперь мы настроим Nginx как обратный прокси-сервер для Mattermost.

Перед настройкой Nginx необходимо указать свой домен в главном конфигурационном файле Mattermost. Откройте его для редактирования:

sudo nano /opt/mattermost/config/config.json

Найдите строку, которая выглядит следующим образом:

Вставьте в кавычки имя вашего домена:

Сохраните и закройте файл.

Как вы уже знаете, конфигурационные файлы сайта Nginx хранит в /etc/nginx/sites-available; позже их нужно связать символической ссылкой с каталогом /etc/nginx/sites-enabled, чтобы активировать.

Хранить конфигурацию размещения Mattermost на вашем домене мы будем в файле mattermost.conf в каталоге /etc/nginx/sites-available. Создайте его в своем редакторе:

sudo nano /etc/nginx/sites-available/mattermost.conf

Добавьте такие строки:

upstream backend 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.your_domain;
location

Замените mattermost.your-domain вашим настоящим доменом, а затем сохраните и закройте файл.

Чтобы включить эту конфигурацию сайта, нужно создать симлинк на нее в папке /etc/nginx/sites-enabled, запустив:

sudo ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf

Чтобы проверить правильность конфигурации, выполните следующую команду:

Если в настройках нет ошибок или опечаток, вы увидите следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Чтобы конфигурация вступила в силу, необходимо перезапустить Nginx:

sudo systemctl restart nginx

Затем запустите сервис Mattermost:

sudo systemctl start mattermost

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

3: Защита домена

В этом разделе вы защитите свой домен с помощью TLS сертификата Let’s Encrypt, который можно получить с помощью клиента Certbot.

Certbot должен быть уже установлен (если вы выполнили все предварительные требования к мануалу), нам осталось только установить его плагин Nginx:

sudo apt install python3-certbot-nginx

Результат будет выглядеть так:

Rule added
Rule added (v6)

Теперь необходимо перезагрузить брандмауэр, чтобы конфигурация вступила в силу:

sudo ufw reload

Команда выведет на экран:

Чтобы запросить сертификаты для вашего домена, выполните следующую команду:

sudo certbot --nginx -d mattermost.your-domain

Рекомендуем выбрать второй вариант, чтобы сайт был доступен только по зашифрованным соединениям.

Вы получите такой вывод:

Это означает, что Certbot успешно сгенерировал сертификаты TLS и применил их к конфигурации Nginx вашего домена.

sudo nano /opt/mattermost/config/config.json

Снова найдите строку, которая выглядит так:

Это все, что вам нужно отредактировать, сохраните и закройте файл.

Теперь вы можете перезагрузить домен Mattermost в браузере: после этого вы должны увидеть зеленый замочек слева от адреса сайта, что означает, что вы защитили ваши соединения.

Теперь, когда ваши сертификаты TLS успешно настроены и домен доступен по зашифрованным соединениям, мы можем приступать к настройке Mattermost.

4: Настройка Mattermost

В этом разделе мы создадим команду в Mattermost, настроим уведомления по электронной почте и изменим брендинг сервера.

Чтобы изменить это, выберите Create a team. Вы увидите страницу, которая предложит назвать эту команду (например, bestteam).

Вы можете оставить URL без изменений. Когда вы закончите, нажмите Finish. Mattermost создаст вашу команду. После того, как вы пропустите справку, вы увидите основной интерфейс, в котором вы будете проводить большую часть времени при переписке.

Интерфейс мы рассмотрим подробно чуть позже. Чтобы получить доступ к настройкам, кликните на имя пользователя в верхнем левом углу, а затем нажмите System Console. Вы сможете получить доступ к этой опции, только если вы являетесь администратором.

Слева находится меню, обеспечивающее доступ к разделам конфигурации Mattermost. Сначала мы настроим уведомления по электронной почте, поэтому выберите параметр SMTP, который можно найти в разделе Environment.

No errors were reported while sending an email. Please check your inbox to make sure.

Теперь вы можете при желании изменить брендинг сервера, выбрав Site Configuration → Customization. Здесь вы можете установить имя и описание сайта (Site Name и Site Description), а также загрузить лого бренда и текст.

Вы можете выйти из System Console, кликнув на имя пользователя в верхнем левом углу и выбрав первую опцию в раскрывающемся меню.

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

Заключение

Mattermost не поддерживает видео- и аудиовстреч. Чтобы настроить видеоконференцсвязь, ознакомьтесь с мануалом по установке Jitsi Meet (это приложение с открытым исходным кодом, которое предоставляет зашифрованные конференц-залы для нескольких человек).

Если вы хотите узнать больше о Mattermost, читайте официальную документацию.

Читайте также: