Поиск по сайту:

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


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установка и настройка MariaDB
  4. Установка и настройка Mattermost
  5. Создание служебного файла Systemd для Mattermost
  6. Настройка Nginx в качестве обратного прокси-сервера
  7. Защитите Mattermost с помощью Lets Encrypt SSL
  8. Доступ к веб-интерфейсу Mattermost
  9. Заключение

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

В этом руководстве мы покажем вам, как установить Mattermost с Nginx и Lets Encrypt SSL в 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

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

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:(localhost:3306)/mattermostdb?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=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 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Sent notification of ne>
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Starting workers"}
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Starting schedule>
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Starting websocket hubs>
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"License key from http>
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Starting Server..."}
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Server is listening o>
Aug 01 09:12:52 ubunt4 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Sending systemd >
Aug 01 09:12:52 ubunt4 systemd[1]: Started Mattermost.

На данный момент Mattermost работает и прослушивает порт 8065.

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

Далее вам нужно будет настроить Nginxx в качестве обратного прокси-сервера для 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 на наличие ошибок конфигурации:

nginx -t

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

nginx: 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 с помощью Lets Encrypt SSL

Во-первых, вам нужно будет установить клиент Certbot в вашей системе для управления Lets Encrypt SSL. Вы можете установить его с помощью следующей команды:

apt-get install python3-certbot-nginx -y

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

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): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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, чтобы установить Lets Encrypt SSL на свой домен. После установки вы должны увидеть следующий вывод:

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 Team Messaging на сервер Ubuntu 20.04. Вы также узнали, как настроить Nginx в качестве обратного прокси-сервера и защитить его с помощью Lets Encrypt SSL. Теперь вы можете изучить услуги Mattermost и работать вместе со своей командой.