Cómo instalar Mattermost en Alma Linux 8
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:
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:
Haga clic en Crear a equipo. Obtendrá la siguiente pantalla:
Proporcione el nombre de su equipo y haga clic en el próximo botón. Obtendrá la siguiente pantalla:
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:
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.