Cómo configurar Mattermost en Ubuntu 20.04

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de Mattermost
    1. Descargando Mattermost
    2. Configuración de la base de datos
    3. Creación de un servicio systemd
  • Paso 2: Exponer Mattermost en su dominio
  • Paso 3: Proteger su dominio
  • Paso 4: Configuración de Mattermost
  • Conclusión
  • El autor seleccionó el Fondo de Código Libre y Abierto para recibir una donación como parte del programa Write for DOnations.

    Introducción

    Mattermost es una plataforma de colaboración y mensajería de código abierto creada con la seguridad y la capacidad de configuración en mente, que ofrece una funcionalidad comparable a Discord o Slack. Ofrece mensajería grupal, en cadena y uno a uno, historial de búsqueda ilimitado y capacidades para compartir archivos, autorización de dos factores y notificaciones. Mattermost también ofrece webhooks e integración de bots para una mayor personalización. Es accesible desde cualquier tipo de dispositivo moderno gracias a su interfaz web responsiva y aplicaciones móviles dedicadas.

    En este tutorial, configurarás Mattermost Team Edition en tu servidor Ubuntu 20.04. Primero, lo instalarás y lo expondrás en tu dominio, protegido con un certificado TLS Let's Encrypt gratuito. Luego, habilitarás las notificaciones por correo electrónico, personalizarás la marca y crearás tu tablero de mensajes (llamado equipo en Mattermost).

    Prerrequisitos

    • Un servidor con Ubuntu 20.04 y al menos 2 GB de RAM, acceso root y una cuenta sudo que no sea root. Puedes configurarlo siguiendo esta Guía de configuración inicial del servidor.
    • MariaDB instalado en su servidor. Para ver cómo hacerlo, visite Cómo instalar MariaDB en Ubuntu 20.04. Puede seguir la versión corta que se describe al principio del tutorial.
    • Postfix instalado en modo de solo envío en su servidor. Visite el tutorial Cómo instalar y configurar Postfix como un servidor SMTP de solo envío en Ubuntu 20.04 para configurarlo. Lo usará para habilitar el envío de notificaciones por correo electrónico desde Mattermost.
    • Nginx instalado en su servidor. Para obtener una guía sobre cómo hacerlo, complete los pasos 1 a 4 de Cómo instalar Nginx en Ubuntu 20.04.
    • Un nombre de dominio completamente registrado para alojar Mattermost, que apunte a su servidor. Este tutorial se utilizará en todo momento. Puede comprar un nombre de dominio en Namecheap, obtener uno gratis en Freenom o utilizar el registrador de dominios que prefiera. Para DigitalOcean, puede seguir esta introducción a los DNS de DigitalOcean para obtener detalles sobre cómo agregarlos.mattermost.your_domain

    Nota : Para que su servidor SMTP Postfix funcione correctamente, los registros PTR de su servidor deben coincidir your_domain. Puede verificar el nombre de host del servidor escribiendo hostnameen el símbolo del sistema. El resultado debe coincidir con el nombre que le dio a su servidor cuando lo creó.

    Paso 1: Instalación de Mattermost

    En esta sección, configurará Mattermost en su servidor. Esto implica descargar la última versión, configurarla para usar la base de datos MariaDB y crear un systemdservicio que mantendrá a Mattermost siempre ejecutándose en segundo plano.

    Descargando Mattermost

    Almacenarás todos los datos relacionados con la instalación de Mattermost en una carpeta llamada ~/mattermost. Créala ejecutando el siguiente comando:

    1. mkdir ~/mattermost

    Navega hasta él:

    1. cd ~/mattermost

    Deberás dirigirte a la página de descarga de Mattermost en el sitio web oficial y copiar el enlace para obtener la última versión. Al momento de escribir esto, la última versión era 5.24.2. Descárgala wgetcon el siguiente comando:

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

    Luego, descomprima el archivo ejecutando:

    1. tar -xvzf mattermost*.gz

    Este comando descomprimirá todos los archivos del directorio cuyos nombres comiencen con mattermost.

    Obtendrás una carpeta con el mismo nombre que el archivo original que descargaste, que contiene los binarios de Mattermost. Cópiala para /optque puedas acceder a ella desde todo el sistema ejecutando lo siguiente:

    1. sudo cp -r mattermost /opt

    Luego, crea una carpeta para Mattermost, donde almacenará los datos del usuario:

    1. sudo mkdir /opt/mattermost/data

    Nota: Mattermost almacenará archivos e imágenes que usted y su equipo compartirán en este directorio, así que asegúrese de tener suficiente espacio libre en la unidad donde se encuentra.

    A continuación, cree un usuario y un grupo para Mattermost:

    1. sudo useradd --system --user-group mattermost

    Luego, haga que el usuario recién creado y su grupo sean propietarios de la carpeta de datos:

    1. sudo chown -R mattermost:mattermost /opt/mattermost

    Esto se hace para que, en caso de una violación, el atacante quede confinado al directorio de Mattermost y no pueda acceder fácilmente al resto del sistema.

    Por último, haga que el /opt/mattermostdirectorio sea escribible por grupos:

    1. sudo chmod -R g+w /opt/mattermost

    Ahora que los binarios de Mattermost están en su lugar con permisos seguros, configuremos una base de datos para ellos.

    Configuración de la base de datos

    Comience ingresando al indicador de MariaDB ejecutando lo siguiente:

    1. sudo mysql

    Cree un usuario de base de datos mmuserejecutando el siguiente comando y reemplácelo your_mmuser_passwordcon una contraseña de su elección:

    1. CREATE USER 'mmuser'@'%' IDENTIFIED BY 'your_mmuser_password';

    Luego, crea una base de datos para Mattermost:

    1. CREATE DATABASE mattermost;

    Para permitir mmuserel acceso a la mattermostbase de datos, concédale privilegios de acceso ejecutando:

    1. GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'%';

    Luego, vuelva a cargar las tablas de concesiones para aplicar inmediatamente los cambios:

    1. FLUSH PRIVILEGES;

    Cuando haya terminado, salga del mensaje:

    1. exit

    Una vez creada la base de datos y el usuario correspondiente, ahora editará el archivo de configuración principal de Mattermost y configurará la cadena de conexión de base de datos correcta.

    Ábrelo para editarlo:

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

    Encuentra las líneas que se parecen a las siguientes:

    /opt/mattermost/config/config.json

    . . ."DriverName": "...""DataSource": "...". . .

    Modifíquelos como se muestra aquí, reemplazándolos your_mmuser_passwordcon la contraseña que estableció para la mmusercuenta de la base de datos:

    /opt/mattermost/config/config.json

    ..."DriverName": "mysql""DataSource": "mmuser:your_mmuser_password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8readTimeout=30swriteTimeout=30s"...

    Guarde y cierre el archivo cuando haya terminado.

    Ya has configurado Mattermost para que use la base de datos recién creada donde almacenará usuarios, equipos y mensajes. Ahora estás listo para continuar con la creación de un systemdservicio para ella.

    Creación de un servicio systemd

    Ejecutar Mattermost como un servicio systemdgarantiza que se ejecutará en segundo plano en todo momento.

    Almacenarás la configuración del servicio en un archivo llamado mattermost.service, en el /lib/systemd/systemdirectorio donde systemdse almacenan sus servicios. Créalo usando tu editor de texto:

    1. sudo nano /lib/systemd/system/mattermost.service

    Añade las siguientes líneas:

    /lib/systemd/system/mattermost.servicio

    [Unit]Description=MattermostAfter=network.targetAfter=mysql.serviceRequires=mysql.service[Service]Type=notifyUser=mattermostGroup=mattermostExecStart=/opt/mattermost/bin/mattermostTimeoutStartSec=3600Restart=alwaysRestartSec=10WorkingDirectory=/opt/mattermostLimitNOFILE=49152[Install]WantedBy=mysql.service

    Aquí primero se especifica la descripción del servicio. Luego, se indica que el mysqlservicio debe iniciarse antes que el servicio Mattermost, ya que este último necesita que MariaDB se ejecute para funcionar. Después de la [Unit]sección, se define el tipo de servicio. notifysignifica que el proceso informará systemdque está cargado. Se proporciona el comando que se ejecutará y se establece la política de reinicio en always. También se define el directorio de trabajo para el proceso y con qué usuario y grupo debe ejecutarse.

    En esta [Install]sección, especifique el servicio de base de datos como valor del WantedByparámetro para garantizar que Mattermost se reinicie junto con la base de datos. Omitir esta configuración puede plantear un problema cuando la base de datos se actualiza automáticamente, ya que Mattermost puede dejar de funcionar si no se reinicia.

    Guarde y cierre el archivo, luego vuelva a cargar todos los servicios ejecutando el siguiente comando:

    1. sudo systemctl daemon-reload

    Compruebe que se ha cargado correctamente:

    1. sudo systemctl status mattermost

    Verás el siguiente resultado:

    Output● mattermost.service - Mattermost   Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)   Active: inactive (dead)

    Si systemdinforma un error, vuelva a verificar el nombre del archivo de servicio, su ubicación y la validez de su contenido.

    Luego, habilite el servicio Mattermost ejecutando:

    1. sudo systemctl enable mattermost

    En este paso, ha descargado Mattermost, lo ha configurado para utilizar la base de datos MariaDB y ha creado un systemdservicio para él. En el siguiente paso, lo expondrá en su dominio.

    Paso 2: Exponer Mattermost en su dominio

    En esta sección, configurará Nginx como un servidor proxy inverso para Mattermost.

    Antes de configurar Nginx, deberá especificar su dominio en el archivo de configuración principal de Mattermost. Ábralo para editarlo:

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

    Encuentra la línea que se parece a la siguiente:

    /opt/mattermost/config/config.json

    . . ."SiteURL": "". . .

    Inserta el nombre de tu dominio entre comillas:

    /opt/mattermost/config/config.json

    ..."SiteURL": "http://mattermost.your_domain"...

    Guarde y cierre el archivo.

    Como aprendió en el paso de requisitos previos de Nginx, sus archivos de configuración del sitio se almacenan en /etc/nginx/sites-availabley luego se deben vincular simbólicamente para /etc/nginx/sites-enabledque se activen.

    Almacenarás la configuración para exponer Mattermost en tu dominio en un archivo llamado mattermost.conf, en /etc/nginx/sites-available. Créalo usando tu editor:

    1. sudo nano /etc/nginx/sites-available/mattermost.conf

    Añade las siguientes líneas:

    /etc/nginx/sites-available/mattermost.conf

    upstream backend {   server localhost: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.your_domain;   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 http://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 http://backend;   }}

    Reemplace con el dominio deseado, luego guarde y cierre el archivo.mattermost.your_domain

    En este archivo, se define que Nginx debe escuchar el puerto HTTP 80. Luego, se especifica un server_nameque le indica a Nginx para qué dominio aceptar solicitudes y aplicar esta configuración en particular. Los dos bloques siguientes configuran aún más las conexiones proxy, de modo que Mattermost funcione correctamente.

    Para activar esta configuración del sitio, deberá crear un enlace simbólico en la /etc/nginx/sites-enabledcarpeta ejecutando:

    1. sudo ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf

    Para probar la validez de la configuración, ejecute el siguiente comando:

    1. sudo nginx -t

    Verás el siguiente resultado:

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

    Para que la configuración surta efecto, deberá reiniciar Nginx:

    1. sudo systemctl restart nginx

    Luego, inicie el servicio Mattermost ejecutando:

    1. sudo systemctl start mattermost

    Cuando termine este comando, intenta navegar hasta tu dominio en tu navegador. Deberías ver una página que te pide que te registres:

    Ahora tienes tu instalación de Mattermost disponible y accesible en tu dominio. En el siguiente paso, la protegerás aplicando un certificado TLS Let's Encrypt gratuito.

    Paso 3: Proteger su dominio

    En esta sección, protegerá su dominio utilizando un certificado TLS Let's Encrypt, que aprovisionará mediante Certbot.

    Ya deberías haber instalado Certbot como parte de los requisitos previos, por lo que solo necesitarás instalar su complemento Nginx ejecutando:

    1. sudo apt install python3-certbot-nginx

    Además, como parte de los requisitos previos, habilitó ufw(Uncomplicated Firewall) y lo configuró para permitir el tráfico HTTP sin cifrar. Para poder acceder al sitio seguro, deberá configurarlo para que acepte tráfico cifrado ejecutando el siguiente comando:

    1. sudo ufw allow https

    La salida será:

    OutputRule addedRule added (v6)

    De manera similar a Nginx, deberá volver a cargarlo para que la configuración surta efecto:

    1. sudo ufw reload

    El resultado mostrará:

    OutputFirewall reloaded

    Para solicitar certificados para su dominio, ejecute el siguiente comando:

    1. sudo certbot --nginx -d mattermost.your_domain

    En este comando, se ejecuta certbotpara solicitar certificados para su dominio; pasa el nombre de dominio con el -dparámetro. El --nginxindicador le indica que cambie automáticamente la configuración del sitio Nginx para que admita HTTPS. Recuerde reemplazarlo con su nombre de dominio.mattermost.your_domain

    Si es la primera vez que utiliza Certbot, se le solicitará que proporcione una dirección de correo electrónico para recibir avisos urgentes y que acepte los Términos de servicio de la EFF. A continuación, Certbot solicitará certificados para su dominio a Let's Encrypt. Luego, le preguntará si desea redirigir todo el tráfico HTTP a HTTPS:

    OutputPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: No redirect - Make no further changes to the webserver configuration.2: Redirect - Make all requests redirect to secure HTTPS access. Choose this fornew sites, or if you're confident your site works on HTTPS. You can undo thischange by editing your web server's configuration.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

    Se recomienda seleccionar la segunda opción para maximizar la seguridad. Luego de ingresar su selección, presione ENTER.

    El resultado será similar a esto:

    OutputIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at:   /etc/letsencrypt/live/mattermost.your_domain/fullchain.pem   Your key file has been saved at:   /etc/letsencrypt/live/mattermost.your_domain/privkey.pem   Your cert will expire on 2020-09-28. To obtain a new or tweaked   version of this certificate in the future, simply run certbot again   with the "certonly" option. To non-interactively renew *all* of   your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot   configuration directory at /etc/letsencrypt. You should make a   secure backup of this folder now. This configuration directory will   also contain certificates and private keys obtained by Certbot so   making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by:   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate   Donating to EFF:                    https://eff.org/donate-le

    Esto significa que Certbot ha generado con éxito certificados TLS y los ha aplicado a la configuración de Nginx para su dominio.

    Dado que ahora se puede acceder a tu dominio mediante HTTPS, tendrás que corregir la URL de tu dominio en el archivo de configuración principal de Mattermost. Ábrelo para editarlo:

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

    Una vez más, busque la línea que se parece a esto:

    /opt/mattermost/config/config.json

    . . ."SiteURL": "http://mattermost.your_domain". . .

    Cambiar httpa https:

    /opt/mattermost/config/config.json

    . . ."SiteURL": "https://mattermost.your_domain". . .

    Eso es todo lo que necesitas editar, así que guarda y cierra el archivo.

    Reinicie Mattermost ejecutando lo siguiente:

    1. sudo systemctl restart mattermost

    Ahora puedes recargar tu dominio Mattermost en tu navegador y observar un candado a la izquierda de la dirección del sitio, lo que significa que has asegurado correctamente tu conexión.

    Ahora que sus certificados TLS están configurados correctamente y su dominio es accesible a través de una conexión segura, está listo para configurar Mattermost.

    Paso 4: Configuración de Mattermost

    En esta sección, creará su equipo en Mattermost, configurará notificaciones por correo electrónico y cambiará la marca del servidor.

    Cuando accedas a Mattermost por primera vez, deberás crear una cuenta con privilegios de administrador en tu servidor. Si ya tienes una cuenta, puedes iniciar sesión. Una vez que hayas iniciado sesión, verás una página que te indicará que no hay equipos a los que puedas unirte.

    Para solucionar esto, selecciona Crear un equipo . Verás una página que te pedirá que le pongas un nombre a tu equipo (por ejemplo, Sammy):

    Ingrese un nombre de su elección y haga clic en Siguiente . Luego, se le solicitará que defina una dirección web para su equipo, en su dominio, que será el punto de acceso para su equipo en Mattermost:

    Puede dejar la URL sin cambios. Una vez que haya terminado, haga clic en Finalizar . Mattermost creará su equipo y, después de omitir el tutorial, verá la interfaz principal, donde pasará la mayor parte del tiempo comunicándose:

    La interfaz se explicará en detalle en el siguiente paso. Para acceder a la configuración, haz clic en tu nombre de usuario en la esquina superior izquierda y luego en Consola del sistema . Podrás acceder a esta opción solo si eres un usuario administrador.

    En el lado izquierdo hay un menú que brinda acceso a las secciones de configuración de Mattermost. Primero, deberá configurar las notificaciones por correo electrónico, para lo cual debe hacer clic en la opción SMTP , que se encuentra en Entorno :

    Para conectarte al servidor Postfix que instalaste como parte de los requisitos previos, escribe localhostcomo Servidor SMTP y 25como Puerto del servidor SMTP . Haz clic en el botón azul Guardar cuando hayas terminado y luego presiona el botón Probar conexión que se encuentra más abajo. Recibirás un mensaje en un cuadro verde que dice No se informaron errores al enviar un correo electrónico. Revisa tu bandeja de entrada para asegurarte.

    Ahora puedes revisar la bandeja de entrada del correo electrónico con el que te registraste. Encontrarás un mensaje de Mattermost que indica que la configuración del correo electrónico está configurada correctamente. Si no lo recibes, revisa tu carpeta de correo no deseado. En caso de que hayas recibido un error de Mattermost, vuelve a verificar lo que ingresaste y, si es necesario, vuelve a realizar el tutorial de requisitos previos.

    Ahora que ha verificado que los correos electrónicos funcionan, debe habilitar las notificaciones por correo electrónico seleccionando Notificaciones debajo de Configuración del sitio en el menú. Establezca la configuración Habilitar notificaciones por correo electrónicotrue en y configure la Dirección de origen de las notificaciones en una dirección de correo electrónico de su elección, como .mattermost@your_domain

    Como no es necesario que exista y no se supervisará, escríbalo no-replycomo Nombre para mostrar de la notificación , que es el nombre del remitente que se mostrará en el cliente de correo electrónico. Opcionalmente, puede Habilitar el procesamiento por lotes de correo electrónico para comprimir varios mensajes no leídos en un solo correo electrónico y reducir la cantidad total de correos electrónicos que envía a los miembros de su equipo. Haga clic en Guardar cuando haya terminado de modificar la configuración.

    Habilitó las notificaciones por correo electrónico de manera global y ahora puede cambiar opcionalmente la marca del servidor seleccionando la opción Personalización debajo de Configuración del sitio . Aquí puede configurar el Nombre del sitio y la Descripción del sitio , así como cargar una imagen y un texto de marca personalizados.

    Puede salir de la Consola del Sistema haciendo clic en su nombre de usuario en la esquina superior izquierda y seleccionando la primera opción del menú desplegable.

    Has creado tu equipo en Mattermost y has configurado notificaciones por correo electrónico, de modo que te mantendrás informado sobre las nuevas discusiones que se produzcan en tu equipo.

    Conclusión

    Ahora tienes tu propia plataforma de mensajería escalable y alojada por ti mismo, que tú y tu equipo pueden usar para colaborar en todos los dispositivos. Ahora podrás comunicarte de manera más eficiente, compartir archivos y buscar en mensajes y canales con facilidad.

    Si desea obtener más información sobre el uso de la interfaz de usuario de Mattermost, visite la documentación oficial.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

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

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion