Установка 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:

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

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

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

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

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

Заключение
В этом руководстве вы узнали, как установить приложение для обмена сообщениями Mattermost на сервере Ubuntu 20.04. Вы также узнали, как настроить Nginx как обратный прокси и защитить его с помощью SSL Let’s Encrypt. Теперь вы можете исследовать услуги Mattermost и работать вместе со своей командой.
Get new posts in your inbox
No spam. Unsubscribe anytime.