Je souhaite installer la version communautaire de Rocket.Chat sur mon site, puis utiliser l’intégration Discourse Chat pour Rocket.Chat. J’ai créé ce guide suite à une discussion avec OpenAI O3. Quelqu’un peut-il confirmer que les étapes suivantes sont correctes pour déployer l’instance Docker de Rocket.Chat ? J’essaie juste de ne pas causer de conséquences imprévues par manque de savoir-faire.
Merci !
Étape 1 : Configurer votre DNS dans Cloudflare
- Connectez-vous à Cloudflare et ajoutez un enregistrement A (ou CNAME) pour chat.website.com pointant vers l’adresse IP de votre serveur.
- Assurez-vous que le proxy Cloudflare est activé si vous souhaitez utiliser ses fonctionnalités de sécurité et de performance.
Étape 2 : Configurer le déploiement de Rocket.Chat
- Connectez-vous à votre serveur via SSH et créez un répertoire pour Rocket.Chat (si ce n’est pas déjà fait) :
bash
Copier
mkdir -p /opt/rocket.chat
cd /opt/rocket.chat - Créez un fichier docker-compose.yml dans ce répertoire avec le contenu suivant :
yaml
Copier
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
Notes :
• Le ROOT_URL est défini sur votre sous-domaine (en utilisant HTTP ici car Cloudflare et Caddy géreront le TLS en externe).
• Les deux services sont connectés à un réseau personnalisé nommé common. Cela garantit que votre conteneur Caddy peut résoudre le nom de service rocketchat lors du proxy des requêtes.
Étape 3 : Initialiser le jeu de réplicas MongoDB
- Démarrez la pile Rocket.Chat :
bash
Copier
docker-compose up -d - Obtenez l’ID ou le nom du conteneur pour MongoDB :
bash
Copier
docker ps - Connectez-vous à MongoDB :
bash
Copier
docker exec -it <mongo_container_id_or_name> mongo - Dans le shell Mongo, exécutez :
js
Copier
rs.initiate() - Quittez le shell avec exit.
Cette étape initialise le jeu de réplicas que Rocket.Chat utilise pour les opérations en temps réel.
Étape 4 : Mettre à jour votre configuration Caddy
Étant donné que Caddy s’exécute déjà dans son propre conteneur, mettez à jour son Caddyfile pour inclure un nouveau bloc de site pour Rocket.Chat. Modifiez votre Caddyfile (par exemple, situé à /chemin/vers/votre/Caddyfile) et ajoutez :
caddy
Copier
http://chat.website.com {
reverse_proxy rocketchat:3000
}
Important :
• La directive reverse_proxy utilise le nom de service rocketchat — cela nécessite que le conteneur Caddy soit sur le même réseau Docker que les conteneurs Rocket.Chat.
• Si votre conteneur Caddy est géré via Docker Compose, vous pouvez le connecter au même réseau common. Par exemple, dans le fichier docker-compose de votre conteneur Caddy, ajoutez :
yaml
Copier
networks:
- common
Et assurez-vous que le réseau est déclaré (ou connectez manuellement le conteneur).
Étant donné que vous utilisez Cloudflare pour le DNS et Let’s Encrypt, et que vous avez déjà votre configuration fonctionnelle sans directive d’e-mail, aucune modification n’est nécessaire concernant le TLS.
Étape 5 : Recharger Caddy et vérifier la configuration
- Recharger Caddy :
Si vous exécutez Caddy via Docker, redémarrez le conteneur afin qu’il prenne en compte la nouvelle configuration du Caddyfile :
bash
Copier
docker restart <caddy_container_name> - Tester votre déploiement :
Ouvrez un navigateur Web et accédez à http://chat.website.com. (Cloudflare gérera le certificat HTTPS.) Vous devriez voir la page de configuration de Rocket.Chat. - Terminer la configuration :
Suivez les instructions à l’écran pour terminer la configuration de Rocket.Chat.
Personnalisation supplémentaire
Si vous avez besoin d’ajouter d’autres variables d’environnement (par exemple, des paramètres SMTP ou des volumes personnalisés) ou si vous avez des exigences réseau spécifiques, faites-le moi savoir afin que le guide puisse être affiné davantage.
Ce guide devrait vous aider à déployer Rocket.Chat Community Edition avec Docker Compose sur un sous-domaine géré par Cloudflare, en utilisant Caddy (dans son propre conteneur) comme proxy inverse.