Instalar tu propio servidor de Rocket Chat con Docker parte 1

Hola a todos, hoy volvemos con Docker pero esta vez nos enfocaremos en el montaje de servicios, específicamente Rocket Chat, para los que aun no saben que es aquí les dejo una pequeña reseña:

Rocket Chat es una solución estupenda para Comunidades y Compañías que requieren de un servicio avanzado de Chat, hospedado en su propio Data Center, o en Servidores que controlan y administran.

Conocido esto proseguimos, lo primero es instalar Docker, si no sabe aun como hacerlo pase por aquí, si ya tenemos nuestro nodo listo, pasaremos a crear nuestro archivo docker-compose.yaml (no es necesario que este fichero tenga el nombre de docker-compose pero es más cómodo). Basado en la documentación oficial para montar Rocket Chat en Docker, en el originalmente nginx va independiente en el host.

Si tiene duda cuanto necesita para correr Rocket Chat estos son los requerimientos https://docs.rocket.chat/installation/minimum-requirements.

Para que exista mayor organización pondremos el proyecto de nuestro despliegue en una carpeta que la llamaremos rocket y dentro sub-carpetas donde se montaran los volúmenes de cada container, deberá quedar así:

Nota: los ficheros antes vistos, serán explicados en el articulo.

Antes de pasar al tema de las configuraciones crearemos el certificado, para este tutorial se usaron auto-firmados. Dentro de la carpeta nginx generamos el certificado, para esto debe tener instalado previamente openssl:

Sigue las indicaciones.

Consejo: es IMPORTANTE que el Common Name se establezca correctamente. Ingrese su nombre de dominio completo (FQDN) aquí o, si no tiene un FQDN, use su dirección IP pública. Por ejemplo, mi FQDN para el servidor de chat es chat.aldrock.net.

Cambiamos los permisos de certificate.key

Por ultimo generamos la clave ciptografica Diffie-Hellman (DH) de 2048-bits perteneciente al grupo DH 14.

Si desea usar Let’s Encrypt puede ver como hacerlo aquí.

Tenemos todo listo pasamos a crear el fichero docker-compose.yaml:

Nota: dentro de este fichero van todas las opciones de nuestro despliegue voy por partes y luego lo pongo entero al final.

El primer servicio(a partir de este momento los containers serán llamados servicios) a agregar sera web usando nginx:

antes de seguir con los servicios creamos el fichero nginx.conf:

este es el contenido de nginx.conf, es muy básico pero pueden mejorarlo:

Listo, entonces seguimos con el próximo servicio que sera rocketchat:

Ahora proseguimos con el servicio de mongodb:

Por ultimo el servicio de hubot:

Ya tenemos todo, ahora antes de darles el fichero en una sola parte les daré unos tips:

  • Para hacer mas fácil el trabajo de las imágenes y no tener que estar fajado con el tema VPN y mirrors Chinos, podemos usar DockerImageSave trae versiones para GNU/Linux, Windows y MacOS. Las imagenes son:
    • nginx:1.19-alpine
    • rocket.chat:latest
    • mongo:4.0
    • mongo:latest
    • rocketchat/hubot-rocketchat:latest
  • La imagen de MongoDB es la misma tanto para el servicio mongo como para mongo-init-replica, si ya se que dirán «pero no se llaman igual», lo único diferente es el tag con bajar cualquiera de las 2 y luego hacer docker image tag mongo:4.0 mongo:latest es suficiente, y no tienen que estar bajando +400MB 2 veces.

Dicho esto vemos que nos queda el docker-compose.yaml así:


Pasamos a desplegar el proyecto para luego hacer la instalación y configuración en la administración de Rocket Chat, para eso corremos:

Si no nos dio error, solo resta pasar al navegador y escribir la URL(en mi caso chat.aldrock.net), y pasar al procedimiento de instalación.

Lo primero sera dar tu información como administrador:

Seguidamente la información de tu organización, empresa:

Idioma, nombre del sitio y tipo de servidor, privado o público:

En este ultimo paso puedes escoger la primera opción, yo escogí la segunda para pruebas con certificados propios, recomiendo la primera:

Si llegaste hasta aquí todo esta bien y ya tienes Rocket Chat funcionado:

Así se ve la interfaz de usuario:

Como vieron no es tan difícil instalar Rocket Chat usando Docker, la verdad el paso mas complicado es preparar el docker-compose.yaml para que todo funcione sin problemas, ya levantar los servicios no pasa de 2 minutos. En la próxima parte tocare un poco mas el tema de configuración propia de la plataforma de chat y probaremos el cliente Desktop y el Móvil.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.4 / 5. Recuento de votos: 7

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Arian López Delgado 4 artículos
Sysadmin freelance, usuario de GNU/Linux desde 2009

4 comentarios

  1. Google Chrome 83.0.4103.116 Google Chrome 83.0.4103.116 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36

    Excelente Arian. Le propongo que en la próxima parte se toque la integración con LDAP.
    Gracias por el tuto.

  2. Google Chrome 83.0.4103.116 Google Chrome 83.0.4103.116 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36

    Se que no fue el propósito de este articulo muy bueno por cierto gracias a es aprendí otra variante de descargar imágenes docker pero pudieras hacer una comparación de este servicio con el openfire u otro similar.

    • Google Chrome 84.0.4147.89 Google Chrome 84.0.4147.89 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36

      Hola Pedro, sin duda alguna Rocket es una de las mejores soluciones de mensajería empresarial existentes actualmente, para no decir la mejor, tengo dos instancias ejecutandose hace más de dos años y he seguido de cerca el desarrollo este producto. Invito a todos que revisen el site oficial. El post está genial, pero ciertamente no está orientado a explicar sus funciones y puede que algunos no se animen a profundizar más en este sistema.
      Les comparto los principales enlaces y desde ya les digo que no se limiten a la integración.
      Sitio Oficial: https://rocket.chat/es/
      Docs: https://docs.rocket.chat/
      Github: https://github.com/RocketChat/

Responder a Alejandro David Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*