Matterbridge est un logiciel servant de passerelle (ou bridge)entre plusieurs plateformes de communication : son rôle est de relayer les messages dans un canal de discussion vers le canal d’une autre plateforme. Par exemple, il peut relayer un message envoyé depuis Discord sur Matrix ou bien Slack, XMPP ou WhatsApp, et inversement, rendant ainsi intéropérable des plateformes qui ne l’étaient pas auparavant entre elles.
La liste des plateformes de communication supportées est disponible sur le README du projet Matterbridge.
L’adoption de Matterbridge au sein de l’association remonte à l’ouverture du service Matrix (courant 2019-2020), dans la volonté de permettre une connexion entre les canaux internes de La Contre-Voie et le canal Slack de l’association (sur le groupe Slack de l’école dans laquelle La Contre-Voie exerçait en tant qu’association étudiante).
Son usage s’est marginalement développé en 2020 pour créer des canaux synchronisés entre les différentes associations étudiantes de l’école et ainsi favorisé l’organisation d’activités inter-associatives, initiative qui n’a pas bien fonctionné.
À partir de septembre 2022, Matterbridge est utilisé pour connecter les quatre canaux du groupe Discord de La Contre-Voie avec le service Matrix.
Écrit en Go, Matterbridge se présente comme un binaire autonome et par conséquent simple à déployer. Nous utilisons l’image officielle 42wim/matterbridge
que nous modifions légèrement pour y ajouter son fichier de configuration, ce qui nous permet de ne pas avoir besoin de créer un nouveau volume qui ne contiendrait que sa configuration.
Retrouvez sa configuration dans notre dépôt Core.
Pour connecter Matterbridge aux canaux d’une plateforme, suivez les instructions disponibles sur son wiki.
Le meilleur moyen de tester le fonctionnement du bridge est d’écrire dans un canal connecté à Matterbridge et de voir si le message est bien relayé, puis d’essayer d’écrire également dans le canal de l’autre côté du bridge.
Il convient de s’assurer que Matterbridge possède bien les droits en lecture et en écriture sur lesdits canaux, ainsi que les droits d’utiliser des webhooks le cas échéant.
Les journaux de Matterbridge sont généralement assez explicites sur d’éventuels problèmes de configuration ou d’erreurs de connexion.
Pour faire fonctionner 9 bridges sur 5 comptes différents (en date de juillet 2023), notre service Matterbridge consomme en moyenne 40 Mo de RAM et très peu de réseau.
Matterbridge utilise de nombreuses librairies pour relayer les messages. Ces projets externes ne sont pas maintenus par l’équipe de Matterbridge et peuvent comporetr des défauts ou des fonctionnalités manuquantes, peuvent tarder à se mettre à jour lorsqu’une route API est modifiée sur une plateforme de messagerie…
De plus, certaines fonctionnalités peuvent manquer : le « puppeting », qui offre une expérience de synchronisation de messages plutôt transparente, n’est disponible qu’avec certaines plateformes. L’affichage des threads et leur synchronisation entre plusieurs plateformes peut également faire défaut. Les émoji réactions ne sont pas relayés.
La mise en place de bridges avec les plateformes propriétaires pourrait se retrouver entravée par la volonté de ses plateformes d’empêcher l’interopérabilité pour éviter que ses utilisateur·ices quittent leur service.
Sur Discord, les bots sont globalement assez limités dans leurs fonctionnalités par rapport aux comptes classiques, et l’utilisation de « selfbots » (faire tourner un bot sur un compte classique) est sévèrement réprimée, passible de ban.
Du côté de Slack, les selfbots qui utilisent les « legacy tokens » sont en voie de dépréciation, pour être remplacés par des bots qui ne peuvent être ajoutés qu’avec l’autorisation du propriétaire du groupe de travail, ce qui peut s’avérer assez limitant.
D’autres plateformes comme Facebook Messenger ou Signal pourraient complexifier l’usage des bridges à terme. Ce problème ne se pose généralement pas pour les plateformes autohébergées et libres comme Mattermost ou Matrix.
Il arrive que notre Matterbridge se heurte à des rate limits, en particulier de la part de plateformes propriétaires comme Slack. Slack va tout simplement refuser que Matterbridge se connecte au service pour quelques minutes, ce qui nécessite de redémarrer le service car Matterbridge ne va pas réessayer de se connecter de lui-même.
De la même manière, il peut arriver que Matterbridge perde la connexion à une plateforme pour une raison inconnue, auquel cas il n’essaye pas de s’y reconnecter. Seul un redémarrage du conteneur peut résoudre ce problème.
Pour mettre à jour Matterbridge, il suffit de télécharger la nouvelle version de l’image, reconstruire l’image localement pour y intégrer le fichier de configuration, puis redémarrer le conteneur en veillant à ce que Matterbridge réussisse bien à se connecter à tous les canaux, ce qui est généralement indiqué dans lels logs.
Matterbridge est un logiciel de bridge plutôt généraliste : ses développeur·euses essayent d’intégrer le plus de plateformes de messagerie possibles. Par conséquent, il manque de flexibilité quant à l’usage de plateformes spécifiques, et ne supporte pas toujours correctement certaines fonctionnalités (threads, puppeting, DMs, etc).
Il pourrait être envisageable de migrer vers des logiciels de bridges qui se spécialisent dans la connexion de deux plateformes spécifiques (ex.: Matrix et Discord), ce qui correspondrait peut-être plus à notre besoin.
Enfin, un dispositif existe dans le fonctionnement de Matrix pour intégrer les bridges, sous le nom de « appservices ». Cette intégration n’est pour le moment pas permise par Matterbridge.
Un logiciel de bridge Matrix <-> XMPP pourrait être déployé pour communiquer avec des personnes sur XMPP sans passer par les bridges de l’instance principale (matrix.org). Il pourrait également prendre en charge le relai de DMs.