Tu propio servidor de chat autoalojado e independiente
En éste búsqueda de querer seguir despegándome de los servicios privativos y cerrados me llamó la atención un servicio libre de mensajería instantánea. Hablo de Rocket.Chat
La idea de detrás de Rocket.Chat es poder tener un servicio similar a Slack o a Discord (salvando las distancias) pero que se puede autoalojar teniendo uno el control de lo que se puede hacer y sobre todo sabiendo que los datos encriptados realmente y nadie está viéndolos.
Ventajas y Desventajas:
👍Ventajas:
- Código abierto y personalizable: Rocket.Chat permite a las organizaciones adaptar la plataforma a sus necesidades específicas, incluyendo la posibilidad de cambiar la marca y la integración con otras herramientas. Esto ofrece una mayor flexibilidad y control sobre la comunicación interna.
- Seguridad y privacidad: Ofrece cifrado de extremo a extremo y opciones avanzadas de permisos para proteger la privacidad de las comunicaciones. Además, permite la implementación en la nube, en las instalaciones o en redes privadas, lo que es crucial para organizaciones con altos estándares de seguridad o con requerimientos de soberanía digital.
- Funcionalidades avanzadas: Incluye características como videoconferencias (con Jitsi), notificaciones integradas, chat en la aplicación, integración con otros sistemas y la posibilidad de crear bots.
- Escalabilidad: Rocket.Chat puede adaptarse al crecimiento de la organización, tanto en términos de número de usuarios como de volumen de datos.
- Comunidad y soporte: Cuenta con una comunidad activa y documentación extensa, lo que facilita la resolución de problemas y el aprendizaje sobre la plataforma.
👎Desventajas:
- Complejidad en la gestión de usuarios: La administración de usuarios y permisos puede ser compleja, especialmente para organizaciones grandes con múltiples equipos y roles.
- Limitaciones en la aplicación móvil: Algunas funciones pueden no estar disponibles o funcionar correctamente en la aplicación móvil, como la función de votación en encuestas.
- Aspectos visuales de la interfaz: La interfaz de usuario, aunque similar a Slack, puede requerir mejoras en ciertas áreas, como la función de citar mensajes.
- Posibles problemas de notificaciones: En Windows, las notificaciones pueden no aparecer correctamente o requerir acciones adicionales para activarlas.
- Falta de soporte para hilos de conversación: A diferencia de otras plataformas, Rocket.Chat no ofrece soporte para hilos de conversación, lo que puede dificultar la organización de discusiones complejas.
- Integraciones limitadas: Aunque ofrece integración con algunas herramientas, puede no ser tan sencilla o completa como en otras plataformas, como con SharePoint.
- Dificultad en la búsqueda de información: La búsqueda de mensajes o información en canales con muchos mensajes puede resultar complicada.
Instalando via Docker Compose:
La web oficial de Rocket.Chat indica cómo hacer la instalación directamente del servicio de una manera muy sencilla. Solo hay que descargar el archivo docker-compose.yml y su archivo correspondiente de configuración .env con las variables necesarias a pasarle al contenedor.
El docker-compose.yml queda así:
volumes:
mongodb_data: { driver: local }
services:
rocketchat:
image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-latest}
container_name: "rocketchat"
restart: always
labels:
traefik.enable: "false"
traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`)
traefik.http.routers.rocketchat.tls: "true"
traefik.http.routers.rocketchat.entrypoints: https
traefik.http.routers.rocketchat.tls.certresolver: le
environment:
MONGO_URL: mongodb://mongodb:27017/rocketchat?replicaSet=rs0
ROOT_URL: ${ROOT_URL:-http://localhost:3000}
PORT: ${PORT:-3000}
DEPLOY_METHOD: docker
DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-}
REG_TOKEN: ${REG_TOKEN:-}
depends_on:
- mongodb
expose:
- ${PORT:-3000}
ports:
- "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"
mongodb:
image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-6.0}
container_name: "rocket_chat_db"
restart: always
volumes:
- ${MONGODB_HOST_PATH:-mongodb_data}:/bitnami/mongodb
environment:
MONGODB_REPLICA_SET_MODE: primary
MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb}
MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb}
MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}
El archivo se deja así directamente, yo no le toqué nada ya que todo lo que es configuración va en el archivo .env a saber:
### Rocket.Chat configuration
# Rocket.Chat version
# see:- https://github.com/RocketChat/Rocket.Chat/releases
RELEASE=7.8.1
# MongoDB endpoint (include ?replicaSet= parameter)
#MONGO_URL=
# MongoDB endpoint to the local database
#MONGO_OPLOG_URL=
# IP to bind the process to
BIND_IP=192.168.0.50 # LA IP DE TU EQUIPO
# URL used to access your Rocket.Chat instance
ROOT_URL=http://dominio.com # EL DOMINIO EN EL QUE TENDRIAS EL SERVIDOR
# Port Rocket.Chat runs on (in-container)
PORT=3000 # NO TOCAR ESTE PUERTO ES PARA QUE LO USE INTERNO EL CONTENEDOR
# Port on the host to bind to
HOST_PORT=8090 # ESTE ES EL PUERTO LOCAL PARA INGRESAR AL SERVICIO, ESTE SI SE PUEDE MODIFICAR
### MongoDB configuration
# MongoDB version/image tag
#MONGODB_VERSION=
# See:- https://hub.docker.com/r/bitnami/mongodb
# MongoDB local host path
#chown -R 1001:1001 ./data/mongodb
MONGODB_HOST_PATH="./data/mongodb" # DIRECTORIO LOCAL PARA GUARDAR LA BASE DE DATOS DE MANERA PERSISTENTE
### Traefik config (if enabled)
# Traefik version/image tag
#TRAEFIK_RELEASE=
# Domain for https (change ROOT_URL & BIND_IP accordingly)
#DOMAIN=
# Email for certificate notifications
#LETSENCRYPT_EMAIL=
Por mi parte no uso Traefik por lo que esa parte de la configuración no la uso igual que en el docker-compose.yml la opción traefik.enable la tengo en "false".
Una vez que tenemos todo configurado solo tenemos que levantar el contenedor con:
docker compose up -d

Y listo, nuestro propio servidor de mensajeria está listo!! Aprovecho para invitar a nuestro propio servidor de Rocket.Chat, solo agregando la URL del mismo: https://chat.neosite.com.ar

Te esperamos a charlar y crear comunidad, porque de eso se trata.