GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo implementar Mattermost en Ubuntu 18.04

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 base de datos. Mattermost reúne toda la comunicación de su equipo en un solo lugar y ofrece varias funciones, como compartir archivos, mensajes individuales y grupales, emojis personalizados, videollamadas y más.

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

Requisitos previos #

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

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

Crear base de datos MySQL #

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

Inicie sesión en el shell de MySQL:

mysql -u root

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

CREATE DATABASE mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
Asegúrate de usar una contraseña que sea más segura que P4ssvv0rD .

Crear nuevo usuario del sistema #

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

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

Instalar servidor Mattermost #

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

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 se complete la descarga, extraiga el archivo y muévalo a /opt directorio

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

Cree el directorio de almacenamiento para archivos:

sudo mkdir -p /opt/mattermost/data

Cambie la propiedad del directorio al mattermost usuario:

sudo chown -R mattermost: /opt/mattermost

Abra el /opt/mattermost/config/config.json archivo, establezca el controlador de la base de datos en mysql e ingrese la información 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",

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

cd /opt/mattermostsudo -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 de Mattermost con CTRL+C y continúa con los siguientes pasos.

Crea una unidad Systemd #

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

Abre tu editor de texto y crea 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

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

sudo systemctl daemon-reloadsudo 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; disabled; ven
   Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago
 Main PID: 3091 (mattermost)
    Tasks: 18 (limit: 507)
   CGroup: /system.slice/mattermost.service
           ├─3091 /opt/mattermost/bin/mattermost

Si no hay errores, habilite el servicio de Mattermost para que se inicie automáticamente en el momento del arranque:

sudo systemctl enable mattermost

Configurar un proxy inverso con Nginx #

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

Ahora necesitamos configurar un nuevo bloque de servidor para la instancia de Mattermost. Abre tu editor de texto y crea 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 {
  server 127.0.0.1:8065;
}

server {
    listen 80;
    server_name example.com www.example.com;

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

server {
    listen 443 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;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 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_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

Configurando Mattermost #

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

Ingrese su correo electrónico, elija un nombre de usuario y contraseña y haga clic en Create Account botón 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 Create a new team enlace, ingrese su primer equipo y haga clic en Next botón.

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

Haga clic en Finish y serás redirigido al panel de control de Mattermost, iniciando sesión como administrador.

Abra la Consola del sistema, haciendo 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 System Console enlace.

Establezca la URL del sitio yendo a Configuración General → Configuración.

Para habilitar las notificaciones por correo electrónico, vaya a Notificaciones → Correo electrónico, cambie Enable Email Notifications valor de false a true e ingrese sus parámetros SMTP.

Puede utilizar cualquier servicio de correo electrónico transaccional popular, como SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet y Postmark, o puede configurar su propio servidor de correo siguiendo este tutorial.

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

sudo systemctl restart mattermost

Ubuntu
  1. Cómo implementar Odoo 11 en Ubuntu 18.04

  2. Cómo instalar MySQL en Ubuntu 18.04

  3. Cómo implementar Rocket.Chat en Ubuntu 18.04

  4. Cómo configurar un servidor OpenVPN en Ubuntu 18.04

  5. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

Cómo instalar el servidor OpenSIPS en Ubuntu 15.04

Cómo implementar Mattermost en Ubuntu 20.04

Cómo instalar Plex Media Server en Ubuntu 16.04 Server/Desktop

Mattermost Omnibus:Cómo instalar en el servidor Linux Ubuntu 20.04 LTS

Cómo implementar un servidor TeamSpeak en Ubuntu 20.04

Cómo hacer una instalación completa de Mattermost en Ubuntu Server 22.04