- Conduit est un serveur open source léger qui implémente la spécification Matrix, avec pour objectif de permettre de configurer son propre homeserver en quelques minutes
- Le projet est encore en bêta : il est déjà utilisable, mais il lui manque encore quelques petites fonctionnalités
- Matrix est un réseau ouvert pour des communications sécurisées et distribuées, où les utilisateurs de différents homeservers peuvent discuter entre eux
- Côté exploitation, il utilise une architecture en binaire unique avec une base de données intégrée, et s’appuie sur RocksDB comme base de données par défaut
- Il se veut une alternative plus légère et plus simple à installer que Synapse, ce qui peut en faire une option à considérer si vous avez besoin d’un serveur de chat auto-hébergé avec de faibles exigences système
Rôle de Conduit et de Matrix
- Conduit est un serveur open source léger qui implémente la spécification Matrix
- Son état actuel est bêta
- Il est déjà utilisable
- Certaines petites fonctionnalités manquent encore
- Matrix est un réseau ouvert pour des communications sécurisées et distribuées
- Tous les utilisateurs d’un homeserver Matrix peuvent discuter avec les utilisateurs d’autres serveurs Matrix
- En utilisant des bridges, il est également possible de communiquer avec des utilisateurs hors de Matrix, comme des communautés Discord
Installation et caractéristiques d’exploitation
- Le projet vise une configuration simple et de faibles exigences système, afin de permettre de mettre en place sa propre instance Conduit en quelques minutes
- Le serveur utilise une architecture en binaire unique avec une base de données intégrée
- La base de données par défaut est RocksDB
- Dans certains cas, il peut être plus rapide que d’autres implémentations de serveur
Liens associés et soutien
-
Liens du projet
- Website: https://conduit.rs
- Git and Documentation: https://gitlab.com/famedly/conduit
- Chat: #conduit:ahimsa.chat
-
Informations sur le soutien et l’exploitation
- Liberapay: https://liberapay.com/timokoesters/
- Bitcoin:
bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n - L’hébergement du serveur
conduit.rsest fourni par la Matrix.org Foundation - Conduit a reçu un soutien de https://manualsbrain.com/ en 2023
- En 2021, le projet a reçu un financement de 6 mois du BMBF allemand, avec le FKZ
01lS21S11
1 commentaires
Avis de Hacker News
J’exploite depuis quelques années une instance Conduit auto-hébergée : son point fort est qu’elle est facile à installer et à utiliser, son point faible est que c’est encore un logiciel en bêta.
Malgré tout, elle m’a plutôt bien convenu : je l’ai utilisée de façon stable pour discuter avec quelques amis, ainsi que dans des salons un peu plus grands auxquels je participe.
L’auteur travaille aussi sur Veloren, un autre projet Rust intéressant : https://veloren.net
Après être entré dans le lobby et avoir joué une trentaine de minutes, j’ai découvert qu’on pouvait continuer à dézoomer depuis le personnage avec la molette. On dépassait l’échelle d’un action-RPG classique, puis celle d’une minimap, jusqu’à monter au-dessus des nuages sans baisse de framerate ; c’était assez hallucinant.
Je ne sais pas à quel point le projet est bien maintenu aujourd’hui, mais l’ossature pour en faire un RPG solide semble largement là.
Pendant longtemps, la prise en charge des Spaces manquait, mais elle vient d’arriver dans les builds de développement et elle est excellente. J’ai déjà mis mon service à jour et tout fonctionne comme prévu.
Ce serait bien d’avoir un sous-protocole limité au chat sécurisé.
Je suis le seul utilisateur de mon serveur et je ne suis pas dans des salons très actifs, mais jusqu’ici l’impact sur les performances d’un petit VPS est négligeable.
Bonjour, je suis Timo, j’ai lancé le projet Conduit il y a quelques années. N’hésitez pas si vous avez des questions.
Je me demande s’il n’y a pas d’inquiétudes sur l’avenir du projet une fois tes études terminées. Jusqu’ici, Timo semble être de très loin le contributeur le plus actif, donc je crains que le projet dépende encore fortement du temps que tu peux y consacrer.
Je me demande aussi par quoi un développeur Rust/Linux devrait commencer pour apporter une première contribution significative à Conduit. Il y a 155 tickets ouverts sur GitLab et, du point de vue utilisateur, je ne vois pas de problème évident qui saute aux yeux, donc je ne sais pas par où commencer.
Si Dortmund ou le télétravail ne sont pas indispensables, n’hésite pas à me contacter, et j’espère que tu trouveras un bon poste.
Je me demande si Conduit prévoit aussi de devenir P2P dans un avenir proche.
https://github.com/matrix-org/pinecone
https://archive.fosdem.org/2022/schedule/event/matrix_p2p_pi...
J’ai aussi mon avis après avoir écrit des bots, mais le point de vue d’un mainteneur d’implémentation de homeserver m’intéresse tout particulièrement.
Il n’est pas clair si l’objectif est d’être un serveur Matrix complet, ou de viser un sous-ensemble précis en termes d’échelle ou de fonctionnalités.
Ce qui ne m’a pas plu avec Matrix, c’est que j’avais un serveur pour 3 ou 4 utilisateurs, et en quelques mois la base de données était montée à environ 80 Go.
En additionnant le contenu envoyé par les utilisateurs et le texte, on devait être autour de 2 à 3 Go. Je me demande s’il existe un moyen de supprimer, par exemple à partir de deux semaines d’ancienneté, les données mises en cache depuis d’anciens serveurs, puis de les récupérer à nouveau si nécessaire.
https://matrix-org.github.io/synapse/v1.85/admin_api/media_a...
Mon serveur n’est pas fédéré, mais il est assez actif, et je le traite comme un espace temporaire. Je l’ai configuré pour que le texte comme les médias de plus d’une à deux semaines soient récupérés automatiquement.
https://levans.fr/shrink-synapse-database.html
https://github.com/matrix-org/rust-synapse-compress-state
Beaucoup de MUC ont pour valeur par défaut les 20 derniers messages, ce qui suffit généralement à comprendre le fil de la conversation et à s’y insérer. Le coût d’exploitation de mon serveur était aussi assez faible.
Je me demande s’il existe un moyen de migrer de Synapse vers Conduit. Difficile de justifier de perdre six ans d’historique de conversations.
Dans tous les cas, impossible de savoir combien de temps cela prendra.
La seule chose que j’ai trouvée est le ticket de suivi pour la migration Synapse -> Dendrite.
https://github.com/matrix-org/dendrite/issues/1705
Article lié : Conduit Beta – Matrix chat server - https://news.ycombinator.com/item?id=28385840 - septembre 2021, 69 commentaires
Pourquoi utiliser Matrix alors qu’il existe XMPP ? Quelqu’un peut l’expliquer ?
C’est une solution de chat moderne avec les fonctionnalités que les gens attendent de Slack et Discord, et il existe de nombreux bridges qui évitent d’avoir à utiliser plusieurs clients de chat pour différents protocoles.
Il y a beaucoup d’excellentes communautés, le chat vocal est plutôt bon, c’est open source et auto-hébergeable. Je suis curieux de savoir ce que XMPP a de bien.
XMPP est structurellement plus proche de l’e-mail, avec des options comme la présence en ligne, « en train d’écrire » ou la dernière connexion, et de grands services de messagerie comme WhatsApp utilisent souvent leurs propres variantes.
XMPP est le seul système que l’on peut utiliser, et qu’il est acceptable d’utiliser, partout où l’e-mail est utilisé. Il est aussi moderne que Matrix, mais repose simplement sur une autre conception du stockage et de la distribution des données.
Comparaison : https://www.freie-messenger.de/en/systemvergleich/xmpp-matri...
XMPP est excellent pour l’objectif pour lequel il a été conçu, mais il est mal adapté au mobile, aux fortes pertes de paquets et aux connexions à forte latence. Il est verbeux et consomme beaucoup de bande passante, ce qui n’est pas idéal dans des environnements où les données et la batterie sont limitées, et il n’avait pas non plus été pensé à l’origine pour la réalité d’une personne utilisant plusieurs appareils.
Le transfert de fichiers a aussi longtemps été mauvais, avec un mélange de méthodes incompatibles selon les clients et les types de réseaux.
Le trop grand nombre de XEP n’aide pas non plus l’écosystème. Quand il y a trop d’extensions optionnelles, l’interopérabilité en souffre. Les fonctionnalités attendues d’un chat moderne dépassent le périmètre pour lequel XMPP a été conçu, et les XEP ont tenté de les rafistoler, avec des résultats mitigés.
À l’époque de sa conception, c’était un choix technique naturel, mais il existe aujourd’hui beaucoup de meilleures options. Les développeurs choisissent généralement les technologies qui rendent leur travail plus agréable, donc davantage de choses avancent du côté des nouvelles plateformes. Par exemple, un autre article HN aujourd’hui expliquait qu’un parseur XML standard peut ne pas suffire et qu’il faut un parseur XML très avancé : https://news.ycombinator.com/item?id=36930196
Matrix définit plus clairement l’ensemble des fonctionnalités importantes, si bien qu’avec un client compatible on peut s’attendre à une implémentation uniforme, sans surprises.
Quand on rejoint un salon sur un autre serveur Matrix, son propre serveur commence à en conserver une copie, que l’on peut ensuite utiliser comme on le souhaite. Même si j’éteins mon serveur pendant une journée puis le rallume, il se resynchronise.
Je ne sais pas si XMPP fonctionne ainsi, mais je l’ai toujours vu comme quelque chose qui envoie des messages à la manière de l’e-mail, avec quelques tentatives de relance. Je ne sais pas non plus très bien comment les informations éphémères comme l’état courant, les accusés de lecture ou les notifications de saisie fonctionnent entre serveurs.
Conduit est un projet vraiment chouette, mais il semble difficile de suivre son état et son avancement sans lire tous les commits et toutes les issues.
Les progrès récents de la fonctionnalité Sliding Sync intégrée sont prometteurs, car cela rendra le déploiement beaucoup plus simple.
Quelqu’un sait ce qui fait que, dans Matrix, le dernier message n’est parfois pas déchiffré tant qu’un nouveau dernier message n’a pas été envoyé, ou que seuls certains messages isolés échouent à être déchiffrés alors que les messages autour le sont ?
Si tous mes clients ne sont pas connectés en même temps, et que c’est pareil côté expéditeur, ils ne peuvent pas échanger leurs clés entre eux. Chaque client ne peut alors déchiffrer que la partie des messages pour laquelle il possède la clé. De plus, les clients n’échangent des clés qu’avec d’autres clients vérifiés.
En regardant la propriété
session_iddans le JSON brut du message, on peut voir que tous les messages d’une session donnée, c’est-à-dire pendant que l’expéditeur était connecté sur un client, sont soit tous déchiffrés, soit pas du tout. Dans le premier cas, cela signifie que l’on possède la clé de cette session ; dans le second, qu’on ne l’a pas encore reçue.J’ai peut-être raté quelque chose, mais la page est très minimaliste et semble partir du principe qu’on sait déjà ce qu’est Matrix et comment s’en servir.
Elle consacre beaucoup de temps aux différents modes d’installation, mais je ne vois pas d’explication sur l’utilisation du serveur lui-même, par exemple côté client.
Il faut probablement utiliser Element.
Je pense que la page de Conduit fait ce qu’il faut. Ce n’est pas tant qu’elle suppose qu’on sait ce qu’est Matrix ; elle suppose plutôt qu’à défaut, on a suffisamment de compréhension pour cliquer sur le lien.
Personnellement, j’ai apprécié qu’elle soit courte, qu’elle montre simplement le problème qu’elle cherche à résoudre et que le vrai appel à l’action, le lien vers le dépôt Git, apparaisse rapidement.
Il est aussi possible que la page d’accueil elle-même ait été mise à jour avec du nouveau contenu depuis le billet d’origine.
Matrix est un réseau ouvert pour des communications sécurisées et décentralisées. Les utilisateurs de n’importe quel homeserver Matrix peuvent discuter avec ceux de n’importe quel autre serveur Matrix. Ils peuvent aussi communiquer, via des bridges, avec des utilisateurs hors de Matrix, par exemple des communautés Discord.
Et je ne vois pas d’informations d’installation.
Conduit est un logiciel serveur, pas une application destinée aux utilisateurs finaux.
Informations supplémentaires sur Matrix : https://www.freie-messenger.de/en/matrix
Je me demande quel est le rapport entre Conduit et Synapse.
Dendrite est testé avec https://github.com/matrix-org/sytest et il y a même des issues du genre « est-ce encore Synapse ? », mais je ne trouve pas de discussion à ce sujet pour Conduit. Je ne vois même pas de discussion expliquant pourquoi il ne voudrait pas devenir comme Synapse.
Les avantages mis en avant sont sa légèreté et sa facilité d’installation, ce qui implique que Synapse ne l’est pas. Plus important encore, il a servi de cas de validation pour la spécification serveur Matrix et a pas mal contribué, au fil des années, à clarifier les zones ambiguës.
Conduit pourrait peut-être réutiliser une partie de ce travail, mais de mémoire Conduit utilise GitLab tandis que Dendrite utilise GitHub Actions.
À part cela, Conduit ne semble pas, pour l’instant, viser un remplacement drop-in de Synapse. La dernière fois que j’ai regardé dans les salons Matrix, il restait plusieurs lacunes fonctionnelles notables.