Héberger ses propres ponts Beeper avec Docker

Héberger ses propres ponts Beeper avec Docker
Beeper et docker

Introduction

Qu'est que Beeper ?

Beeper est une application de messagerie unifiée qui cherche à centraliser et simplifier l'utilisation de plusieurs services de messagerie au sein d'une même interface. Beeper est basé sur Matrix, un système décentralisé conçu pour permettre une communication sécurisée et interopérable, comparable au fonctionnement des serveurs de messagerie électronique. Beeper est en soi un serveur Matrix, mais pas seulement, bien sûr.

Les serveurs de Beeper se connectent aux comptes de l'utilisateur auprès des fournisseurs de messagerie tels qu'Instagram, Google Messages, Discord, etc (via des ponts). Cela signifie que les messages passent en clair sur les serveurs de Beeper. C'est pourquoi le fait d'héberger soi-même les ponts permet de maintenir une certaine sécurité. En effet, en faisant cela, les messages ne passent plus en clair sur les serveurs de Beeper.

Normalement, pour héberger des ponts Matrix, il faut héberger complètement le serveur Matrix. Mais là où Beeper a innové, c'est qu'ils permettent de simplement héberger les ponts et de les connecter directement à leur serveur Matrix, ce qui est bien sûr plus simple.

⚠️
Le problème d'héberger vos propres ponts est qu'à ce jour, dans l'application mobile de Beeper, vous ne pouvez pas voir les statuts de vos ponts.
Beeper Chat network statuts

Prérequis

  • Un compte Beeper
  • Un serveur Docker avec un accès à internet
  • Un accès au client Windows ou Web de Beeper

Étapes

  • Récupérer l'Access Token de votre compte Beeper
  • Créer la compose docker
  • Connecter les différents comptes des fournisseurs de messagerie à vos ponts

Récupérer l'Access Token de votre compte Beeper

C'est une chaine de caractère qui permet de vous authentifier auprès de Beeper. Elle doit rester secrète car elle donne accès à votre compte Beeper.

Pour le récupérer ça se passe dans le client Windows Beeper ou sur la version Web.

Roue crantée > Paramètres > Aide et à propos > Jeton d'accès

Ce Token servira à authentifier les ponts auprès de Beeper. Il sera saisi dans le fichier de configuration de Docker compose en tant que variable d'environnement des conteneurs.

Créer la compose docker

Voici le fichier de compose en question :

services:
  discord:
    image: ghcr.io/beeper/bridge-manager
    volumes:
      - /media/beeper-bridge/discord:/data
    environment:
      - MATRIX_ACCESS_TOKEN=
      - BRIDGE_NAME=sh-discord
    restart:
      always
  instagram:
    image: ghcr.io/beeper/bridge-manager
    volumes:
      - /media/beeper-bridge/instagram:/data
    environment:
      - MATRIX_ACCESS_TOKEN=
      - BRIDGE_NAME=sh-instagram
    restart:
      always
  whatsapp:
    image: ghcr.io/beeper/bridge-manager
    volumes:
      - /media/beeper-bridge/whatsapp:/data
    environment:
      - MATRIX_ACCESS_TOKEN=
      - BRIDGE_NAME=sh-whatsapp
    restart:
      always

Ajoutez votre jeton Beeper dans les variables d'environnement ainsi que le nom du bridge que vous souhaitez lancer. Vous pouvez vous référer aux identifiants des ponts dans le tableau de dessous (sh-<identifiant>).

Pour ma part, je monte les volumes. Si je dois migrer vers un autre serveur, je sais où sont mes volumes au moins.

Vérifiez que mes ponts sont bien fonctionnels et connectés à l'infrastructure de Beeper (optionnel).

Rendez-vous dans les releases du repos beeper/bridge-manager. Télécharger la dernière version du binaire.

Releases · beeper/bridge-manager
A tool for running self-hosted bridges with the Beeper Matrix server. - beeper/bridge-manager

Vous pouvez ensuite exécuter le binaire (uniquement sous linux) avec le paramètre login.

./bbctl-linux-amd64 login

Remplissez les différentes informations d'authentification à votre compte Beeper. Une fois connecté, vous pouvez utiliser la commande whoami pour obtenir des informations sur vos ponts.

./bbctl-linux-amd64 whoami

Actuellement, sur le screen, 5 ponts self-host sont lancés. Seulement 2 sont connectés à mes comptes, les autres sont juste en cours d'exécution.

Déconnecter le compte :

./bbctl-linux-amd64 logout

⚠️
N'oubliez pas de vous déconnecter pour ne pas laisser vos informations d'authentification dans l'utilisateur linux (dossieruser/.config/bbctl/config.json). À part si vous souhaitez les garder, bien sûr.

Connecter les différents comptes des fournisseurs de messagerie à vos ponts

Pour authentifier vos ponts auprès des fournisseurs de messagerie, vous devez envoyer des messages au bot du pont. Les bots vont vous permettre de réaliser des opérations telles que vous authentifier, créer des conversations, etc. À ce jour, vous pouvez entrer en communication avec les bots seulement via le client Windows ou Web. Les bots sont nommés comme suit : @sh-<identifiant>bot:beeper.local

Pont Identifiant
mautrix-telegram telegram
mautrix-whatsapp whatsapp
mautrix-signal signal
mautrix-discord discord
mautrix-slack slack
mautrix-gmessages gmessages, googlemessages, rcs, sms
mautrix-meta meta, instagram, facebook
mautrix-googlechat googlechat, gchat
mautrix-twitter twitter
mautrix-imessage imessage
beeper-imessage imessagego
linkedin-matrix linkedin
heisenbridge heisenbridge, irc

Donc, par exemple, le nom du bot pour Instagram serait : @sh-instagrambot:beeper.local

Créer la conversation avec le bot :

Il manque le @ devant sh-discordbot... sur le screen.

Authentification :

Vous pouvez ensuite utiliser la commande help dans le chat.

Chaque authentification au pont est différente, mais il suffit de lire les commandes disponibles et de suivre les instructions. Dans le cas de Discord, ci-dessus, nous avons login-qr et login-token.

Allez plus loin

La mise à jour automatique des ponts pourrait être une bonne idée, avec watchtower par exemple.

Un système de supervision tel que Prometheus, pour alerter en cas de problème avec l'un des ponts, pourrait également être utile.