Héberger ses propres ponts Beeper avec 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.

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.
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
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 | |
| 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 | |
| mautrix-imessage | imessage |
| beeper-imessage | imessagego |
| linkedin-matrix | |
| 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.