Instalación Mattermost · 16 min read · Jan 23, 2026

Instalar Mattermost con PostgreSQL y Nginx en CentOS 7

Mattermost es una alternativa de Slack de código abierto y autohospedada. Mattermost es comunicación moderna detrás de tu firewall.

Como alternativa a la mensajería SaaS propietaria, Mattermost reúne toda la comunicación de tu equipo en un solo lugar, haciéndola buscable y accesible en cualquier lugar.

Mattermost es “compatible con Slack, no limitado a Slack”, soportando un superconjunto de las integraciones de webhook entrantes y salientes de Slack, incluyendo compatibilidad con las integraciones existentes de Slack. Desde tus equipos de Slack existentes, puedes importar usuarios, historial de canales públicos e incluso colores de configuración de tema a Mattermost.

Nombres, Variables y cuentas utilizadas en este HowTo

IP local del servidor                : 192.168.2.100  
FQDN del servidor                    : mattermost.example.com  
Nombre de la base de datos mattermost: mattermost  
Usuario para acceder a la base de datos mattermost: mmuser  
Contraseña para mmuser en la base de datos: DBAss47slX3

Requisitos previos

Este Howto explica la instalación de Mattermost en CentOS7 usando PostgreSQL como backend de base de datos. Para el propósito de esta guía, asumiremos que instalamos todo en un solo servidor, pero para usuarios experimentados, sería fácil desensamblar las partes e instalar cada componente (por ejemplo, el servidor de base de datos) en una máquina diferente. La instalación se ha realizado con el usuario root, pero por supuesto, también podrías usar un usuario habilitado para sudo.

También asumimos que el servidor tiene una dirección IP de 192.168.2.100 y que DNS resuelve a mattermost.example.com. Así que en cualquier parte de este HowTo donde leas 192.168.2.100 o mattermost.example.com, reemplázalo con la dirección IP de tu servidor.

Antes de que puedas comenzar, necesitas una instalación mínima de CentOS7. Después de la instalación, asegúrate de configurar correctamente el correo electrónico (configuración de postfix), para que tu sistema pueda enviar correos electrónicos (por ejemplo, a través de un host inteligente o una solución similar).

Por favor, haz algunas pequeñas comprobaciones antes de continuar:

Intenta enviar un correo desde un terminal en tu servidor:

[root@mattermost ~]echo -en "Subject: Testmail\n\nThis is a test\n" | sendmail [email protected]

(reemplaza [email protected] con una dirección de correo electrónico a la que tu servidor debería poder enviar). ¡Asegúrate de que recibiste un correo del sistema!

Verifica la resolución de nombres para mattermost.example.com

Desde una computadora diferente (no el servidor que intentamos configurar), intenta hacer ping a mattermost.example.com. Deberías obtener un resultado positivo:

C:\>ping mattermost.example.com  
Pinging mattermost.witron.com [192.168.2.100] with 32 bytes of data:  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
Reply from 192.168.2.100: bytes=32 time<1ms TTL=64  
  
Estadísticas de ping para 192.168.2.100:  
Paquetes: Enviados = 4, Recibidos = 4, Perdidos = 0 (0% pérdida),  
Tiempos de ida y vuelta aproximados en milisegundos:  
Mínimo = 0ms, Máximo = 0ms, Promedio = 0ms

Verifica la conectividad a Internet

Ahora instalaremos el paquete wget (que necesitaremos más tarde).

[root@mattermost ~] yum -y install wget

y lo usaremos para determinar nuestra IP pública. Así que podemos verificar nuestra conectividad a Internet.

[root@mattermost ~] wget http://ipinfo.io/ip -qO -  
46.101.122.124

El resultado debería ser tu dirección IP pública.

Verifica el estado del firewall y desactívalo por ahora

Por favor, verifica si tu instalación de CentOS7 tiene firewalld habilitado. Puedes verificar esto escribiendo

[root@mattermost ~] systemctl status firewalld

Si muestra algo como

Active: active (running) since …

por favor, apágalo y desactívalo con estos 2 comandos.

[root@mattermost ~] systemctl stop firewalld  
[root@mattermost ~] systemctl disable firewalld

Al final de este tutorial, encontrarás instrucciones sobre cómo volver a habilitar firewalld y cómo configurarlo correctamente para trabajar con Mattermost.

Si pasas todas las comprobaciones anteriores o sabes que tienes un sistema utilizable para este tutorial, puedes continuar ahora.

Instalar el servidor de base de datos PostgreSQL

Usaremos PostgreSQL como backend de base de datos para Mattermost. Instálalo con el siguiente comando:

[root@mattermost ~] yum -y install postgresql-server postgresql-contrib

Después de la instalación, tenemos que inicializar la base de datos.

[root@mattermost ~] postgresql-setup initdb  
Inicializando base de datos ... OK

Luego inicia PostgreSQL y habilítalo para inicio automático.

[root@mattermost ~]# systemctl start postgresql  
[root@mattermost ~]# systemctl enable postgresql  
Se creó un enlace simbólico desde /etc/systemd/system/multi-user.target.wants/postgresql.service a /usr/lib/systemd/system/postgresql.service.

Por favor, verifica que PostgreSQL esté en funcionamiento ejecutando.

[root@mattermost ~]# systemctl status postgresql

Debería informar algo similar a esto (asegúrate de que haya Active: active (running) en algún lugar del texto).

? postgresql.service - Servidor de base de datos PostgreSQL  
Cargado: cargado (/usr/lib/systemd/system/postgresql.service; habilitado; preset del proveedor: deshabilitado)  
Activo: active (running) desde Fri 2016-03-04 11:37:50 CET; hace 44s  
PID principal: 17660 (postgres)  
CGroup: /system.slice/postgresql.service  
??17660 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432  
??17661 postgres: proceso de registro  
??17663 postgres: proceso de verificación  
??17664 postgres: proceso de escritura  
??17665 postgres: proceso de escritura wal  
??17666 postgres: proceso de lanzamiento de autovacuum  
??17667 postgres: proceso de recopilación de estadísticas  
  
Mar 04 11:37:48 mattermost systemd[1]: Iniciando servidor de base de datos PostgreSQL...  
Mar 04 11:37:50 mattermost systemd[1]: Servidor de base de datos PostgreSQL iniciado.  
Mar 04 11:37:59 mattermost systemd[1]: Servidor de base de datos PostgreSQL iniciado.

Crear base de datos mattermost y usuario de base de datos

PostgreSQL creó automáticamente un usuario y grupo con el nombre postgres. Usamos el usuario postgres para conectarnos al motor de base de datos y configurar una base de datos y un usuario que pueda acceder a ella.

Inicia un prompt como el usuario postgres:

[root@mattermost ~]# sudo -i -u postgres

Tu prompt ahora cambiará a:

-bash-4.2$

Ahora conectémonos al servidor de base de datos.

-bash-4.2$ psql  
psql (9.2.15)  
Escribe "help" para ayuda.  
postgres=#

Dentro del prompt de PostgreSQL ahora creamos una base de datos con el nombre ‘mattermost’.

postgres=# CREATE DATABASE mattermost;  
CREAR BASE DE DATOS

Ahora creamos un usuario ‘ mmuser ‘ con la contraseña ‘ DBAss47slX 3’.

postgres=# CREATE USER mmuser WITH PASSWORD '*DBAss47slX3*';  
CREAR ROL

Otorgar al usuario acceso a la base de datos Mattermost escribiendo:

postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;  
OTORGAR  
postgres=#

Luego podemos salir del prompt de PostgreSQL escribiendo:

postgres=# \q  
-bash-4.2$

Y luego salir de la shell que iniciamos como usuario ‘ postgres ‘ con.

-bash-4.2$ exit  
logout  
[root@mattermost ~]#

Permitir acceso a la base de datos PostgreSQL desde localhost a través de nombre de usuario/contraseña

Más tarde, nuestra instancia de mattermost querrá comunicarse con la base de datos PostgreSQL y autenticarse con nombre de usuario y contraseña. Para permitir esto, necesitamos cambiar ligeramente la configuración de PostgreSQL. Abre el archivo:

vi /var/lib/pgsql/data/pg_hba.conf

con un editor como vi o nano y cambia la línea:

host    all             all             127.0.0.1/32            ident

a:

host    all             all             127.0.0.1/32            md5

Guarda el archivo y luego reinicia PostgreSQL.

[root@mattermost ~]# systemctl restart postgresql

Deberíamos verificar que lo hicimos correctamente conectándonos al servidor de base de datos con nuestro usuario y contraseña creados anteriormente (usa tu contraseña si usaste una diferente en tu servidor):

[root@mattermost ~]# psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password  
Contraseña para el usuario mmuser:  
psql (9.2.15)  
Escribe "help" para ayuda.  
  
mattermost=> \q  
[root@mattermost ~]#

¡Nuestro servidor y base de datos PostgreSQL están ahora listos para Mattermost!

Descargar y extraer Mattermost

Vamos a descargar una copia del servidor Mattermost directamente desde su repositorio de Github (en el momento de la creación de este tutorial, la versión v2.0.0 era la versión actual) usando wget.

[root@mattermost ~]# cd  
[root@mattermost ~]# wget -q "https://github.com/mattermost/platform/releases/download/v2.0.0/mattermost.tar.gz" -O mattermost.tar.gz

Ahora vamos a extraer el archivo y poner los archivos extraídos en su ubicación de destino (en este caso usamos /opt/mattermost).

[root@mattermost ~]# tar -xvzf mattermost.tar.gz  
[root@mattermost ~]# mv mattermost /opt

Instalando Mattermost

Crear un usuario que ejecute el daemon de Mattermost

Más tarde ejecutaremos Mattermost como un daemon. Por lo tanto, configuramos un nuevo usuario en nuestro sistema con el nombre ‘ mattermost ‘. Ejecutará la instancia de mattermost más tarde. Ejecuta el siguiente comando para crear un usuario y grupo del sistema ‘ mattermost ‘:

[root@mattermost ~]# useradd -r mattermost -U -s /sbin/nologin

Crear una carpeta de almacenamiento de datos para Mattermost

Mattermost quiere almacenar algunos de sus datos, por ejemplo, archivos subidos, etc. en una carpeta. Así que necesitamos crear esa carpeta. Puede estar en cualquier lugar del disco duro, pero debe ser accesible por el usuario ‘ mattermost ‘. Elegí usar ‘/opt/mattermost/data’. Crea la carpeta con el siguiente comando:

[root@mattermost ~]# mkdir -p /opt/mattermost/data

Establecer propietario del directorio mattermost

Ahora establecemos el grupo y propietario del directorio mattermost a nuestro usuario y grupo creados anteriormente:

[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermost  
[root@mattermost ~]# chmod -R g+w /opt/mattermost**

Configurar la conexión de base de datos para mattermost

Para decirle a Mattermost cómo debe conectarse a nuestra base de datos PostgreSQL, necesitamos editar su archivo de configuración:

*/opt/mattermost/config/config.json*

Por favor, encuentra la sección ‘ SqlSettings ‘ y cámbiala a nuestras necesidades:

ANTES

"SqlSettings": {  
 "DriverName": "mysql",  
 "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",  
 "DataSourceReplicas": [],  
 "MaxIdleConns": 10,  
 "MaxOpenConns": 10,  
 "Trace": false,  
 "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"  
 },

DESPUÉS

"SqlSettings": {  
 "DriverName": "postgres",  
 "DataSource": "postgres://mmuser:[email protected]:5432/mattermost?sslmode=disable&connect_timeout=10",  
 "DataSourceReplicas": [],  
 "MaxIdleConns": 10,  
 "MaxOpenConns": 10,  
 "Trace": false,  
 "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"  
 },

¡Puedes dejar la AtRestEncryptKey como está!

Configurar la conectividad de correo electrónico para mattermost

Nuevamente necesitamos editar su archivo de configuración

*/opt/mattermost/config/config.json*

Encuentra la sección ‘EmailSettings’ y cámbiala a nuestras necesidades:

ANTES

 "EmailSettings": {  
 "EnableSignUpWithEmail": true,  
 "EnableSignInWithEmail": true,  
 "EnableSignInWithUsername": false,  
 "SendEmailNotifications": false,  
 "RequireEmailVerification": false,  
 "FeedbackName": "",  
 "FeedbackEmail": "",  
 "SMTPUsername": "",  
 "SMTPPassword": "",  
 "SMTPServer": "",  
 "SMTPPort": "",  
 "ConnectionSecurity": "",  
 "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",  
 "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",  
 "SendPushNotifications": false,  
 "PushNotificationServer":  
},  

DESPUÉS

 "EmailSettings": {  
 "EnableSignUpWithEmail": true,  
 "EnableSignInWithEmail": true,  
 "EnableSignInWithUsername": false,  
 "SendEmailNotifications": false,  
 "RequireEmailVerification": false,  
 "FeedbackName": "",  
 "FeedbackEmail": "",  
 "SMTPUsername": "",  
 "SMTPPassword": "",  
 "SMTPServer": "127.0.0.1",  
 "SMTPPort": "25",  
 "ConnectionSecurity": "",  
 "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",  
 "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",  
 "SendPushNotifications": false,  
 "PushNotificationServer": ""  
},

Usamos 127.0.0.1 y el puerto 25 porque usamos nuestra instalación local de postfix que ya está configurada para poder enviar correos electrónicos al exterior. Si tu configuración difiere aquí, debes establecer los valores correctos.

Configurar mattermost para que solo escuche en la interfaz interna (127.0.0.1)

Por defecto, la instancia del servidor mattermost escuchará en todas las interfaces en el puerto 8065 (:8065). Debido a que queremos poner un servidor Nginx frente a mattermost, cambiamos este comportamiento para que solo escuche en localhost (127.0.0.1:8065).

Simplemente cambia la línea

        "ListenAddress": ":8065",

a

        "ListenAddress": "127.0.0.1:8065",

en el archivo config.json.

Probar el servidor Mattermost

Ahora podemos probar si nuestro servidor mattermost se iniciaría ejecutándolo desde la línea de comandos. Asegúrate de hacer esto como el usuario ‘mattermost’. Si accidentalmente lo hiciste como ‘root’, tendrás que corregir los permisos para la carpeta mattermost nuevamente.

[root@mattermost ~]# su - mattermost -s /bin/bash  
  
Último inicio de sesión: Fri Mar 4 12:47:52 CET 2016 en pts/0  
su: advertencia: no se puede cambiar el directorio a /home/mattermost: No existe tal archivo o directorio  
-bash-4.2$

Ahora cambia al directorio de instalación de mattermost:

-bash-4.2$ cd /opt/mattermost/bin/

Y ejecuta mattermost desde la línea de comandos:

-bash-4.2$ ./platform

La salida debería verse similar a esto:

[2016/03/04 13:00:10 CET] [INFO] Cargadas traducciones del sistema para 'en' desde '/opt/mattermost/i18n/en.json'  
[2016/03/04 13:00:10 CET] [INFO] La versión actual es 2.0.0 (5950/Sat Feb 13 15:42:01 UTC 2016/c71c5cef632c7dc68072167c6fe091a60835fa02)  
[2016/03/04 13:00:10 CET] [INFO] Empresa habilitada: false  
[2016/03/04 13:00:10 CET] [INFO] El directorio de trabajo actual es /opt/mattermost/bin  
[2016/03/04 13:00:10 CET] [INFO] Archivo de configuración cargado desde /opt/mattermost/config/config.json  
[2016/03/04 13:00:10 CET] [INFO] El servidor se está inicializando...  
[2016/03/04 13:00:10 CET] [INFO] Haciendo ping a la base de datos maestra sql  
[2016/03/04 13:00:10 CET] [INFO] Haciendo ping a la base de datos réplica-0 sql  
[2016/03/04 13:00:10 CET] [DEBG] Eliminando cualquier característica de pre-lanzamiento no utilizada  
[2016/03/04 13:00:10 CET] [INFO] El esquema de la base de datos se ha establecido en la versión 2.0.0  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de usuario  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de equipo  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de canal  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de publicación  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de socket web  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de archivos  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de comando  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de administración  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api oauth  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de webhook  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de preferencias  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas de api de licencia  
[2016/03/04 13:00:10 CET] [DEBG] Analizando plantillas del servidor en /opt/mattermost/api/templates/  
[2016/03/04 13:00:10 CET] [DEBG] Inicializando rutas web  
[2016/03/04 13:00:10 CET] [DEBG] Usando directorio estático en /opt/mattermost/web/static/  
[2016/03/04 13:00:10 CET] [DEBG] Analizando plantillas en /opt/mattermost/web/templates/  
[2016/03/04 13:00:10 CET] [INFO] Iniciando servidor...  
[2016/03/04 13:00:10 CET] [INFO] El servidor está escuchando en 127.0.0.1:8065  
[2016/03/04 13:00:10 CET] [INFO] RateLimiter está habilitado  
[2016/03/04 13:00:10 CET] [DEBG] Comprobando actualizaciones de seguridad de Mattermost  
[2016/03/04 13:00:10 CET] [EROR] Falló al obtener información de actualización de seguridad de Mattermost.

Detén el servidor mattermost con Ctrl+C

y luego sal de la shell que iniciamos como usuario ‘mattermost’ con:

-bash-4.2$ exit  
logout  
[root@mattermost ~]#

Si tu instancia de mattermost no se inicia, lee la salida cuidadosamente. Yo mismo tuve muchos problemas porque olvidé una simple coma en config.json. También asegúrate de no usar caracteres especiales en la contraseña de tu dbuser, especialmente ningún signo ‘ @ ‘. ¡Eso me volvió loco al principio!

Si accidentalmente ejecutaste el comando anterior como ‘ root ‘ y eso también podría funcionar, tendrás que corregir nuevamente los permisos para la carpeta mattermost. Usa este comando si te encontraste con este error:

[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermost

Si todo salió bien, ahora podemos continuar.

Configurar Mattermost como un daemon

Para configurar Mattermost como un daemon, crea un archivo

*/etc/systemd/system/mattermost.service*

con el siguiente contenido:

[Unit]  
Description=Mattermost  
After=syslog.target network.target  
  
[Service]  
Type=simple  
WorkingDirectory=/opt/mattermost/bin  
User=mattermost  
ExecStart=/opt/mattermost/bin/platform  
PIDFile=/var/spool/mattermost/pid/master.pid  
  
[Install]  
WantedBy=multi-user.target

Luego recarga los archivos del daemon con:

[root@mattermost ~]# systemctl daemon-reload

Ahora podemos iniciar/detener/habilitar/deshabilitar este servicio como estamos acostumbrados a hacerlo.

Así que vamos a iniciar Mattermost, obtener su estado y luego habilitarlo como un servicio (inicio automático).

Iniciar el daemon mattermost

[root@mattermost ~]# systemctl start mattermost.service

Verificar el estado de mattermost

[root@mattermost ~]# systemctl status mattermost.service  
? mattermost.service - Mattermost  
Cargado: cargado (/etc/systemd/system/mattermost.service; deshabilitado; preset del proveedor: deshabilitado)  
 Activo: active (running) desde Fri 2016-03-04 14:03:40 CET; hace 4s  
PID principal: 18573 (platform)  
CGroup: /system.slice/mattermost.service  
??18573 /opt/mattermost/bin/platform  
...  
...

¡Asegúrate de que esté activo (en ejecución)!

Habilitar daemon para inicio automático

[root@mattermost ~]# systemctl enable mattermost.service  
Se creó un enlace simbólico desde /etc/systemd/system/multi-user.target.wants/mattermost.service a /etc/systemd/system/mattermost.service.

Ahora solo para asegurarnos, hacemos una prueba si Mattermost está escuchando en 127.0.0.1:8065 ejecutando el siguiente comando:

[root@mattermost config]# curl -s "http://127.0.0.1:8065" | grep -b "2015 Mattermost"

Deberíamos obtener una sola línea que contenga ‘2015 Mattermost’.

11343:        © 2015 Mattermost, Inc.

Si es así, podemos estar seguros de que la instancia del servidor Mattermost está en funcionamiento y podemos continuar.


Arreglar problemas de permisos relacionados con SELinux

En CentOS7, SELinux está habilitado por defecto. Podríamos desactivarlo completamente, pero es mejor reconfigurarlo y permitir que nuestro servidor Mattermost se ejecute.

Simplemente ingresa los siguientes 2 comandos para arreglar los permisos de SELinux:

[root@mattermost config]# chcon -Rt httpd_sys_content_t /opt/mattermost/  
[root@mattermost config]# setsebool -P httpd_can_network_connect 1

Configurar el servidor Nginx

Vamos a poner un servidor Nginx frente a nuestra instancia del servidor Mattermost.

Los principales beneficios son:

  • Mapeo de puertos :80 a :8065
  • Registros de solicitudes estándar
  • más opciones al cambiar a SSL más tarde

Habilitar el repositorio epel

Nginx no está en los repositorios predeterminados de CentOS. Así que necesitamos habilitar primero el repositorio epel. Esta es una tarea fácil, solo ingresa:

[root@mattermost config]# yum -y install epel-release && yum update

Instalar nginx

Después de haber habilitado el epel-release, podemos simplemente instalar nginx con el siguiente comando:

[root@mattermost config]# yum -y install nginx

Esto instalará nginx y todas sus dependencias.

Configurar nginx

Hay muchas maneras de configurar Nginx. Este tutorial solo mostrará cómo crear una configuración muy simple para Nginx que solo aloje nuestro servidor Mattermost en el puerto 80.

Cambiar el archivo de configuración predeterminado de Nginx

Crea una copia de seguridad del actual nginx.conf ejecutando:

[root@mattermost config]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

Luego reemplaza /etc/nginx/nginx.conf con este contenido:

# Para más información sobre la configuración, consulta:  
# * Documentación oficial en inglés: http://nginx.org/en/docs/  
# * Documentación oficial en ruso: http://nginx.org/ru/docs/  
  
user nginx;  
worker_processes auto;  
error_log /var/log/nginx/error.log;  
pid /run/nginx.pid;  
  
events {  
 worker_connections 1024;  
}  
  
http {  
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '  
 '$status $body_bytes_sent "$http_referer" '  
 '"$http_user_agent" "$http_x_forwarded_for"';  
  
 access_log /var/log/nginx/access.log main;  
  
 sendfile on;  
 tcp_nopush on;  
 tcp_nodelay on;  
 keepalive_timeout 65;  
 types_hash_max_size 2048;  
  
 include /etc/nginx/mime.types;  
 default_type application/octet-stream;  
  
 # Cargar archivos de configuración modulares desde el directorio /etc/nginx/conf.d.  
 # Consulta http://nginx.org/en/docs/ngx_core_module.html#include  
 # para más información.  
 include /etc/nginx/conf.d/*.conf;  
  
 server {  
 server_name mattermost.example.com;  
 location / {  
 client_max_body_size 50M;  
 proxy_set_header Upgrade $http_upgrade;  
 proxy_set_header Connection "upgrade";  
 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_pass http://127.0.0.1:8065;  
 }  
 }  
}

Por favor, asegúrate de usar el nombre de host correcto como se indicó anteriormente en este documento.

Para verificar que no tenemos errores de sintaxis en nuestros archivos de configuración, ejecuta el siguiente comando para comprobar la sintaxis:

[root@mattermost config]# nginx -t  
nginx: el archivo de configuración /etc/nginx/nginx.conf la sintaxis es correcta  
ginx: archivo de configuración /etc/nginx/nginx.conf la prueba es exitosa

Iniciar y habilitar Nginx como daemon

Iniciar Nginx

[root@mattermost config]# systemctl start nginx

Verificar estado

[root@mattermost config]# systemctl status nginx

Asegúrate de que muestre al menos una línea que diga:

...  
Activo: active (running)...  
...

Habilitar como daemon

[root@mattermost config]# systemctl enable nginx  
Se creó un enlace simbólico desde /etc/systemd/system/multi-user.target.wants/nginx.service a /usr/lib/systemd/system/nginx.service.

Si todo salió bien, ahora deberías tener una instalación de Mattermost funcionando detrás de Nginx. Verifícalo abriendo la siguiente URL en tu navegador:

http://mattermost.example.com

¡La pantalla de inicio de sesión de Mattermost debería aparecer!

Pantalla de inicio de sesión de Mattermost

Ahora puedes continuar configurando tu instalación de Mattermost ingresando tu dirección de correo electrónico y creando una cuenta.

Firewalld

Antes en este tutorial, desactivamos firewalld. Si deseas volver a habilitarlo pero quieres mantener el puerto 80 abierto (que actualmente usamos para Mattermost a través de Nginx), simplemente haz lo siguiente:

Iniciar y volver a habilitar Firewalld

[root@mattermost config]# systemctl start firewalld  
[root@mattermost config]# systemctl enable firewalld  
Se creó un enlace simbólico desde /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service a /usr/lib/systemd/system/firewalld.service.  
Se creó un enlace simbólico desde /etc/systemd/system/basic.target.wants/firewalld.service a /usr/lib/systemd/system/firewalld.service.

Abrir el puerto 80 en el Firewall

[root@mattermost config]# firewall-cmd --zone=public --add-port=80/tcp --permanent  
success  
[root@mattermost config]# firewall-cmd --reload  
success

Ahora tu instalación de Mattermost debería ser accesible, ¡incluso con Firewalld en ejecución!

Resumen

Espero que hayas encontrado útil este tutorial y que haya funcionado. En un entorno de producción, deberías crear/utilizar certificados para tu sitio web de Mattermost y habilitar https a través de Nginx. Esto se puede lograr fácilmente modificando ligeramente este Howto.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.