Cómo instalar y configurar Mattermost en Ubuntu 18.04 LTS

1 mar 2021 6 min di lettura
Cómo instalar y configurar Mattermost en Ubuntu 18.04 LTS
Indice dei contenuti

Introducción

Mattermost es una plataforma de mensajería instantánea de nivel empresarial, una alternativa de Slack autohospedada de código abierto. Está escrito en Golang y React y puede usar MySQL o PostgreSQL como backend de la base de datos. Mattermost reúne todas las comunicaciones de su equipo en un solo lugar y ofrece varias funciones que incluyen intercambio de archivos, mensajería individual y grupal, emojis personalizados, videollamadas y más.

En este tutorial, instalaremos Mattermost en un servidor Ubuntu 18.04 y configuraremos Nginx como un proxy inverso con SSL HTTPS.

Prerrequisitos

Asegúrese de haber cumplido los siguientes requisitos previos antes de continuar con este tutorial:

  • Ha iniciado sesión como usuario con privilegios de sudo.
  • Tiene un nombre de dominio que apunta a la dirección IP de su servidor. En este artículo usaremos example.com.
  • Ha instalado Nginx, si no es así, consulte esta guía.
  • Tiene un certificado SSL instalado para su dominio. Puede instalar un certificado SSL Let's Encrypt gratuito siguiendo esta guía.

Si desea instalar Mattermost en un servidor remoto, continúe leyendo, de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Crea una base de datos MySQL

Usaremos MySQL como base de datos para Mattermost. Si no tiene MySQL o MariaDB instalados en su servidor, puede instalarlo siguiendo estas instrucciones.

Inicie sesión en el shell de MySQL:

sudo mysql -u root

De lo contrario, si ha establecido una contraseña para el usuario root, utilice el siguiente comando para iniciar sesión en el shell de MySQL:

sudo mysql -u root -p

Cree una nueva base de datos y un usuario para nuestra instalación Mattermost con:

CREATE DATABASE mattermost;
GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
exit;

Asegúrese de utilizar una contraseña más segura que P4ssvv0rD.

Crear un nuevo usuario del sistema

Cree un nuevo usuario y grupo que ejecutará nuestra instancia de Mattermost. Llamaremos al usuario más mattermost:

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

Instalar el servidor Mattermost

En el momento de escribir este artículo, la última versión estable de Mattermost es la versión 5.19.1. Descarga el archivo con el siguiente comando curl:

sudo curl -L https://releases.mattermost.com/5.19.1/mattermost-5.19.1-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

Una vez que se complete la descarga, extraiga el archivo y muévalo al directorio /opt

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

Cree el directorio de almacenamiento para los archivos:

sudo mkdir -p /opt/mattermost/data

Cambie la propiedad del directorio para el mattermost usuario:

sudo chown -R mattermost: /opt/mattermost

Abra el archivo /opt/mattermost/config/config.json, configure el controlador de la base de datos en mysql e ingrese la información de la base de datos:

sudo nano /opt/mattermost/config/config.json

Busque el SqlSetting, cambie el valor DriverName y DataSource

"SqlSettings": {
 "DriverName": "mysql",
 "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

Para asegurarnos de que nuestra instancia de Mattermost funcione como se esperaba, probaremos el servidor de Mattermost. Cambie al /opt/mattermost e inicie el servidor con los siguientes comandos:

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

Si todo funciona bien, el servidor se iniciará y la salida se verá así:

{"level":"info","ts":1532546921.941638,"caller":"app/server.go:115","msg":"Starting Server..."}
 {"level":"info","ts":1532546921.9421031,"caller":"app/server.go:154","msg":"Server is listening on [::]:8065"}
 {"level":"info","ts":1532546921.9541554,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}

Ahora podemos detener el servidor Mattermost con CTRL+C y continuar con los siguientes pasos.

Crea una unidad Systemd

Para ejecutar nuestra instancia de Mattermost como servicio, crearemos un archivo de mattermost.service /etc/systemd/system/.

Abra su editor de texto y cree el siguiente archivo:

sudo nano /etc/systemd/system/mattermost.service
[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=mysql.service

Notifique a systemd que hemos creado un nuevo archivo de unidad e inicie el servicio Mattermost con los siguientes comandos:

sudo systemctl daemon-reload

Si no hay errores, habilite el servicio Mattermost para que se inicie automáticamente al inicio:

sudo systemctl enable mattermost

Inicie el servicio:

sudo systemctl start mattermost

Ahora podemos comprobar el estado del servicio con:

sudo systemctl status mattermost
● mattermost.service - Mattermost
 Loaded: loaded (/etc/systemd/system/mattermost.service; enabled; vendor preset: enabled)
 Active: active (running) since Sat 2020-02-08 20:24:36 CET; 4s ago
 Main PID: 21884 (mattermost)
 Tasks: 16 (limit: 2298)
 CGroup: /system.slice/mattermost.service
 ├─21884 /opt/mattermost/bin/mattermost
 └─21912 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Configurar un proxy inverso con Nginx

Si siguió nuestras instrucciones sobre cómo instalar Nginx en Ubuntu 18.04 y cómo proteger Nginx con Let's Encrypt en Ubuntu 18.04, ya debería haber instalado y configurado Nginx con certificado SSL.

Ahora necesitamos establecer el bloque del servidor para la instancia de Mattermost. Abra su editor de texto y cree /edite el siguiente archivo:

sudo nano /etc/nginx/sites-available/example.com
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

 upstream mattermost_backend {
 server 127.0.0.1:8065;
 }

 server {
 if ($host = www.example.com) {
 return 301 https://$host$request_uri;
 }

 if ($host = example.com) {
 return 301 https://$host$request_uri;
 }

 listen 80;
 listen [::]:80;

 server_name example.com www.example.com;
 return 404; # managed by Certbot

 }

 server {
 listen [::]:443 ssl ipv6only=on; # managed by Certbot
 listen 443 ssl; # managed by Certbot

 server_name example.com www.example.com;

 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


 access_log /var/log/nginx/example.com-access.log;
 error_log /var/log/nginx/example.com-error.log;


 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;
 proxy_read_timeout 600s;
 proxy_pass http://mattermost_backend;
 }

 location /{
 proxy_http_version 1.1;
 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_pass http://mattermost_backend;
 }
 }

Vuelva a cargar el servicio Nginx para que los cambios surtan efecto:

sudo systemctl reload nginx

Configurar Mattermost

Abra su navegador, escriba su dominio y será redirigido a la página de inicio.

Ingrese su correo electrónico, elija un nombre de usuario y contraseña y haga clic en el botón Create Account para crear su primera cuenta.

El primer usuario creado en el sistema tendrá privilegios de administrador.

En el siguiente paso, el asistente de configuración le pedirá que cree un nuevo equipo.

Haga clic en el Create a new team, ingrese el primer equipo y haga clic en el botón Next

En el siguiente paso, se le pedirá que elija la dirección web de su nuevo equipo.

Haga clic en el Finish y será redirigido al panel de Mattermost, iniciado sesión como administrador.

Abra la Consola del sistema, haga clic en su nombre de usuario en la parte superior del panel de navegación y en el nuevo menú que se abre, haga clic en el enlace System Console

Configure la URL del sitio yendo a Impostazioni generali → Configurazione.

Para habilitar las notificaciones por correo electrónico, vaya a Notifiche → E-mail, cambie el valor de Enable Email Notifications de false a true e ingrese los parámetros SMTP.

Puede usar todos los servicios de correo electrónico transaccional populares como SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet y Postmark o puede configurar su servidor de correo siguiendo este tutorial.

Finalmente, debe reiniciar el servicio Mattermost para que los cambios surtan efecto:

sudo systemctl restart mattermost

Conclusión

Ha instalado Mattermost con éxito en su servidor Ubuntu 18.04 y ha configurado Nginx como proxy inverso. Ahora puede comenzar a usar Mattermost para colaborar con su equipo.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.