Back
Featured image of post Le Bridge Telegram pour Matrix

Le Bridge Telegram pour Matrix

L'installation de Matrix sur NixOS avec ses Bridges

Matrix est un protocole de messagerie instantannée. La suite de ce ticket considère que vous connaissez les bases et notamment le glossaire. Je vous conseille fortement d’aller lire le tutoriel précédent : Matrix sur NixOS

Telegram Messenger

Gitlab

Le bridge de Telegram supporte quasiment toutes les fonctionnalités. La configuration est quasiment la même que pour Mautrix Facebook hormis un léger changement au niveau de la configuration d’une API.
Je n’ai volontairement pas suivi la configuration proposé par NixOS car je n’ai jamais réussi à la faire fonctionner, et je souhaite avoir une installation cohérente. Comme NixOS ne propose pas de module pour Mautrix Facebook, Mautrix Telegram et Mautrix Signal, je préfère les configurer de la même manière.

Voici la configuration que je préconise :

{ config, lib, ... }:

let
  bridgeFolder = "/var/lib/mautrix-telegram";

  toListIfExists = path:
    if (lib.pathExists path) then
      [ path ]
    else
      [];
in {
  # Telegram bridge
  virtualisation.oci-containers.containers.mautrix-telegram = {
    image = "dock.mau.dev/tulir/mautrix-telegram";
    extraOptions = [ "--network=host" ];
    volumes = [ "${bridgeFolder}/data:/data" ];
  };

  # Add configuration to Matrix server
  services.matrix-synapse.app_service_config_files = toListIfExists "${bridgeFolder}/data/registration.yaml";
}

Si on résume, toutes les données sont stockées dans /var/lib/mautrix-telegram. On ajoute l’image docker qui permet de lancer le bridge.

On va dès maintenant le configurer en éditant en tant que root le fichier /var/lib/mautrix-telegram/data/config.yaml…​ Enfin faite votre nixos-rebuild switch pour lancer le bridge.

Dans un premier temps, il faut faire une application sur le site de Telegram pour récupérer un ID et un hash qui serviront au bridge pour interagir avec l’API. Pour ce faire, allez sur cette page d’aide de Telegram et suivez les instructions pour récupérer le api_id et le api_hash.

On va changer différentes clés dans le fichier, je vais lister ce les clés qui ont changé :

homeserver:
    address: http://localhost:8008
    domain: server_name
    verify_ssl: false

telegram:
    api_id: #ApiId#
    api_hash: #ApiHash#

bridge:
    permissions:
        "*": user
        "@pseudo:server_name": admin
  • homeserver.address : Votre serveur Matrix, pas besoin de passer par internet, il est disponible en local

  • homeserver.domain : C’est le server_name, vous devez maintenance savoir ce que c’est :)

  • homeserver.verify_ssl : Comme on est dans une boucle locale, par besoin de vérifier le SSL

  • telegram.api_id : ID fourni par Telegram sur le site

  • telegram.api_hash : Hash fourni par Telegram sur le site

  • bridge.permissions : Ce sont les permissions. Pour ma part, j’ai mis "*": user pour que tous les utilisateurs puissent utiliser le bridge, et enfin "@pseudo:server_name": admin pour que votre utilisateur puisse l’administrer

Une fois ça fait, pensez à redémarrer votre image docker docker restart mautrix-telegram et faites ensuite un petit nixos-rebuild switch. Normalement, matrix-synapse se redémarrera car le fichier registration.yaml existera.

Vous pouvez maintenant constater que vous pouvez parler au bot dans votre client Matrix en ouvrant une conversation avec @telegrambot:server_name.
Celui-ci devrait accepter votre invitation. Vous pouvez alors lui demander de l’aide comme il le propose. Pour lier votre compte, faites !tg login et suivez les instructions.

Une fois connecté, attendez un peu et vous allez recevoir plein d’invitations :) Bien joué, tout devrait fonctionner !

Commentaires

comments powered by Disqus