ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как развернуть Mattermost на Ubuntu 18.04

Как развернуть Mattermost на Ubuntu 18.04

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

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

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

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

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

mysql -u root

 

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

CREATE DATABASE mattermost;
GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';

 

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

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

sudo useradd -U -M -d /opt/mattermost mattermost

 

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

sudo curl -L https://releases.mattermost.com/5.1.0/mattermost-5.1.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

 

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

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

 

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

sudo mkdir -p /opt/mattermost/data

 

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

sudo chown -R mattermost: /opt/mattermost

 

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

/opt/mattermost/config/config.json
"SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

 

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

cd /opt/mattermost
sudo -u mattermost bin/mattermost

 

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

{"level":"info","ts":1532546921.941638,"caller":"app/server.go:115","msg":"Starting Server..."}
{"level":"info","ts":1532546921.9421031,"caller":"app/server.go:154","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1532546921.9541554,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}

 

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

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

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

/etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=mysql.service

 

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

sudo systemctl daemon-reload
sudo systemctl start mattermost

 

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

sudo systemctl status mattermost

 

● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; ven
   Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago
 Main PID: 3091 (mattermost)
    Tasks: 18 (limit: 507)
   CGroup: /system.slice/mattermost.service
           ├─3091 /opt/mattermost/bin/mattermost

 

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

sudo systemctl enable mattermost

 

Если вы следовали за установкой Nginx на Ubuntu 18.04 и  в руководстве как защитить Nginx с помощью Let’s Encrypt на Ubuntu 18.04, вы должны уже установить и настроить Nginx с сертификатом SSL.

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

/etc/nginx/conf.d/andreyex-example.ru.conf
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

upstream mattermost_backend {
  server 127.0.0.1:8065;
}

server {
    listen 80;
    server_name andreyex-example.ru www.andreyex-example.ru;

    include snippets/letsencrypt.conf;
    return 301 https://andreyex-example.ru$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.andreyex-example.ru;

    ssl_certificate /etc/letsencrypt/live/andreyex-example.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/andreyex-example.ru/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/andreyex-example.ru/chain.pem;
    include snippets/ssl.conf;

    return 301 https://andreyex-example.ru$request_uri;
}

server {
    listen 443 ssl http2;
    server_name andreyex-example.ru;

    ssl_certificate /etc/letsencrypt/live/andreyex-example.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/andreyex-example.ru/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/andreyex-example.ru/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/andreyex-example.ru-access.log;
    error_log /var/log/nginx/andreyex-example.ru-error.log;

    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;
       proxy_read_timeout 600s;
       proxy_pass http://mattermost_backend;
    }

    location / {
       proxy_http_version 1.1;
       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://mattermost_backend;
    }
}

 

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

sudo systemctl reload nginx

 

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

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

Как развернуть Mattermost на Ubuntu 18.04

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

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

Как развернуть Mattermost на Ubuntu 18.04

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

Как развернуть Mattermost на Ubuntu 18.04

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

Как развернуть Mattermost на Ubuntu 18.04

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

Как развернуть Mattermost на Ubuntu 18.04

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

Задайте URL-адрес сайта, выбрав «Общие настройки» → «Конфигурация».

Как развернуть Mattermost на Ubuntu 18.04

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

Как развернуть Mattermost на Ubuntu 18.04

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

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

sudo systemctl restart mattermost

 

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

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

 

Exit mobile version