Configurer et activer la fédération pour Rocketchat

Vous administrez une instance Liiibre et vous souhaitez que vos membres inscrit·es sur Rocketchat puissent communiquer avec des personnes utilisant une autre instance Rocketchat ? C'est par ici :)

Avant de commencer, plusieurs petites choses à savoir :

C'est une fonctionnalité BETA, voici les fonctionnalités disponibles pour le moment:
- Un membre d'une instance A peut discuter en direct et échangeavec un membre inscrit sur une instance B.
- Un membre d'une instance A peut inviter dans un canal privé un membre inscrit sur une instance B.

Limitations et bugs connus :
- Pour entrer en contact avec un membre d'une instance B, le membre sur une instance A doit connaître son pseudo pour le trouver. On ne peut pas consulter l'annuaire des membres d'une instance autre que celle sur laquelle on est soit-même inscrit·e.
- Un membre d'une instance A ne peut pas rejoindre un canal public qui serait ouvert sur une instance B.
- Un membre sur une instance B apparaitra toujours comme "connecté" pour un membre d'une instance A, et vice-versa, même s'il·elle est hors-ligne.

RocketChat a annoncé se concentrer à améliorer la fédération en 2021 lors de l'annonce de sa levée de fond. On peut donc espérer raisonnablement que ça évoluera dans le bon sens de ce côté.

- Vous devez avoir accès à la configuration de votre nom de domaine
Pour le bon fonctionnement de la fédération, il va falloir paramétrer des enregistrements DNS. Soyez donc prêt·e à pouvoir le faire lorsque vous vous lancez.

--------

Bien, si vous êtes prêt·e, voici les instructions à suivre. :)

/!\ Nous allons partir du principe pour ce guide que l'adresse du chat à fédérer est : chat.asso.org Donc dans votre cas il s'agira d'une autre adresse, celle à laquelle vous vous connectez pour accéder à l'instance RocketChat de votre organisation.

1. Aller dans le panneau d'administration de Rocketchat puis se rendre dans la section Fédération.
2. Activer la fédération.
3. Inscrire l'adresse de votre instance Rocketchat dans le champs "domaine". Dans notre cas chat.asso.org.


4. Assurez-vous que l'option DNS est bien celle choisie pour la partie "Méthode de découverte".

5. Nous allons devoir ensuite inscrire deux nouveaux enregistrements DNS dans la configuration de notre nom de domaine asso.org.

Gardez l'onglet de vos paramètres d'admin Rocketchat ouvert (nous allons en avoir besoin plus tard), ouvrez un autre onglet et connectez-vous à votre fournisseur de nom de domaine.

6. Ajouter un premier enregistrement de type SRV 2.0 avec les paramètres suivant :
 
• Service: _rocketchat
• Protocole: _https
• Nom: chat.mydomain.com
• Poids: 1
• Priorité: 1
• TTL: 300 secondes

• Cible: chat.asso.org  <- /!\ N'oubliez pas d'adapter ici en fonction de votre cas

• Port: 443


/!\ Tous les fournisseurs ne permettent pas forcément de remplir tous ces champs. Il se peut que vous n'ayez pas la possibilité de renseigner les champs Service et Protocole comme c'est le cas par exemple chez Gandi.

Dans ce cas, il faut entrer dans le champs Nom : _rocketchat._https.chat

Il se peut également que certains n'ajoutent pas automatiquement un . à la fin de votre cible, comme Gandi, dans ce cas il faut bien être vigilant à le préciser à la fin de votre cible, c'est à dire par exemple chat.asso.org.

Voici ce que ça donnerait chez Gandi par exemple :


7. Nous y sommes presque, nous allons ajouter le second enregistrement DNS de type TXT avec les paramètres suivant :

• Nom: rocketchat-public-key.chat.asso.org
• TTL: 300 secondes

• Texte: Recopier ici la clé publique indiquée dans vos paramètres Rocketchat présents dans la section Federation


Un exemple ici avec, à droite, l'interface du fournisseur de nom de domaine Gandi :


8. À ce stade, vos deux enregistrements DNS sont en place du côté des réglages de votre nom de domaine. Dans le section Federation du panneau admin Rocketchat, vous pouvez maintenant Sauvegarder les modifications.


9.  Et enfin, il est temps de Tester la configuration.


Et voilà ! Si tout s'est bien passé vous devriez obtenir une confirmation positive :)


Et maintenant que l'instance RocketChat est fédérée, ses membres vont pouvoir échanger avec des personnes inscrite·es sur d'autres serveurs fédérés. Magnifique, n'est-ce pas ? :)

Note: Si le test ne passe pas, ne paniquez pas et vérifiez bien vos enregistrements DNS. Il suffit de se tromper sur un . ou même sur un espace inutile qui se serait glissé lors de votre copier-coller de la clé publique pour que ça ne fonctionne pas. Les machines sont têtues. Bonne chance et n'hésitez pas à nous écrire si jamais ça ne passe toujours pas.

Note 2: Si besoin, voici la documentation officielle sur le sujet.