Cómo instalar Mattermost en CentOS 8

En este tutorial, le mostraremos cómo instalar Mattermost en CentOS 8. Para aquellos de ustedes que no lo sabían, Mattermost es una alternativa de Slack de nube privada y de código abierto. Un sistema de mensajería en el lugar de trabajo para web, PC y teléfonos, lanzado bajo la licencia MIT. Como alternativa a la mensajería SaaS patentada, Mattermost reúne todas las comunicaciones de su equipo en un solo lugar, lo que permite buscarlas y acceder a ellas desde cualquier lugar. Mattermost es “compatible con Slack, no limitado por Slack”, y admite un superconjunto de integraciones de webhook entrantes y salientes de Slack, incluida la compatibilidad con las integraciones existentes de Slack. Desde sus equipos de Slack existentes, puede importar usuarios, historial de canales públicos e incluso colores de configuración de temas a Mattermost.

Este artículo asume que tiene al menos un conocimiento básico de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y se supone que está ejecutando en la cuenta raíz, si no, es posible que deba agregar ‘sudo‘ a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso de Mattermost en un CentOS 8.

requisitos previos

  • Un servidor que ejecuta uno de los siguientes sistemas operativos: CentOS 8.
  • Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
  • Ynon-root sudo usero acceder a laroot user. Recomendamos actuar como unnon-root sudo usersin embargo, puede dañar su sistema si no tiene cuidado al actuar como raíz.

Instalar Mattermost en CentOS 8

Paso 1. Primero, comencemos asegurándonos de que su sistema esté actualizado.

sudo dnf clean all
sudo dnf install epel-release
sudo dnf update

Paso 2. Instalación del servidor de base de datos.

Ejecute el siguiente comando para instalar MariaDB:

sudo dnf install mariadb-server

De forma predeterminada, MariaDB no está reforzado. Puede asegurar MariaDB usando elmysql_secure_installationtexto. debe leer y debajo de cada paso cuidadosamente, que establecerá una contraseña de root, eliminará usuarios anónimos, no permitirá el inicio de sesión de root remoto y eliminará la base de datos de prueba y accederá a MariaDB segura:

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
 ... Success!

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...
Thanks for using MariaDB!

Luego, reinicie el servidor de la base de datos MariaDB y habilítelo para que se inicie al iniciar el sistema usando:

sudo systemctl restart mariadb
sudo systemctl status mariadb
sudo systemctl enable mariadb

Después de la instalación de la base de datos, inicie sesión en el shell de MariaDB y cree una base de datos y un usuario para Mattermost:

$ mysql -u root -p
CREATE DATABASE mattermost;
GRANT ALL PRIVILEGES ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'Your-Strong-Passwd';
FLUSH PRIVILEGES;
QUIT;

Paso 3. Instalación de Mattermost en CentOS 8.

Primero, deberá crear un usuario separado para ejecutar Mattermost. Puedes crearlo con el siguiente comando:

sudo useradd -d /opt/mattermost -U -M mattermost

A continuación, descargala última versión de Mattermost:

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

Descomprima el archivo de Mattermost en el directorio raíz del documento en su servidor:

tar xf *.gz
mv mattermost /opt/

Cree el directorio de almacenamiento para archivos:

mkdir /opt/mattermost/data

Además, establezca la propiedad y los permisos:

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

A continuación, tendremos que configurar el controlador de la base de datos en el archivo/opt/mattermost/config/config.jsonrealizando algunos cambios en su contenido. Busque las líneas “DriverName” y “DataSource” y cambie de la siguiente manera:

nano /opt/mattermost/config/config.json
"SqlSettings": {
        "DriverName": "mysql",
        "DataSource": "mattermost:Str0ngP@ss@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8u0026readTimeout=30su0026writeTimeout=30s",
        "DataSourceReplicas": [],
        "DataSourceSearchReplicas": [],
        "MaxIdleConns": 20,
        "ConnMaxLifetimeMilliseconds": 3600000,
        "MaxOpenConns": 300,
        "Trace": false,
        "AtRestEncryptKey": "myyti1r597i99qrk7eu91ywqhaawz4md",
        "QueryTimeout": 30
    },

Guardar y close el archivo. Luego, cambie el directorio a/opt/mattermoste inicie el servidor Mattermost con el siguiente comando:

cd /opt/mattermost
sudo -u mattermost ./bin/mattermost

Paso 4. Configure el servicio Mattermost Systemd.

Primero, crearemos un nuevosystemdarchivo de unidad usando el siguiente comando:

nano /etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=syslog.target network.target mariadb.service

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

[Install]
WantedBy=multi-user.target

A continuación, inicie el servicio Mattermost y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

sudo systemctl daemon-reload
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service

Verifique que Mattermost se esté ejecutando y escuchando en el puerto 8065. Puede verificarlo con el siguiente comando:

curl https://localhost:8065

Paso 5. Configuración de Nginx con Mattermost.

Instale y configure Nginx como un proxy inverso para un mejor rendimiento y seguridad. Ahora instalamos Nginx en el sistema CentOS:

sudo dnf install nginx

Después de instalar el servidor web Nginx, inicie el servicio Nginx y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

sudo systemctl start nginx
sudo systemctl enable nginx

Luego, configure el servidor web Nginx como un proxy para Mattermost:

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

Finalmente, reinicie el servicio Nginx para aplicar los cambios:

nginx -t
sudo systemctl restart nginx

Paso 6. Configure el cortafuegos.

Permita el acceso del cortafuegos en los puertos HTTP y HTTPS:

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Paso 7. Acceso a la interfaz web de Mattermost.

Mattermost estará disponible en el puerto HTTP 80 de forma predeterminada. Abra su navegador favorito y vaya ahttps://mattermost.example.comy continúe configurando Mattermost ingresando una dirección de correo electrónico y creando una cuenta.

¡Felicidades! Ha instalado correctamente Mattermost. Gracias por usar este tutorial para instalar Mattermost en el sistema CentOS 8. Para obtener ayuda adicional o información útil, le recomendamos que consulteel sitio web oficial de Mattermost.

Artículos Relacionados