Quiero instalar la versión comunitaria de Rocket.Chat en mi sitio y luego usar la integración de chat de Discourse para Rocket.Chat. Creé esta guía a través de una discusión con OpenAI O3. ¿Alguien puede confirmar si estos pasos son correctos para implementar la instancia de Docker Rocket.Chat? Solo intento no causar consecuencias imprevistas por no saber cómo hacerlo correctamente.
¡Gracias!
Paso 1: Configura tu DNS en Cloudflare
- Inicia sesión en Cloudflare y agrega un registro A (o CNAME) para chat.website.com que apunte a la dirección IP de tu servidor.
- Asegúrate de que el proxy de Cloudflare esté habilitado si deseas usar sus funciones de seguridad y rendimiento.
Paso 2: Configura la implementación de Rocket.Chat
- Conéctate a tu servidor por SSH y crea un directorio para Rocket.Chat (si aún no lo has hecho):
bash
Copiar
mkdir -p /opt/rocket.chat
cd /opt/rocket.chat - Crea un archivo docker-compose.yml en este directorio con el siguiente contenido:
yaml
Copiar
version: “3.8”
services:
rocketchat:
image: rocket.chat:latest
restart: unless-stopped
environment:
- PORT=3000
- ROOT_URL=http://chat.website.com
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- MONGO_OPLOG_URL=mongodb://mongo:27017/local?replicaSet=rs0
depends_on:
- mongo
ports:
- “3000:3000”
volumes:
- rocketchat_data:/app/uploads
networks:
- common
mongo:
image: mongo:4.0
restart: unless-stopped
command: mongod --smallfiles --oplogSize 128 --replSet rs0
volumes:
- mongo_data:/data/db
networks:
- common
volumes:
rocketchat_data:
mongo_data:
networks:
common:
external: false
Notas:
• ROOT_URL se establece en tu subdominio (usando HTTP aquí porque Cloudflare y Caddy manejarán TLS externamente).
• Ambos servicios están conectados a una red personalizada llamada common. Esto asegura que tu contenedor Caddy pueda resolver el nombre del servicio rocketchat al reenviar solicitudes.
Paso 3: Inicializa el conjunto de réplicas de MongoDB
- Inicia la pila de Rocket.Chat:
bash
Copiar
docker-compose up -d - Obtén el ID o nombre del contenedor de MongoDB:
bash
Copiar
docker ps - Conéctate a MongoDB:
bash
Copiar
docker exec -it <mongo_container_id_or_name> mongo - En el shell de Mongo, ejecuta:
js
Copiar
rs.initiate() - Sal del shell con exit.
Este paso inicializa el conjunto de réplicas que Rocket.Chat utiliza para operaciones en tiempo real.
Paso 4: Actualiza tu configuración de Caddy
Dado que Caddy ya se está ejecutando en su propio contenedor, actualiza su Caddyfile para incluir un nuevo bloque de sitio para Rocket.Chat. Edita tu Caddyfile (por ejemplo, ubicado en /ruta/a/tu/Caddyfile) y agrega:
caddy
Copiar
http://chat.website.com {
reverse_proxy rocketchat:3000
}
Importante:
• La directiva reverse_proxy utiliza el nombre del servicio rocketchat; esto requiere que el contenedor Caddy esté en la misma red Docker que los contenedores Rocket.Chat.
• Si tu contenedor Caddy se gestiona a través de Docker Compose, puedes conectarlo a la misma red common. Por ejemplo, en el archivo docker-compose de tu contenedor Caddy, agrega:
yaml
Copiar
networks:
- common
Y asegúrate de que la red esté declarada (o conecta el contenedor manualmente).
Dado que estás usando Cloudflare para DNS y Let’s Encrypt, y ya tienes tu configuración funcionando sin una directiva de correo electrónico, no se necesitan cambios con respecto a TLS.
Paso 5: Recarga Caddy y verifica la configuración
- Recarga Caddy:
Si estás ejecutando Caddy a través de Docker, reinicia el contenedor para que tome la nueva configuración del Caddyfile:
bash
Copiar
docker restart <caddy_container_name> - Prueba tu implementación:
Abre un navegador web y navega a http://chat.website.com. (Cloudflare administrará el certificado HTTPS). Deberías ver la página de configuración de Rocket.Chat. - Completa la configuración:
Sigue las instrucciones en pantalla para finalizar la configuración de Rocket.Chat.
Personalización adicional
Si necesitas agregar más variables de entorno (por ejemplo, configuraciones SMTP o volúmenes personalizados) o tienes requisitos de red específicos, házmelo saber para que la guía pueda ser refinada aún más.
Esta guía debería ayudarte a implementar Rocket.Chat Community Edition con Docker Compose en un subdominio administrado por Cloudflare, utilizando Caddy (en su propio contenedor) como proxy inverso.