C贸mo instalar Mattermost en Alma Linux 8

Formulario de inicio de sesi贸n de Mattermost

Mattermost es una plataforma gratuita, de c贸digo abierto y segura para la comunicaci贸n, la colaboraci贸n y la organizaci贸n del flujo de trabajo entre herramientas y equipos. Es un servicio de chat autohospedado dise帽ado para que organizaciones y empresas implementen un servicio de chat interno. Ofrece varias caracter铆sticas 煤tiles que incluyen mensajer铆a uno a uno, historial de b煤squeda ilimitado, uso compartido de archivos, autenticaci贸n de dos factores, notificaciones y m谩s. Si est谩 buscando una soluci贸n alternativa para Slack, Mattermost es la mejor opci贸n para usted.

En este tutorial, le mostraremos c贸mo instalar Mattermost con Nginx en Alma Linux 8.

Requisitos previos

  • Un servidor que ejecuta Alma Linux 8.
  • Un nombre de dominio v谩lido apuntado con la IP de su servidor.
  • Una contrase帽a de root est谩 configurada en el servidor.

Instalar servidor MySQL

Mattermost utiliza MySQL como base de datos. As铆 que MySQL debe estar instalado en su servidor. Puede instalarlo ejecutando el siguiente comando:

dnf install mysql-server -y

Una vez que el servidor MySQL est茅 instalado, inicie y habilite el servicio MySQL con el siguiente comando:

systemctl start mysqld
systemctl enable mysqld

Ahora, puede proteger la instalaci贸n de MySQL ejecutando el siguiente script:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuaci贸n para establecer la contrase帽a de root de MySQL y asegurar la instalaci贸n:

Press y|Y for Yes, any other key for No: N
Please set the password for root here.
New password: 
Re-enter new password: 
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Crear una base de datos para Mattermost

A continuaci贸n, deber谩 crear una base de datos y un usuario para Mattermost. Primero, inicie sesi贸n en MySQL con el siguiente comando:

mysql -u root -p

Una vez que haya iniciado sesi贸n, cree una base de datos y un usuario con el siguiente comando:

mysql> CREATE DATABASE matterdb;
mysql> CREATE USER 'matteruser'@'localhost' IDENTIFIED BY 'password';

A continuaci贸n, otorgue todos los privilegios a la base de datos de Mattermost:

mysql> GRANT ALL PRIVILEGES ON matterdb.* TO [email聽protected];

A continuaci贸n, elimine los privilegios y salga de MySQL con el siguiente comando:

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar Mattermost en Alma Linux 8

Primero, cree un usuario dedicado para ejecutar Mattermost usando el siguiente comando:

useradd --system --user-group mattermost

A continuaci贸n, descargue la 煤ltima versi贸n de Mattermost usando el siguiente comando:

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

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

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

A continuaci贸n, mueva el directorio extra铆do a /opt:

mv mattermost /opt

A continuaci贸n, cree un directorio de datos para Mattermost y cambie la propiedad y el permiso de Mattermost:

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

A continuaci贸n, edite el archivo de configuraci贸n de Mattermost:

nano /opt/mattermost/config/config.json

Defina la URL de su sitio web de Mattermost como se muestra a continuaci贸n:

    "SiteURL": "http://mattermost.example.com",

A continuaci贸n, busque las siguientes l铆neas:

    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:[email聽protected]/mattermost_test?sslmode=disable\u0026connect_timeout=10",

Y las reemplaz贸 con las siguientes l铆neas: Anuncio

    "DriverName": "mysql",
    "DataSource": "matteruser:[email聽protected](localhost:3306)/matterdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Guarde y cierre el archivo cuando haya terminado.

Crear un archivo de servicio de Systemd para Mattermost

A continuaci贸n, deber谩 crear un archivo de servicio systemd para administrar el servicio Mattermost. Puede crearlo ejecutando el siguiente comando:

nano /etc/systemd/system/mattermost.service

Agregue las siguientes l铆neas:

[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

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuaci贸n, inicie el servicio Mattermost y habil铆telo para que se inicie al reiniciar el sistema:

systemctl start mattermost
systemctl enable mattermost

Ahora puede verificar el estado del servicio de Mattermost con el siguiente comando:

systemctl status mattermost

Obtendr谩 el siguiente resultado:

? mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 14:12:29 UTC; 7s ago
 Main PID: 15201 (mattermost)
    Tasks: 32 (limit: 11411)
   Memory: 265.2M
   CGroup: /system.slice/mattermost.service
           ??15201 /opt/mattermost/bin/mattermost
           ??15298 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64
           ??15299 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
           ??15308 plugins/playbooks/server/dist/plugin-linux-amd64
           ??15313 plugins/focalboard/server/dist/plugin-linux-amd64

Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.344 Z","level":"info","msg":"Sent notification of next survey>
Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.402 Z","level":"info","msg":"Post.Message has size restrictio>
Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.499 Z","level":"info","msg":"info [2022-01-15 14:12:26.497 Z]>
Jan 15 14:12:26 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:26.537 Z","level":"info","msg":"\n    -- collation of mattermost>
Jan 15 14:12:28 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:28.297 Z","level":"info","msg":"debug [2022-01-15 14:12:28.295 Z>
Jan 15 14:12:28 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:28.804 Z","level":"info","msg":"info [2022-01-15 14:12:28.803 Z]>
Jan 15 14:12:29 almalinux8 systemd[1]: Started Mattermost.
Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.149 Z","level":"info","msg":"Starting Server...","caller":"ap>
Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.150 Z","level":"info","msg":"Server is listening on [::]:8065>
Jan 15 14:12:29 almalinux8 mattermost[15201]: {"timestamp":"2022-01-15 14:12:29.150 Z","level":"info","msg":"Sending systemd READY notificati>

En este punto, Mattermost se inicia y se ejecuta en el puerto 8065. Puede verificarlo con el siguiente comando:

ss -antpl | grep 8065

Obtendr谩 el siguiente resultado:

LISTEN 0      128                *:8065             *:*    users:(("mattermost",pid=15201,fd=35))                   

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx como proxy inverso para Mattermost

Se recomienda instalar y configurar Nginx como proxy inverso para Mattermost. Para hacerlo, deber谩 instalar el servidor Nginx en su servidor. Puede instalarlo ejecutando el siguiente comando:

dnf install nginx -y

Una vez que se haya instalado Nginx, cree un archivo de configuraci贸n de host virtual de Nginx con el siguiente comando:

nano /etc/nginx/conf.d/mattermost.conf

Agregue las siguientes l铆neas:

 server {
        listen       80;
        server_name  mattermost.example.com;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
	proxy_pass http://localhost:8065/;
            index  index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de configuraci贸n:

nginx -t

Si todo est谩 bien, obtendr谩 el siguiente resultado: Anuncio

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ahora, inicie y habilite el servicio Nginx para que se inicie al reiniciar el sistema:

systemctl start nginx
systemctl enable nginx

Puede verificar el estado de Nginx usando el siguiente comando:

systemctl status nginx

Obtendr谩 el siguiente resultado:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 14:14:05 UTC; 7s ago
  Process: 15356 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 15354 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 15351 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 15358 (nginx)
    Tasks: 2 (limit: 11411)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??15358 nginx: master process /usr/sbin/nginx
           ??15359 nginx: worker process

Jan 15 14:14:05 almalinux8 systemd[1]: nginx.service: Succeeded.
Jan 15 14:14:05 almalinux8 systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Jan 15 14:14:05 almalinux8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 15 14:14:05 almalinux8 nginx[15354]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 15 14:14:05 almalinux8 nginx[15354]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 15 14:14:05 almalinux8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jan 15 14:14:05 almalinux8 systemd[1]: Started The nginx HTTP and reverse proxy server.

En este punto, Nginx est谩 instalado y configurado para servir a Mattermost. Ahora puede continuar con el siguiente paso.

Configurar cortafuegos

A continuaci贸n, deber谩 permitir el puerto 80 a trav茅s del firewall. Puede permitirlo ejecutando el siguiente comando:

firewall-cmd --add-service=http --permanent

A continuaci贸n, vuelva a cargar el cortafuegos para aplicar los cambios:

firewall-cmd --reload

Una vez que haya terminado, puede continuar con el siguiente paso.

Acceder a la interfaz de usuario web de Mattermost

Ahora, abra su navegador web y acceda a la interfaz web de Mattermost usando la URL http://mattermost.example.com. Ser谩 redirigido a la siguiente pantalla:

Formulario de inicio de sesi贸n de Mattermost

Proporcione su direcci贸n de correo electr贸nico, nombre de usuario de administrador, contrase帽a y haga clic en el Crear Cuenta bot贸n. Obtendr谩 la siguiente pantalla:

Unirse al equipo

Haga clic en Crear a equipo. Obtendr谩 la siguiente pantalla:

Establecer el nombre del equipo

Proporcione el nombre de su equipo y haga clic en el pr贸ximo bot贸n. Obtendr谩 la siguiente pantalla:

Configurar la URL del equipo en Mattermost

Proporcione a su equipo de Mattermost URL y haga clic en el Finalizar bot贸n. Obtendr谩 el panel de control de Mattermost en la siguiente pantalla:

Panel de control m谩s importante

Conclusi贸n

En la gu铆a anterior, aprendi贸 c贸mo instalar el servicio de chat Mattermost con Nginx en Alma Linux 8. Ahora puede implementar Mattermost en su organizaci贸n y comenzar a usarlo como un chat interno. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *