Установка Mattermost · 9 min read · Oct 12, 2025

Как установить систему командного обмена сообщениями Mattermost на Ubuntu 20.04

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

В этом руководстве мы покажем вам, как установить Mattermost с Nginx и SSL Let’s Encrypt на Ubuntu 20.04.

Предварительные требования

  • Сервер с установленной Ubuntu 20.04.
  • Действительное доменное имя, указывающее на IP-адрес вашего сервера.
  • Настроенный root-пароль на сервере.

Начало работы

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

apt-get update -y

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

apt-get install curl wget vim git unzip gnupg2 -y

После установки всех необходимых пакетов вы можете перейти к следующему шагу.

Установка и настройка MariaDB

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

apt-get install mariadb-server -y

После установки сервера MariaDB войдите в MariaDB с помощью следующей команды:

mysql

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

MariaDB [(none)]> CREATE DATABASE mattermostdb;  
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'password';

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

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'%';

Затем сбросьте привилегии и выйдите из оболочки MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> EXIT;

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

Установка и настройка Mattermost

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

wget https://releases.mattermost.com/5.24.2/mattermost-5.24.2-linux-amd64.tar.gz

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

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

Затем скопируйте извлеченную директорию в /opt:

cp -r mattermost /opt

Затем создайте директорию данных для Mattermost:

mkdir /opt/mattermost/data

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

useradd --system --user-group mattermost

Затем измените владельца директории mattermost на mattermost и дайте соответствующие разрешения с помощью следующей команды:

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

Затем отредактируйте файл конфигурации по умолчанию Mattermost и определите настройки вашей базы данных и URL сайта.

nano /opt/mattermost/config/config.json

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

    "SiteURL": "https://mattermost.linuxbuz.com",

    "DriverName": "mysql",
    "DataSource": "mattermost:password@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Сохраните и закройте файл, когда закончите.

Создание файла службы Systemd для Mattermost

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

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=mariadb.service

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

systemctl daemon-reload

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

systemctl start mattermost  
systemctl enable mattermost

Затем проверьте статус службы Mattermost с помощью следующей команды:

systemctl status mattermost

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

? mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 09:12:52 UTC; 17s ago
   Main PID: 4106 (mattermost)
      Tasks: 20 (limit: 2353)
     Memory: 85.9M
     CGroup: /system.slice/mattermost.service
             ??4106 /opt/mattermost/bin/mattermost
             ??4198 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Sent notification of ne>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Starting workers"}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Starting schedule>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Starting websocket hubs>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"License key from http>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Starting Server..."}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Server is listening o>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Sending systemd >
Aug 01 09:12:52 ubuntu2004 systemd[1]: Started Mattermost.

На этом этапе Mattermost работает и слушает на порту 8065.

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

Затем вам нужно будет настроить Nginx как обратный прокси для Mattermost. Сначала установите пакет Nginx с помощью следующей команды:

apt-get install nginx -y

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

nano /etc/nginx/sites-available/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.linuxbuz.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;
   }
}

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

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

Затем проверьте Nginx на наличие ошибок конфигурации:

ginx -t

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

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

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

systemctl restart nginx

Защита Mattermost с помощью SSL Let’s Encrypt

Сначала вам нужно будет установить клиент Certbot в вашей системе для управления SSL Let’s Encrypt. Вы можете установить его с помощью следующей команды:

apt-get install python3-certbot-nginx -y

После установки Certbot выполните следующую команду, чтобы установить SSL Let’s Encrypt для вашего веб-сайта.

certbot --nginx -d mattermost.linuxbuz.com

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

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mattermost.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/mattermost.conf

Затем выберите, хотите ли вы перенаправить HTTP-трафик на HTTPS:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Введите 2 и нажмите Enter, чтобы установить SSL Let’s Encrypt на ваш домен. После установки вы должны увидеть следующий вывод:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/mattermost.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mattermost.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mattermost.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

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

Теперь откройте ваш веб-браузер и введите URL https://mattermost.linuxbuz.com. Вы будете перенаправлены на экран регистрации Mattermost:

Вход в Mattermost

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

Командное взаимодействие Mattermost

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

Имя команды

Укажите имя вашей команды и нажмите кнопку Далее. Вы должны увидеть следующий экран:

URL команды

Укажите URL вашей команды и нажмите кнопку Завершить. Вы должны увидеть экран приветствия Mattermost:

Панель управления Mattermost

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

Чат Mattermost

Заключение

В этом руководстве вы узнали, как установить приложение для обмена сообщениями Mattermost на сервере Ubuntu 20.04. Вы также узнали, как настроить Nginx как обратный прокси и защитить его с помощью SSL Let’s Encrypt. Теперь вы можете исследовать услуги Mattermost и работать вместе со своей командой.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.