GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar el sistema de mensajería del equipo de Mattermost en Debian 10

Mattermost es un sistema de mensajería de código abierto escrito en los lenguajes de programación Golang y React. Es una alternativa de slack, podemos usarla para crear nuestro propio servicio de mensajería como slack o hipchat.

Mattermost lleva la comunicación de su equipo a un solo lugar y la hace accesible desde cualquier lugar. Puede acceder desde su escritorio, dispositivo Android y iPhone.

En este tutorial, le mostraremos cómo instalar Mattermost en Debian Buster 10. Instalaremos Mattermost con el servidor de base de datos MySQL, el servidor web Nginx y ejecutaremos Mattermost como un servicio Systemd en la última versión de Debian Buster 10.

Requisito previo

Para este tutorial, probaremos la instalación de Mattermost en Debian 10 con 2 GB de RAM, 25 de espacio libre en disco y 2 CPU.

¿Qué haremos?

  • Instalar servidor MySQL
  • Crear base de datos MySQL para Mattermost
  • Agregar usuario del sistema y descargar Mattermost
  • Configurar Mattermost
  • Configurar Mattermost como un servicio de Systemd
  • Generar SSL Letsencrypt
  • Instalar y configurar Nginx como proxy inverso
  • Pruebas

Paso 1:instalar la base de datos MySQL

Primero, instalaremos MySQL Server 8.0 desde el repositorio oficial a nuestro servidor Debian. Sp, agregaremos el repositorio oficial de MySQL e instalaremos los paquetes de MySQL.

Instale la herramienta 'gnupg2' en el servidor Debian utilizando el siguiente comando apt.

sudo apt install curl wget gnupg2

Descargue y agregue el repositorio MySQL para el sistema Debian usando el siguiente comando.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb

Ahora actualice todos los repositorios de Debian e instale los paquetes del servidor MySQL.

sudo apt update
sudo apt install mysql-server -y

Durante la instalación del servidor MySQL, se le pedirá que configure la contraseña de root para su servidor MySQL.

Escriba su contraseña de root para MySQL y repítala.

Una vez completada la instalación, inicie el servicio MySQL y agréguelo a

systemctl start mysql
systemctl enable mysql

Como resultado, MySQL Server ahora está instalado en Debian Buster 10. Y se ha configurado la contraseña raíz para MySQL Server.

Paso 2:crear una base de datos MySQL para Mattermost

De forma predeterminada, Mattermost admite dos controladores de base de datos, las bases de datos PostgreSQL y MySQL. Y para este tutorial, usaremos MySQL como base de datos predeterminada para Mattermost.

En este paso, crearemos una nueva base de datos y un nuevo usuario para la instalación de Mattermost.

Inicie sesión en el shell de MySQL con su usuario raíz y contraseña como se indica a continuación.

mysql -u root -p

Ahora cree una nueva base de datos y un nuevo usuario para Mattermost. Crearemos una nueva base de datos 'mattermost' con el usuario 'mmuser' y la contraseña 'mmuser-password'.

create database mattermost;
create user [email protected] identified by 'mmuser-password';
grant all privileges on mattermost.* to [email protected];
flush privileges;

Ahora escriba 'salir' para cerrar sesión en el shell de MySQL.

Y como resultado, se ha creado la base de datos MySQL y el usuario para la instalación de Mattermost.

Paso 3:agregar usuario y descargar Mattermost

En este paso, crearemos un nuevo usuario del sistema y descargaremos el código fuente de Mattermost. El software Mattermost se ejecutará bajo el nombre de usuario 'mattermost', se instalará en el directorio '/opt/mattermost'.

Cree un nuevo usuario del sistema llamado 'mattermost' usando el siguiente comando.

useradd --system --user-group mattermost

Ahora vaya al directorio '/opt' y descargue el código fuente de Mattermost usando el comando curl a continuación.

cd /opt/
curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz

Extraiga el código fuente de Mattermost y cree un nuevo directorio de 'datos'.

tar -xf mattermost.tar.gz
mkdir -p /opt/mattermost/data

Después de eso, cambie la propiedad del directorio '/opt/mattermost' al usuario 'mattermost' y haga que se pueda escribir.

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

Como resultado, se creó el usuario 'mattermost' y se descargó el código fuente de Mattermost en el directorio '/opt/mattermost'.

Paso 4:configurar Mattermost

En este paso, configuraremos la dirección de escucha y la base de datos de Mattermost. El servicio de Mattermost se ejecutará en la dirección IP local en el puerto predeterminado 8065 y usará MySQL como sistema de base de datos.

Vaya al directorio '/opt/mattermost' y edite el archivo de configuración 'config.json' en el directorio 'config'.

cd /opt/mattermost/
vim config/config.json

En la opción 'ListenAddress', cambie la dirección IP a '127.0.0.1'.

    "ListenAddress": "127.0.0.1:8065",

Uno 'SqlSettings', cambie DriverName a 'mysql' y cambie 'DataSource' con la base de datos MySQL y el usuario que hemos creado.

  "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "dbuser:[email protected](localhost:3306)/dbname?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",    

Guardar y cerrar.

Luego, inicialice la instalación de Mattermost usando el siguiente comando.

sudo -u mattermost ./bin/mattermost

A continuación se muestra el resultado que obtendrá.

Como resultado, Mattermost está funcionando en la dirección IP local '127.0.0.1' con el puerto '8065', ahora presione el botón 'Ctrl+c' para salir.

Paso 5:configurar Mattermost como servicio

En este paso, configuraremos Mattermost como un servicio systemd, y se ejecutará automáticamente en el arranque del sistema después de que se ejecute el servicio de base de datos MySQL.

Ahora vaya al directorio '/lib/systemd/system' y cree un nuevo archivo de servicio 'mattermost.service'.

cd /lib/systemd/system/
vim mattermost.service

Ahora pegue la siguiente configuración en él.

[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=multi-user.target

Guardar y cerrar.

A continuación, vuelva a cargar systemd manager en el sistema Debian.

systemctl daemon-reload

Después de eso, inicie el servicio Mattermost y agréguelo al inicio del sistema.

systemctl start mattermost
systemctl enable mattermost

El servicio Mattermost está en funcionamiento, verifíquelo con el siguiente comando.

systemctl status mattermost

A continuación se muestra el resultado que obtendrá.

Como resultado, el servicio de Mattermost está funcionando en el sistema Debian y se ejecutará automáticamente al arrancar el sistema.

Paso 6:instalar Certbot Letsencrypt

En este paso, instalaremos la herramienta certbot y generaremos el SSL Letsencrypt. Aseguraremos la instalación de Mattermost usando el SSL de Letsencrypt.

Instale la herramienta certbot usando el comando apt a continuación.

sudo apt install certbot

Una vez que se complete la instalación, genere el SSL letsencrypt usando el comando certbot a continuación.

certbot certonly --standalone --agree-tos -m [email protected] -d mattermost.hakase-labs.io

Como resultado, sus certificados SSL se generarán en el directorio '/etc/letsencrypt/live/mattermost-hakase-labs.io'.

Paso 7:instalar y configurar Nginx como proxy inverso

En este paso, instalaremos el servidor web Nginx y lo configuraremos como proxy inverso para el servicio Mattermost.

Instale Nginx usando el comando apt a continuación.

sudo apt install nginx -y

Una vez completada la instalación, inicie el servicio Nginx y agréguelo al inicio del sistema.

systemctl start nginx 
systemctl enable nginx

El servidor web Nginx está en funcionamiento.

A continuación, vaya al directorio de configuración '/etc/nginx' y cree una nueva configuración de host virtual.

cd /etc/nginx/
vim sites-available/mattermost

Cambie el nombre de dominio y la ruta de los certificados SSL por los suyos propios, luego pegue la configuración en él.

upstream backend {
   server 127.0.0.1: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    edu.initrc.fun;
   return         301 https://$server_name$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name    edu.initrc.fun

    ssl on;
    ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem;
    ssl_session_timeout 1d;
    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;
    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

   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://backend;
   }

   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://backend;
   }
}

Guardar y cerrar.

A continuación, cree el directorio de caché de Nginx y cambie la propiedad de ese directorio al usuario predeterminado 'www-data'.

mkdir -p /var/cache/nginx
chown -R www-data:www-data /var/cache/nginx

Después de eso, active Mattermost virtualhost, luego pruebe la configuración de nginx y asegúrese de que no haya ningún error.

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
nginx -t

Ahora reinicie el servicio Nginx usando el siguiente comando systemctl.

systemctl restart nginx

Como resultado, se completó la instalación y configuración de Nginx como proxy inverso para Mattermost. Y estamos listos para probar la instalación de Mattermost.

Paso 8 - Prueba

Abra su navegador web y escriba el nombre de dominio de su URL de instalación de Mattermost en la barra de direcciones. El mío es:

https://mattermost.hakase-labs.io/

Ahora necesita crear una nueva primera cuenta de Mattermost, este será el administrador de Mattermost.

Escriba los detalles de su nombre de usuario, correo electrónico y contraseña y haga clic en el botón "Crear cuenta".

Crea un nuevo primer equipo en Mattermost.

Escriba el nombre de su primer equipo y haga clic en 'Siguiente'.

Y la URL del equipo será el nombre del equipo, haga clic en 'Finalizar' para continuar.

Y te unirás automáticamente al canal predeterminado "Off-Topic" y "Town Square".

Como resultado, la instalación de Mattermost en Debian Buster 10 con la base de datos MySQL y el servidor web Nginx se completó con éxito.


Debian
  1. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  2. Cómo instalar Gradle en Debian 10

  3. Cómo instalar AnyDesk en Debian 10

  4. Cómo instalar el servidor MySQL en Debian 9

  5. Cómo instalar MySQL Workbench en Debian 10

Cómo instalar MySQL 8 en Debian 10

Cómo instalar PostgreSQL 14 en Debian 11

Cómo instalar LAMP (Apache, MySQL, PHP) en Debian 10

Cómo instalar webmin en Debian 11

Cómo instalar Mattermost en Debian 11

Cómo instalar Mattermost en Debian 11