Mensajería tipo 'Slack' con Mattermost

Instalación del servidor

La manera más fácil de instalar el servidor de mattermost es utilizar el repositorio oficial dockerizado, el cual está alojado en github (https://github.com/mattermost/docker). Para ello ejecutamos el siguiente comando:

git clone https://github.com/mattermost/docker

El comando creará una carpeta llamada docker que contendrá todos los docker compose necesarios para desplegar fácilmente el servidor.

Para desplegarlo en modo fácil, simplemente ejecutamos desde la carpeta docker:

docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

Así desplegamos el servicio, con la configuración por defecto y sin nginx. Vamos, un deplegado básico sin grandes aspiraciones

Actualización del servidor

Para actualizar el servicio lo más fácil es replegar el servicio y volver a hacer un pull. Para ello hacemos un "down":

docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml down

No hay que preocuparse de nada, ya que no se perderán los datos, ya que si revisamos los yaml, veremos que el servicio funciona creando volúmenes persistentes, así que en cuanto recreemos el servicio volviendo a hacer un "up", recuperará las configuraciones previas. Pero antes de eso, es necesario actualizar las imagenes de los contenedores, para ello, primero hacemos:

docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml pull

y acto seguido, volvemos a levantar los contenedores con las versiones nuevas:

docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

Por último, indicar que editando el archivo docker-compose.yml, se puede forzar una versión concreta de mattermost, todo ello editando la línea que contiene la versión del contendor:

image: mattermost/${MATTERMOST_IMAGE}:${MATTERMOST_IMAGE_TAG}

reemplazamos por una versión estática:

image: mattermost/mattermost-team-edition

[Apéndice] Crear un webhook para enviar mensajes

Desde el menú principal de Mattermost, opción Integrations (sólo visible si tu usuario es administrador o tiene los permisos apropiados), podemos hacer click en "Incoming Webhooks" y finalmente "Add Incoming Webhook". Ahí definimos nuestro webhook rellenado los campos:

Una vez dado click a grabar, se creará el nuevo webhook y junto a él se devolverá una url del tipo

<base_url>/hooks/m89su79xy7rdjmdxdn374xticc

Por último, para hacer un post utilizando el webhook montamos una petición http tipo POST al endpoint anterior, junto a un "Content-Type" tipo "application/json" como cabecera y un json dentro del body que sea {text: "Texto a enviar"}.

Una vez la llamada se realiza, inmediatamente aparece el mensaje en el canal correspondiente, como detalle es importante decir que el aparente autor del mensaje es el usuario que creo el webhook.

Última actualización: 2 de Octubre de 2023 a las 16:08 (CET)