Rocket.Chat - Free, Open Source, Enterprise Team Chat para Linux


Rocket.Chat es una plataforma gratuita, de código abierto, escalable, altamente personalizable y segura que le permite comunicarse y colaborar con su equipo, compartir archivos y chatear en tiempo real. Es multiplataforma y se ejecuta en sistemas operativos móviles Linux, Windows, macOS, Android e iOS.

Es similar a Slack y presenta chat en vivo, conferencias de audio y video gratuitas, canales, acceso de invitados, uso compartido de pantalla y archivos compartidos. Para garantizar una comunicación segura, admite la sincronización de grupos LDAP, la autenticación de dos factores (2FA), el cifrado de extremo a extremo, el inicio de sesión único y varios proveedores de Oauth.

Es importante destacar que, al ser completamente de código abierto, puede acceder a su código fuente para personalizar, ampliar o agregar nuevas funciones para cumplir con los requisitos de su equipo o de su negocio.

En este artículo, aprenderá a instalar y configurar el servidor y el cliente Rocket.Chat en un sistema Linux.

Paso 1: Instalar Snaps en Linux

1. La forma más fácil de instalar Rocket.Chat es mediante Snaps: son compatibles con la mayoría, si no todas, las distribuciones modernas de Linux y son seguras porque se ejecutan en un entorno limitado de seguridad restrictivo. Además, con las instantáneas, también puede actualizar automáticamente cuando hay una nueva versión de un paquete disponible.

Primero, asegúrese de tener el paquete snapd instalado en su sistema; de lo contrario, instálelo usando su administrador de paquetes predeterminado como se muestra.

$ sudo apt install snapd		#Ubuntu and Debian
$ sudo dnf install snapd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install snapd		#CentOS/RHEL 7

2. Cuando se complete la instalación, debe habilitar la unidad systemd que administra el conector de comunicación snap principal de la siguiente manera. Tenga en cuenta que este comando iniciará el socket y permitirá que se inicie en el arranque del sistema. En Ubuntu, esto debe hacerse automáticamente después de que se complete la instalación del paquete.

$ sudo systemctl enable --now snapd.socket

Además, puede habilitar el soporte de snap clásico creando un enlace simbólico entre/var/lib/snapd/snap y/snap.

 
$ sudo ln -s /var/lib/snapd/snap /snap

Paso 2: Instalar Rocket.Chat en Linux

$ sudo snap instalar servidor de rocketchat

4. Cuando se complete la instalación instantánea, su servidor rocket.chat comenzará a funcionar y a escuchar en el puerto 3000 de forma predeterminada. Abra un navegador web e ingrese la siguiente dirección para configurar rocket.chat en el sistema.

http://SERVER_IP:3000

5. Una vez que se cargue el asistente de configuración, proporcione el nombre completo, el nombre de usuario, el correo electrónico de la organización y la contraseña del usuario administrativo.

6. A continuación, proporcione la información de la organización (tipo de organización, nombre, industria, tamaño, país y sitio web), luego haga clic en Continuar.

7. A continuación, proporcione la información del servidor (nombre del sitio, predeterminado, tipo de servidor y también habilite 2FA o no). Luego haga clic en Continuar.

8. En la página siguiente, registre el servidor. Aquí hay dos opciones, la predeterminada es usar las puertas de enlace y los proxies preconfigurados proporcionados por Rocket.Chat (esta es la opción recomendada).

Alternativamente, puede optar por mantenerse independiente y crear cuentas con proveedores de servicios, actualizar la configuración preconfigurada y también volver a compilar las aplicaciones móviles con sus certificados privados. Y haga clic en Continuar.

La configuración está completa y su espacio de trabajo está listo. Haga clic en Ir a su espacio de trabajo.

Paso 3: Configurar el proxy inverso para Rocket.Chat

9. Un proxy inverso como NGINX o Apache le permite configurar la aplicación Rocket.Chat para que sea accesible a través de un dominio o subdominio (por ejemplo, http://chat.tecmint.com) en lugar de escribir la dirección del servidor y el puerto de la aplicación (por ejemplo, http://10.42.0.247:3000).

Además, Rocket.Chat es un servidor de aplicaciones de nivel medio que no maneja SSL/TLS. Un proxy inverso también le permite configurar certificados SSL/TLS para habilitar HTTPS.

10. Primero, instale el paquete NGINX si aún no está instalado en su sistema.

$ sudo apt apt install nginx		#Ubuntu/Debian 
$ sudo dnf install nginx		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install nginx		#CentOS/RHEL 7

11. Una vez que se complete la instalación del paquete, inicie el servicio Nginx, por ahora, habilítelo para que se inicie automáticamente al arrancar el sistema y verifique su estado para asegurarse de que se esté ejecutando.

$ sudo systemctl enable --now nginx
$ sudo systemctl status nginx

12. A continuación, cree un archivo de bloque de servidor virtual para la aplicación Rocket.Chat en el directorio /etc/nginx/conf.d/, por ejemplo.

$ sudo vim /etc/nginx/conf.d/chat.tecmint.com.conf

Luego copie y pegue la siguiente configuración en el archivo (reemplace chat.tecmint.com con su subdominio o dominio válido).

upstream backend {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name chat.tecmint.com;

    # You can increase the limit if you need to.
    client_max_body_size 200M;

    error_log /var/log/nginx/chat.tecmint.com.log;

    location / {
        proxy_pass http://backend/;
        proxy_http_version 1.1;
        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-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
    }
}

Guarde el archivo y ciérrelo.

13. Luego, verifique la configuración de NGINX para ver si hay algún problema de sintaxis. Si está bien, reinicie el servicio Nginx para aplicar los cambios recientes.

$ sudo nginx -t
$ sudo systemctl restart nginx

14. Empiece por instalar el paquete Apache2 si aún no está instalado en su sistema.

$ sudo apt install apache2		#Ubuntu/Debian 
$ sudo dnf install httpd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install httpd		#CentOS/RHEL 7

15. A continuación, inicie y habilite el servicio apache y compruebe si está funcionando de la siguiente manera.

----- On Ubuntu/Debian -----
$ sudo systemctl enable --now apache2 	
$ sudo systemctl status apache2

----- On CentsOS/RHEL 7/8 ----- 
$ sudo systemctl enable --now httpd
$ sudo systemctl status httpd

16. A continuación, cree un archivo de host virtual para la aplicación Rocket.Chat en el directorio/etc/apache2/sites-available/o /etc/httpd/conf.d/, por ejemplo.

----- On Ubuntu/Debian -----
$ sudo vim /etc/apache2/sites-available/chat.tecmint.com.conf

----- On CentsOS/RHEL 7/8 ----- 
$ sudo vim /etc/httpd/conf.d/chat.tecmint.com.conf

17. Copie y pegue la siguiente configuración, reemplace chat.tecmint.com con su dominio válido.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName chat.tecmint.com

    LogLevel info
    ErrorLog /var/log/chat.tecmint.com_error.log
    TransferLog /var/log/chat.tecmint.com_access.log

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/
</VirtualHost>

Guarde el archivo y ciérrelo.

18. En Ubuntu y Debian, habilite los módulos apache2 requeridos y reinicie el servicio para aplicar los cambios recientes.

$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

En CentOS/RHEL y Fedora, simplemente reinicie el servicio de apache.

# systemctl restart httpd

19. Ahora todo está configurado correctamente, abra su navegador y escriba la siguiente dirección. La aplicación Rocket.Chat debe ser accesible usando su dominio configurado en el servidor proxy.

http://chat.tecmint.com

20. El siguiente paso crucial es agregar los beneficios de seguridad y privacidad de un certificado HTTPS a su servicio de chat. Para un entorno de producción, recomendamos utilizar Let’s Encrypt, que es gratuito y en el que confían la mayoría de los navegadores web modernos.

Tenga en cuenta que Let’s Encrypt está automatizado: puede usar certbot, una herramienta gratuita de código abierto para obtener e instalar automáticamente o simplemente obtener e instalar manualmente los certificados Let’s Encrypt en las principales distribuciones de Linux y servidores web.

Paso 4: Instalación de clientes de Rocket.Chat en el escritorio

21. Por último, pero no menos importante, puede descargar e instalar una aplicación de escritorio Rocket.Chat para Linux, Mac o Windows desde el sitio web del proyecto Rocket.Chat. También proporciona aplicaciones móviles para Android e iOS.

Para instalar la aplicación de escritorio en Linux, puede descargar un paquete deb (x64) o rpm (x64) según su distribución de Linux.

$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat_2.17.7_amd64.deb
OR
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat-2.17.7.x86_64.rpm

22. Luego instale el paquete usando el administrador de paquetes dpkg o rpm como se muestra.

$ sudo dpkg -i rocketchat_2.17.7_amd64.deb      #Ubuntu/Debian
$ sudo rpm -i rocketchat-2.17.7.x86_64.rpm      #CentOS/RedHat

23. Una vez que se complete la instalación del paquete, busque rocket.chat en el menú del sistema y ejecútelo. Después de que se cargue, ingrese la URL de su servidor para conectarse como se muestra en la siguiente captura de pantalla.