Cómo instalar el sistema Mattermost Team Messaging en Debian 10

Cómo instalar el sistema Mattermost Team Messaging en Debian 10

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

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

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

requisitos previos

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

¿Qué vamos a hacer?

  • Instalar servidor MySQL
  • Crear una base de datos MySQL para Mattermost
  • Agregar usuarios del sistema y descargar Mattermost
  • La configuración es lo más importante.
  • Establecer Mattermost como un servicio del sistema
  • Generar SSL Letsencrypt
  • Instale Nginx y configúrelo como un proxy inverso
  • pruebas

Paso 1: instalar la base de datos MySQL

Primero, instalamos MySQL Server 8.0 desde el repositorio oficial al servidor Debian. Sp, agregaremos el repositorio oficial de MySQL e instalaremos el paquete de software MySQL.

Utilice el siguiente comando apt para instalar la herramienta 'gnupg2' en el servidor Debian.

sudo apt install curl wget gnupg2

Use el siguiente comando para descargar y agregar el repositorio MySQL del sistema Debian.

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

Ahora actualice todos los repositorios de Debian e instale el paquete MySQL Server.

sudo apt updatesudo apt install mysql-server -y

Durante la instalación de MySQL Server, el sistema le pedirá que configure la contraseña de root del servidor MySQL.

Ingrese la contraseña raíz de MySQL y luego repítala.

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

systemctl start mysqlsystemctl enable mysql

Como resultado, el servidor MySQL ahora está instalado en Debian Buster 10. Y se configuró la contraseña raíz del servidor MySQL.

Start MySQL

Paso 2-Crea la base de datos MySQL más importante

De forma predeterminada, Mattermost admite dos controladores de bases de datos, a saber, las bases de datos PostgreSQL y MySQL. En este tutorial, utilizaremos 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 muestra 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 salir de MySQL Shell.

Create the most important database

Como resultado, se han creado la base de datos MySQL y los usuarios para la instalación de Mattermost.

Paso 3-Añadir usuarios 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” y se instalará en el directorio “/opt/mattermost”.

Use el siguiente comando para crear un nuevo usuario del sistema llamado 'mattermost'.

useradd --system --user-group mattermost

Ahora vaya al directorio "/opt" y descargue el código fuente de Mattermost usando el siguiente comando curl.

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.gzmkdir -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/mattermostchmod -R g+w /opt/mattermost

Como resultado, se creó el usuario "más importante" y se descargó el código fuente "más importante" en el directorio "/opt/mattermost".

Add Linux users to Mattermost

Paso 4-Configura el contenido más importante

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

Vaya al directorio "/opt/mattermost" y luego 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",

A "SqlSettings", cambie DriverName a "mysql", y use la base de datos MySQL y el usuario que creamos para cambiar "DataSource".

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

Guardar y cerrar.

Luego, use el siguiente comando para inicializar la instalación de Mattermost.

sudo -u mattermost ./bin/mattermost

Estos son los resultados que obtendrá.

Configuration is the most important

Como resultado, Mattermost se inició y ejecutó 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: configura Mattermost como un servicio

En este paso, configuramos Mattermost como el servicio systemd, y se ejecutará automáticamente cuando el sistema se inicie después de que se ejecute el servicio de base de datos MySQL.

Ahora ve al directorio “/lib/systemd/system” y crea un nuevo archivo de servicio “mattermost.service”.

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

Ahora pegue la siguiente configuración en él.

[Unit]Description=MattermostAfter=network.targetAfter=mysql.serviceRequires=mysql.service[Service]Type=notifyExecStart=/opt/mattermost/bin/mattermostTimeoutStartSec=3600Restart=alwaysRestartSec=10WorkingDirectory=/opt/mattermostUser=mattermostGroup=mattermostLimitNOFILE=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 mattermostsystemctl enable mattermost

Create system unit file

El servicio de Mattermost está en funcionamiento, consulte con el siguiente comando.

systemctl status mattermost

Estos son los resultados que obtendrá.

Check service status

Como resultado, el servicio Mattermost ha estado funcionando en el sistema Debian y se ejecutará automáticamente cuando se inicie el sistema.

Paso 6: instale Certbot Letsencrypt

En este paso, instalaremos la herramienta certbot y generaremos SSL Letsencrypt. Usaremos el SSL de Letsencrypt para proteger la instalación de Mattermost.

Utilice el siguiente comando apt para instalar la herramienta certbot.

sudo apt install certbot

Una vez completada la instalación, utilice el siguiente comando certbot para generar SSL letencrypt.

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

Como resultado, su certificado SSL se generará en el directorio "/etc/letsencrypt/live/mattermost-hakase-labs.io".

Paso 7: instale y configure Nginx como proxy inverso

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

Use el siguiente comando apt para instalar Nginx.

sudo apt install nginx -y

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

anuncio

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 la ruta del nombre de dominio y el certificado SSL usted mismo y 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 https://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 https://backend;   }}

Guardar y cerrar.

A continuación, cree un directorio de caché de Nginx y cambie la propiedad del directorio al usuario predeterminado "www-data".

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

Después de eso, active el host virtual de Mattermost, luego pruebe la configuración de nginx y asegúrese de que no haya errores.

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

Ahora, use el siguiente comando systemctl para reiniciar el servicio Nginx.

systemctl restart nginx

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

Configure Nginx

Paso 8-prueba

Abra su navegador web e ingrese el nombre de dominio de su URL de instalación de Mattermost en la barra de direcciones. El mio es:

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

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

Mattermost Web installer

Escriba su nombre de usuario, correo electrónico y contraseña para obtener más detalles, y luego haga clic en el botón "Crear cuenta".

Crea un nuevo primer equipo en Mattermost.

build up a team

Ingrese el nombre de su primer equipo y haga clic en "Siguiente".

Set team name

La URL del equipo será el nombre del equipo, haga clic en "Finalizar" para continuar.

Team URL

Te unirás automáticamente a los canales predeterminados "Off-Topic" y "Town Square".

The most important dashboard

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.

Fuente