Cómo instalar el sistema Mattermost Team Messaging en Debian 10
Mattermost es un sistema de mensajería de código abierto escrito en los lenguajes de programación Golang y React. Esta es una alternativa de slack y podemos usarla para crear nuestro propio servicio de mensajería, como slack o hip hop.
Mattermost lleva la comunicación de su equipo a un solo lugar y la hace accesible desde cualquier lugar. Puede acceder desde computadoras de escritorio, dispositivos Android y iPhone.
En este tutorial, le mostraremos cómo instalar Mattermost en Debian Buster 10. Instalaremos Mattermost en el servidor de base de datos MySQL y el servidor web Nginx, y ejecutaremos Mattermost como un servicio Systemd en la última versión de Debian Buster 10.
requisitos previos
Para este tutorial, probaremos la instalación de Mattermost con 2 GB de RAM, 25 de espacio libre en disco y 2 CPU en Debian 10.
¿Qué vamos a hacer?
- Instalar servidor MySQL
- Crear una base de datos MySQL para Mattermost
- Agregar usuarios del sistema y descargar Mattermost
- La configuración es lo más importante.
- Establecer Mattermost como un servicio del sistema
- Generar SSL Letsencrypt
- Instale Nginx y configúrelo como un proxy inverso
- pruebas
Paso 1: instalar la base de datos MySQL
Primero, instalamos MySQL Server 8.0 desde el repositorio oficial al servidor Debian. Sp, agregaremos el repositorio oficial de MySQL e instalaremos el paquete de software MySQL.
Utilice el siguiente comando apt para instalar la herramienta 'gnupg2' en el servidor Debian.
sudo apt install curl wget gnupg2
Use el siguiente comando para descargar y agregar el repositorio MySQL del sistema Debian.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.debdpkg -i mysql-apt-config_0.8.13-1_all.deb
Ahora actualice todos los repositorios de Debian e instale el paquete MySQL Server.
sudo apt updatesudo apt install mysql-server -y
Durante la instalación de MySQL Server, el sistema le pedirá que configure la contraseña de root del servidor MySQL.
Ingrese la contraseña raíz de MySQL y luego repítala.
Una vez completada la instalación, inicie el servicio MySQL y agréguelo a
systemctl start mysqlsystemctl enable mysql
Como resultado, el servidor MySQL ahora está instalado en Debian Buster 10. Y se configuró la contraseña raíz del servidor MySQL.
Paso 2-Crea la base de datos MySQL más importante
De forma predeterminada, Mattermost admite dos controladores de bases de datos, a saber, las bases de datos PostgreSQL y MySQL. En este tutorial, utilizaremos MySQL como base de datos predeterminada para Mattermost.
En este paso, crearemos una nueva base de datos y un nuevo usuario para la instalación de Mattermost.
Inicie sesión en el shell de MySQL con su usuario raíz y contraseña, como se muestra a continuación.
mysql -u root -p
Ahora cree una nueva base de datos y un nuevo usuario para Mattermost. Crearemos una nueva base de datos 'mattermost' con el usuario 'mmuser' y la contraseña 'mmuser-password'.
create database mattermost;create user [email protected] identified by 'mmuser-password';grant all privileges on mattermost.* to [email protected];flush privileges;
Ahora, escriba "salir" para salir de MySQL Shell.
Como resultado, se han creado la base de datos MySQL y los usuarios para la instalación de Mattermost.
Paso 3-Añadir usuarios y descargar Mattermost
En este paso, crearemos un nuevo usuario del sistema y descargaremos el código fuente de Mattermost. El software Mattermost se ejecutará bajo el nombre de usuario “mattermost” y se instalará en el directorio “/opt/mattermost”.
Use el siguiente comando para crear un nuevo usuario del sistema llamado 'mattermost'.
useradd --system --user-group mattermost
Ahora vaya al directorio "/opt" y descargue el código fuente de Mattermost usando el siguiente comando curl.
cd /opt/curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
Extraiga el código fuente de Mattermost y cree un nuevo directorio de "datos".
tar -xf mattermost.tar.gzmkdir -p /opt/mattermost/data
Después de eso, cambie la propiedad del directorio "/opt/mattermost" al usuario "mattermost" y haga que se pueda escribir.
chown -R mattermost:mattermost /opt/mattermostchmod -R g+w /opt/mattermost
Como resultado, se creó el usuario "más importante" y se descargó el código fuente "más importante" en el directorio "/opt/mattermost".
Paso 4-Configura el contenido más importante
En este paso, configuraremos la base de datos y la dirección de escucha de Mattermost. El servicio Mattermost se ejecutará en la dirección IP local en el puerto predeterminado 8065 y utilizará MySQL como sistema de base de datos.
Vaya al directorio "/opt/mattermost" y luego edite el archivo de configuración "config.json" en el directorio "config".
cd /opt/mattermost/vim config/config.json
En la opción "ListenAddress", cambie la dirección IP a "127.0.0.1".
"ListenAddress": "127.0.0.1:8065",
A "SqlSettings", cambie DriverName a "mysql", y use la base de datos MySQL y el usuario que creamos para cambiar "DataSource".
"SqlSettings": { "DriverName": "mysql", "DataSource": "dbuser:[email protected](localhost:3306)/dbname?charset=utf8mb4,utf8u0026readTimeout=30su0026writeTimeout=30s",
Guardar y cerrar.
Luego, use el siguiente comando para inicializar la instalación de Mattermost.
sudo -u mattermost ./bin/mattermost
Estos son los resultados que obtendrá.
Como resultado, Mattermost se inició y ejecutó en la dirección IP local “127.0.0.1” con el puerto “8065”, ahora presione el botón “Ctrl + c” para salir.
Paso 5: configura Mattermost como un servicio
En este paso, configuramos Mattermost como el servicio systemd, y se ejecutará automáticamente cuando el sistema se inicie después de que se ejecute el servicio de base de datos MySQL.
Ahora ve al directorio “/lib/systemd/system” y crea un nuevo archivo de servicio “mattermost.service”.
cd /lib/systemd/system/vim mattermost.service
Ahora pegue la siguiente configuración en él.
[Unit]Description=MattermostAfter=network.targetAfter=mysql.serviceRequires=mysql.service[Service]Type=notifyExecStart=/opt/mattermost/bin/mattermostTimeoutStartSec=3600Restart=alwaysRestartSec=10WorkingDirectory=/opt/mattermostUser=mattermostGroup=mattermostLimitNOFILE=49152[Install]WantedBy=multi-user.target
Guardar y cerrar.
A continuación, vuelva a cargar systemd manager en el sistema Debian.
systemctl daemon-reload
Después de eso, inicie el servicio Mattermost y agréguelo al inicio del sistema.
systemctl start mattermostsystemctl enable mattermost
El servicio de Mattermost está en funcionamiento, consulte con el siguiente comando.
systemctl status mattermost
Estos son los resultados que obtendrá.
Como resultado, el servicio Mattermost ha estado funcionando en el sistema Debian y se ejecutará automáticamente cuando se inicie el sistema.
Paso 6: instale Certbot Letsencrypt
En este paso, instalaremos la herramienta certbot y generaremos SSL Letsencrypt. Usaremos el SSL de Letsencrypt para proteger la instalación de Mattermost.
Utilice el siguiente comando apt para instalar la herramienta certbot.
sudo apt install certbot
Una vez completada la instalación, utilice el siguiente comando certbot para generar SSL letencrypt.
certbot certonly --standalone --agree-tos -m [email protected] -d mattermost.hakase-labs.io
Como resultado, su certificado SSL se generará en el directorio "/etc/letsencrypt/live/mattermost-hakase-labs.io".
Paso 7: instale y configure Nginx como proxy inverso
En este paso, instalaremos el servidor web Nginx y lo configuraremos como proxy inverso para el servicio Mattermost.
Use el siguiente comando apt para instalar Nginx.
sudo apt install nginx -y
Una vez completada la instalación, inicie el servicio Nginx y agréguelo al inicio del sistema.
anuncio
systemctl start nginx systemctl enable nginx
El servidor web Nginx está en funcionamiento.
A continuación, vaya al directorio de configuración “/etc/nginx” y cree una nueva configuración de host virtual.
cd /etc/nginx/vim sites-available/mattermost
Cambie la ruta del nombre de dominio y el certificado SSL usted mismo y luego pegue la configuración en él.
upstream backend { server 127.0.0.1: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 edu.initrc.fun; return 301 https://$server_name$request_uri;} server { listen 443 ssl http2; server_name edu.initrc.fun ssl on; ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem; ssl_session_timeout 1d; ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:50m; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; 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 https://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 https://backend; }}
Guardar y cerrar.
A continuación, cree un directorio de caché de Nginx y cambie la propiedad del directorio al usuario predeterminado "www-data".
mkdir -p /var/cache/nginxchown -R www-data:www-data /var/cache/nginx
Después de eso, active el host virtual de Mattermost, luego pruebe la configuración de nginx y asegúrese de que no haya errores.
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/nginx -t
Ahora, use el siguiente comando systemctl para reiniciar el servicio Nginx.
systemctl restart nginx
Como resultado, se completó la instalación y configuración de Nginx como proxy inverso para Matermost. Estamos listos para probar la instalación de Mattermost.
Paso 8-prueba
Abra su navegador web e ingrese el nombre de dominio de su URL de instalación de Mattermost en la barra de direcciones. El mio es:
https://mattermost.hakase-labs.io/
Ahora necesita crear una nueva primera cuenta de Mattermost, que será el administrador de Mattermost.
Escriba su nombre de usuario, correo electrónico y contraseña para obtener más detalles, y luego haga clic en el botón "Crear cuenta".
Crea un nuevo primer equipo en Mattermost.
Ingrese el nombre de su primer equipo y haga clic en "Siguiente".
La URL del equipo será el nombre del equipo, haga clic en "Finalizar" para continuar.
Te unirás automáticamente a los canales predeterminados "Off-Topic" y "Town Square".
Como resultado, la instalación de Mattermost en Debian Buster 10 con la base de datos MySQL y el servidor web Nginx se completó con éxito.