Búsqueda de sitios web

Rocket.Chat: herramienta de comunicación en equipo de código abierto 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 los sistemas operativos móviles Linux, Windows, macOS, Android e iOS.

Es similar a Slack y cuenta con chat en vivo, conferencias de audio y video gratuitas, canales, acceso de invitados, uso compartido de pantalla y uso compartido de archivos. Para garantizar una comunicación segura, admite sincronización de grupos LDAP, autenticación de dos factores (2FA), cifrado de extremo a extremo, 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 satisfacer los requisitos comerciales o de su equipo.

En este artículo, aprenderá cómo 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 sencilla 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 funcionan confinados en una zona de pruebas de seguridad restrictiva. Además, con las instantáneas, también puede actualizar automáticamente cuando esté disponible una nueva versión de un paquete.

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, deberá habilitar la unidad systemd que administra el conector de comunicación principal de la siguiente manera. Tenga en cuenta que este comando iniciará el socket y permitirá que se inicie en el inicio del sistema. En Ubuntu, esto debería hacerse automáticamente una vez completada la instalación del paquete.

sudo systemctl enable --now snapd.socket

Además, puede habilitar la compatibilidad con instantáneas clásicas 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

3. Ahora que tienes Snapd instalado, ejecuta el siguiente comando para instalar el rocketchat-server.
$sudo snap instalar el servidor rocketchat

4. Cuando se complete la instalación instantánea, su servidor rocket.chat comenzará a ejecutarse y 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. Después de 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) y luego haga clic en Continuar.

7. A continuación, proporcione la información del servidor (nombre del sitio, valor 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 opción predeterminada es utilizar las puertas de enlace y los servidores proxy 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 las configuraciones preconfiguradas 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. Haz clic en Ir a tu 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.linux-console.net) 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.

Habilite el proxy inverso de Nginx para Rocket.Chat

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 iniciar 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.linux-console.net.conf

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

upstream backend {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name chat.linux-console.net;

    # 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 detectar cualquier problema de sintaxis. Si está bien, reinicie el servicio Nginx para aplicar los cambios recientes.

sudo nginx -t
sudo systemctl restart nginx

Habilite el proxy inverso Apache para Rocket.Chat

14. Comience instalando 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 verifique 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 /etc/apache2/sites-available/ o /etc/httpd/conf.d/, por ejemplo.

----- On Ubuntu/Debian -----
sudo vim /etc/apache2/sites-available/chat.linux-console.net.conf

----- On CentsOS/RHEL 7/8 ----- 
sudo vim /etc/httpd/conf.d/chat.linux-console.net.conf

17. Copie y pegue la siguiente configuración, reemplace chat.linux-console.net con su dominio válido.

<VirtualHost *:80>
    ServerAdmin [email 
    ServerName chat.linux-console.net

    LogLevel info
    ErrorLog /var/log/chat.linux-console.net_error.log
    TransferLog /var/log/chat.linux-console.net_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 Apache.

systemctl restart httpd

19. Ahora todo está configurado correctamente, abre tu navegador y escribe la siguiente dirección. Se debe poder acceder a la aplicación Rocket.Chat utilizando su dominio configurado en el servidor proxy.

http://chat.linux-console.net

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 confiable para la mayoría de los navegadores web modernos.

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

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

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

Para instalar la aplicación de escritorio en Linux, debe 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 completada la instalación del paquete, busque rocket.chat en el Menú Sistema y ejecútelo. Después de que se cargue, ingrese la URL de su servidor para conectarse a él como se muestra en la siguiente captura de pantalla.