No estás usando esta distribución?

Selecciona una versión o distribución diferente

Rocket.chat es una solución de mensajería en equipo de código abierto similar a Slack que se puede instalar en tu servidor. Con Rocket.chat, puedes chatear con los miembros de tu equipo, empresa y amigos a través de audio y video, interactuar con los visitantes del sitio web en tiempo real -como si fuera un chat de soporte-, compartir archivos, transmitir mensajes de voz y mucho más.

Requisitos para el servidor

Para este tutorial utilizaremos Ubuntu 24.04 para instalar Rocket.chat y los requisitos del servidor y del tutorial son los siguientes:

  • Al menos 1G de memoria RAM en el servidor.
  • Un dominio o IP que apunte al servidor.

Instalación del Software necesario

Para poder instalar Rocket.chat deberemos de instalar NodeJS y MongoDB, para ello realizaremos la instalación de los dos paquetes.

Instalación de NodeJS

Procedemos a la instalación de NodeJS 22.x con el siguiente tutorial adjunto:

Instalación de NodeJS en Ubuntu 24.04
En el siguiente tutorial os explicaremos la correcta instalación de NodeJS en Ubuntu 24.04

Instalación de Deno

Deno es un entorno de ejecución para JavaScript, TypeScript y WebAssembly que se enfoca en la seguridad, la simplicidad y la compatibilidad con estándares web. Fue creado por Ryan Dahl, el mismo creador de Node.js, con el objetivo de corregir algunas de las decisiones de diseño que consideró problemáticas en Node.js.

Para poder instalar Deno, es necesario tener instalado el paquete unzip en el sistema, tras comprobar esto, procedemos a la instalación:

curl -fsSL https://deno.land/install.sh | sh

Cuando finalice, editamos .bashrc para añadir lo siguiente:

export DENO_INSTALL="/$HOME/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"

Y recargamos la configuración:

source .bashrc

Finalmente podremos comprobar la versión instalada:

# deno --version
deno 2.2.1 (stable, release, x86_64-unknown-linux-gnu)
v8 13.4.114.9-rusty
typescript 5.7.3

Instalación de MongoDB

También necesitamos un servidor de bases de datos, para esta ocasión usaremos MongoDB. Así que tendremos que segur estos pasos:

Instalación de MongoDB en Ubuntu 24.04
MongoDB es un sistema de base de datos NoSQL, orientado a documentos y de código abierto.

También necesitaremos instalar mongosh, para ello descargaremos este otro fichero:

wget wget https://repo.mongodb.org/apt/ubuntu/dists/noble/mongodb-org/8.0/multiverse/binary-amd64/mongodb-mongosh-shared-openssl3_2.2.14_amd64.deb
dpkg -i mongodb-mongosh-shared-openssl3_2.2.14_amd64.deb

Tras la instalación, tenemos que editar el fichero de configuración de MongoDB que se encuentra en /etc/mongod.conf y añadimos lo siguiente:

replication:
  replSetName: rs01

Reiniciamos para aplicar cambios:

systemctl restart mongod.service

Luego tenemos que inicializar la replica con este comando:

mongosh --eval "printjson(rs.initiate())"

Salida del comando

{
info2: 'no configuration specified. Using a default configuration for the set',
me: '127.0.0.1:27017',
ok: 1
}

Más software necesario

Tras instalar MongoDB, Deno y NodeJS, también vamos a tener que instalar el siguiente software:

apt install build-essential graphicsmagick

Instalación de Rocket.chat

Nos descargamos la última versión de Rocket.chat con el siguiente comando:

curl -L https://releases.rocket.chat/latest/download -o /opt/rocket.chat.tgz

Lo descomprimimos:

tar -xzf /tmp/rocket.chat.tgz -C /tmp

Accedemos al directorio e instalamos las dependencias necesarias:

cd /tmp/bundle/programs/server && npm install

Luego modificamos el nombre del directorio:

 mv /tmp/bundle /opt/Rocket.Chat

Configuración de Rocket.chat

Ahora debemos de crear un usuario y asignar los permisos correctamente:

useradd -M rocketchat
usermod -L rocketchat
chown -R rocketchat:rocketchat /opt/Rocket.Chat

Creamos un fichero para gestionar Rocket.Chat con SystemD:

touch /lib/systemd/system/rocketchat.service

Con el siguiente contenido:

[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service

[Service]
ExecStart=/usr/bin/node /opt/Rocket.Chat/main.js
StandardOutput=journal
StandardError=journal
SyslogIdentifier=rocketchat
User=rocketchat
Environment=ROOT_URL=http://localhost:3000
Environment=PORT=3000
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01

[Install]
WantedBy=multi-user.target

Finalmente, habilitamos los servicios al arranque del sistema:

systemctl enable --now rocketchat

En este momento deberíamos de tener levantado un servicio escuchando por el puerto 3000:

# ss -tulpn | grep 3000
tcp   LISTEN 0      511                 0.0.0.0:3000       0.0.0.0:*    users:(("node",pid=31559,fd=94))

Configuración Nginx Proxy

Como que tenemos el servicio escuchando por el puerto 3000, podemos configurar un Nginx Proxy para acceder por dominio y SSL:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.

Tras esta configuración, podremos añadir con el dominio y continuar.

Acceso a través del navegador

Accederemos a la aplicación utilizando el dominio previamente configurado en Nginx Proxy.

Lo primero que haremos será configurar el acceso del administrador, estableciendo un nombre de usuario, una contraseña segura y una dirección de correo electrónico asociada para la recuperación de credenciales. Asegúrate de utilizar credenciales robustas para mejorar la seguridad del sistema. Una vez completados todos los campos requeridos, hacemos clic en "Next" para continuar con la configuración.

💡
Es posible que aparezca un aviso indicando que la configuración actual establece el acceso a través de localhost:3000, mientras que estamos intentando acceder utilizando un dominio. En este caso, el sistema nos preguntará si queremos actualizar la configuración para reflejar el dominio correcto. Seleccionamos la opción para confirmar el cambio y asegurarnos de que la aplicación funcione correctamente con el dominio configurado en el Nginx Proxy.

El segundo paso consiste en configurar la información de la organización. Aquí deberemos proporcionar detalles como el nombre de la organización, su descripción y otros datos relevantes según lo requiera la aplicación. Esta información puede ser utilizada para personalizar la instancia y adaptarla a las necesidades específicas de la empresa o proyecto. Una vez completados los campos necesarios, procedemos al siguiente paso haciendo clic en "Next".

El tercer paso consiste en configurar el workspace y registrarlo. En esta sección, debemos definir el nombre del espacio de trabajo, que servirá como identificador dentro de la plataforma.

Tras completar este paso, el sistema nos pedirá que confirmemos la dirección de correo electrónico proporcionada durante la configuración. Para ello, deberemos revisar nuestra bandeja de entrada y hacer clic en el enlace de verificación enviado por Rocket.Chat.

Una vez confirmado el correo, al volver a la aplicación, se cargará automáticamente la interfaz de Rocket.Chat, permitiéndonos acceder al panel principal y comenzar a utilizar la plataforma. Desde aquí, podremos personalizar aún más la configuración, invitar usuarios y gestionar los canales de comunicación.


Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación