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

Как установить Mattermost на Debian 11


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

  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

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

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

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

В этом руководстве мы покажем вам, как установить чат-сервер Mattermost на Debian 11.

Предпосылки

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

Установите и настройте сервер базы данных MariaDB

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

apt-get install mariadb-server -y

После установки MariaDB запустите службу MariaDB и включите ее запуск при перезагрузке системы:

systemctl start mariadb
systemctl enable mariadb

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

mysql

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

MariaDB [(none)]> create database mattermost;
MariaDB [(none)]> create user identified by 'password';

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

MariaDB [(none)]> grant all privileges on mattermost.* to ;

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

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

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

Установить Маттермост

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

useradd --system --user-group mattermost

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

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

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

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

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

mv mattermost /opt

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

mkdir /opt/mattermost/data

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

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

Затем отредактируйте файл config.json с помощью следующей команды:

nano /opt/mattermost/config/config.json

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

    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:/mattermost_test?sslmode=disable&connect_timeout=10",

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

"DriverName": "mysql",
"DataSource": "mattermost:(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

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

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

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

nano /etc/systemd/system/mattermost.service

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

[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

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

systemctl daemon-reload

Затем запустите Mattermost и включите его запуск при перезагрузке системы:

systemctl start mattermost
systemctl enable mattermost

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

systemctl status mattermost

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

? mattermost.service - Mattermost
     Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 13:56:25 UTC; 4s ago
   Main PID: 2888 (mattermost)
      Tasks: 31 (limit: 4679)
     Memory: 273.3M
        CPU: 12.191s
     CGroup: /system.slice/mattermost.service
             ??2888 /opt/mattermost/bin/mattermost
             ??2915 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
             ??2925 plugins/playbooks/server/dist/plugin-linux-amd64
             ??2931 plugins/focalboard/server/dist/plugin-linux-amd64

Nov 12 13:56:24 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:24.681 Z","level":"info","msg":"Scheduling next survey for Dec 3, 2>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.064 Z","level":"info","msg":"Post.Message has size restrictions">
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.084 Z","level":"info","msg":"info [2021-11-12 13:56:25.083 Z] co>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.131 Z","level":"info","msg":"\n    -- collation of mattermost's >
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.491 Z","level":"info","msg":"debug [2021-11-12 13:56:25.488 Z] i>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.777 Z","level":"info","msg":"info [2021-11-12 13:56:25.777 Z] Se>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.963 Z","level":"info","msg":"Starting Server...","caller":"app/s>
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.964 Z","level":"info","msg":"Server is listening on [::]:8065",">
Nov 12 13:56:25 debian11 mattermost[2888]: {"timestamp":"2021-11-12 13:56:25.964 Z","level":"info","msg":"Sending systemd READY notification.>
Nov 12 13:56:25 debian11 systemd[1]: Started Mattermost.

Настройте Nginx в качестве обратного прокси-сервера для Mattermost

По умолчанию Mattermost прослушивает порт 8065. Поэтому рекомендуется установить и настроить Nginx в качестве обратного прокси-сервера для доступа к Mattermost через порт 80. Сначала установите Nginx с помощью следующей команды:

apt-get install nginx -y

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

nano /etc/nginx/conf.d/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.example.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;
   }
}

Сохраните и закройте файл, затем проверьте конфигурацию 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 start nginx

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

systemctl status nginx

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

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-11-12 13:57:02 UTC; 1min 12s ago
       Docs: man:nginx(8)
    Process: 3384 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3392 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3602 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 6.6M
        CPU: 55ms
     CGroup: /system.slice/nginx.service
             ??3602 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??3604 nginx: worker process
             ??3605 nginx: worker process

Nov 12 13:57:01 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 12 13:57:02 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Nov 12 13:57:02 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

На данный момент Nginx установлен и настроен как обратный прокси для Mattermost. Теперь вы можете перейти к следующему шагу.

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

Теперь откройте веб-браузер и войдите в веб-интерфейс Mattermost, используя URL-адрес http://mattermost.example.com. Вы будете перенаправлены на следующую страницу:

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

Теперь нажмите «Перейти к системной консоли». Вы будете перенаправлены на панель инструментов Mattermost, как показано ниже:

Заключение

Поздравляем! вы успешно установили Mattermost с Nginx в качестве обратного прокси-сервера в Debian 11. Теперь вы можете внедрить Mattermost в своей организации и позволить командам общаться друг с другом из любого места.