Introducción

Mattermost es una plataforma de código abierto escrita en React y Golang. Se puede utilizar como una plataforma de mensajería alternativa y utiliza la base de datos PostgreSQL o MySQL en el backend. La función principal de Mattermost es unir la comunicación del equipo y ofrecer varias funciones como intercambio de archivos, emojis personalizados, videollamadas, mensajería (individual o grupal), etc.

En esta guía, lo guiaremos a través de la instalación de Mattermost en un servidor Ubuntu 18.04. También configuraremos Nginx como un proxy inverso SSL.

requisitos

Antes de comenzar, asegúrese de tener lo siguiente:

  • Un nombre de dominio que apunta a la dirección IP de su servidor
  • Un usuario no root con privilegios sudo
  • Nginx completamente instalado
  • Un certificado SSL completamente instalado para su dominio.

Paso 1: crea la base de datos MySQL

Comience instalando la base de datos MySQL para Mattermost.

Comience iniciando sesión en el shell de MySQL:

$ sudo mysql -u root

A continuación, cree una nueva base de datos MySQL y un usuario para la instalación de Mattermost. Para hacer esto, ejecute el siguiente comando:

CREATEDATABASE mattermost;
GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIEDBY'Password';

Nota: Puede crear una contraseña más segura de su elección para la sección “Contraseña”.

Paso 2: crear un nuevo usuario

Ahora cree un nuevo usuario del sistema y un nuevo grupo para la instancia de Mattermost. En este caso llamaremos a nuestro usuario Más importante:

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

Después de crear un usuario, puede instalar Mattermost en su servidor.

Paso 3: instale el servidor Mattermost

Para descargar la última versión estable de Mattermost, ingrese:

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

Una vez que el archivo se haya descargado, descomprímalo y transfiéralo a / opt Directorio:

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

A continuación, cree un directorio de almacenamiento para estos archivos:

$ sudo mkdir -p /opt/mattermost/data

Asegúrese de cambiar la propiedad del directorio a este Más importante Usuario:

$ sudo chown -R mattermost: /opt/mattermost

Ir a>/opt/mattermost/config/config.json Archivo y configure la base de datos en MySQL, luego ingrese los detalles de la base de datos:

/opt/mattermost/config/config.json

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

Ahora tenemos que probar que el servidor Mattermost funciona correctamente. Para hacer esto, cambie al / opt / mattermost Directory y luego ejecute el siguiente comando para iniciar el servidor:

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

Si el servidor funciona correctamente, su servidor debería iniciarse inmediatamente y debería ver el siguiente resultado:

{"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 puede detener el servidor Mattermost haciendo clic en los botones de combinación CTRL + Cy vaya al siguiente paso.

Paso 4: creación de una unidad Systemd

Para ejecutar Mattermost como un servicio con éxito, cree un archivo de unidad llamado Mattermost.service haciendo / etc / systemd / system / Directorio.

Abra el archivo de texto y cree el siguiente archivo:

/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

Ahora informe a systemd que se ha creado un nuevo archivo de unidad y luego reinicie el servicio Mattermost con los siguientes comandos:

$ sudo systemctl daemon-reload
$ sudo systemctl start mattermost

Verifique el estado del servicio con el siguiente comando:

$ sudo systemctl status mattermost

La salida debería verse así:

● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; ven
   Active: active (running) since Wed 2018-08-2518:39:05 UTC; 41s ago
 Main PID: 3091 (mattermost)
    Tasks: 18 (limit: 507)
   CGroup: /system.slice/mattermost.service
           ├─3091/opt/mattermost/bin/mattermost

Si este comando no muestra ningún error, configure el servicio Mattermost para que se inicie en el arranque:

$ sudo systemctl enable mattermost

Paso 5: configurar un proxy inverso con Nginx

Este tutorial asume que ya instaló NGINX y lo configuró con un certificado SSL.

Ahora cree un bloque de servidor para Mattermost. Abra su editor y cree el siguiente archivo:

/etc/nginx/conf.d/example.com.conf

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 {
  server127.0.0.1:8065;
}

server {
    listen80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return301 https://example.com$request_uri;
}

server {
    listen443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return301 https://example.com$request_uri;
}

server {
    listen443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    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_size50M;
       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_buffers25616k;
       proxy_buffer_size16k;
       proxy_read_timeout600s;
       proxy_pass http://mattermost_backend;
    }

    location / {
       proxy_http_version1.1;
       client_max_body_size50M;
       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_buffers25616k;
       proxy_buffer_size16k;
       proxy_read_timeout600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidateon;
       proxy_cache_min_uses2;
       proxy_cache_use_stale timeout;
       proxy_cache_lockon;
       proxy_pass http://mattermost_backend;
    }
}

Reinicie el servidor Nginx para que estos cambios surtan efecto:

$ sudo systemctl reload nginx

Paso 6: configuración del servicio Mattermost

Para configurar el servicio Mattermost, vaya a su navegador e ingrese el nombre de dominio que lo redireccionará a la página de inicio de sesión.

Ingrese su dirección de correo electrónico, nombre de usuario y contraseña, luego presione crear una cuenta Botón para completar el proceso y crear tu cuenta.

Cómo instalar Mattermost en Ubuntu 18

El primer usuario de su sistema debe tener derechos de administrador.

A continuación, se le pedirá que cree un nuevo equipo.

Cómo instalar Mattermost en Ubuntu 18

Clic en el enlace Crea un nuevo equipo, luego ingrese el nombre de su equipo, luego presione próximo Botón.

Cómo instalar Mattermost en Ubuntu 18

Ahora se le pedirá que elija una web para su nuevo equipo.

Cómo instalar Mattermost en Ubuntu 18

presione el Terminado Botón. Se le redirigirá a la interfaz web de Mattermost. Inicie sesión como administrador.

Cómo instalar Mattermost en Ubuntu 18

Encuentra el Consola del sistema y ábralo, haga clic en el nombre de usuario y se abrirá un nuevo menú. Clic en el enlace Consola del sistema.

Ingrese la URL del sitio yendo a Configuración general Área y haga clic en construcción.

Cómo instalar Mattermost en Ubuntu 18

Para asegurarse de que las notificaciones por correo electrónico estén activadas, desplácese hasta Notificaciones Icono, haga clic en Correo electrónico, luego cambia el Habilitar notificaciones por correo electrónico Sección de incorrecto a cierto y también ingrese los parámetros SMTP.

Cómo instalar Mattermost en Ubuntu 18

También puede utilizar otros servicios de correo electrónico populares como Amazon SES, SendinBlue, Postmark, Mailgun, SendGrid, Mailjet y Mandrill.

El último paso es reiniciar el servicio Mattermost para que estos cambios surtan efecto:

$ sudo systemctl restart mattermost

Conclusión

¡Felicidades! Ahora el servicio Mattermost se instaló correctamente en su servidor Ubuntu 18.04. También ha configurado Nginx como proxy inverso y puede utilizar los servicios de Mattermost y colaborar con su equipo.