====== Installer un pont Discord - Matrix ======
Pour créer un pont entre Matrix et Discord, nous allons utiliser [[https://github.com/mautrix/discord|mautrix-discord]]
====== Prérequis ======
Il vous faut un serveur Matrix, Synapse par exemple, et PostgreSQL. Je pars du principe que vous avez suivi le tuto sur comment [[serveur_hebergement:matrix:installer_matrix|Installer Matrix]] et que vous avez déjà ces deux logiciels d'installés.
Lancez la commande suivante pour installer Libolm, nécessaire au chiffrement :
sudo aptitude install libolm-dev python3-dev build-essential
===== Installation =====
Récupérez le fichier binaire correspondant à votre architecture [[https://mau.dev/mautrix/discord/-/pipelines?scope=branches&page=1|ici]]
L'installation est finie (c'était rapide), on peut passer à la configuration
===== Configuration =====
Créez une copie du fichier example-config.yaml
cp config.sample.yaml config.yaml
Ouvrez le fichier config.yaml.
remplacez la ligne
domain: "localhost"
par
domain: "votrenomdedomaine"
Si le serveur Matrix tourne sur une autre machine, indiquez l'url du serveur Matrix.
Remplacer la ligne
uri: postgres://user:password@host/database?sslmode=disable
par
uri: postgresql://discordbridge:motdepasse@localhost:5432/discordbridge?sslmode=disable"
Mettez le mot de passe de votre choix, on créera la base de données plus tard.
Dans la partie “permissions”, adaptez les lignes à votre cas. Dans mon cas, je n'ai qu'un seul utilisateur qui est admin. J'ai donc que la ligne
"@fate:matrix.nomdedomaine.fr": admin
Remplacez “fate” par votre nom d'utilisateur ainsi que “nomdedomaine.fr” par l'url d'accès à votre serveur Matrix.
Dans la partie “encryption”, passez les options “allow” et “default” à true pour activer le chiffrement entre le pont et le serveur Matrix
Passons à la base de données
===== Création de la base de données =====
Connectez-vous avec l'utilisateur postgres
sudo -i -u postgres
Lancez PostgreSQL
psql
Créez l'utilisateur
CREATE ROLE discordbridge LOGIN PASSWORD 'mot_de_passe';
Mettez le même mot de passe que celui que vous avez renseigné dans le fichier config.yaml
Créez la base de données
CREATE DATABASE discordbridge OWNER discordbridge;
Quittez PostgreSQL
exit
Déconnectez-vous de l'utilisateur postgres
exit
===== Registration.yaml =====
Les ponts ont besoin d'un fichier registration.yaml pour avoir certain droits sur votre serveur. Pour le créer, lancez la commande suivante
./mautrix-discord -g
Le fichier généré doit être visible par l'utilisateur exécutant Matrix :
chmod 644 registration.yaml
Ensuite ouvrez le fichier homeserver.yaml de votre serveur et indiquez l'emplacement du fichier registration après la ligne "app_service_config_files:". Par exemple :
# A list of application service config file to use
app_service_config_files:
- "/home/pi/mautrix-discord/registration.yaml"
Relancez votre serveur Matrix
sudo systemctl restart matrix-synapse.service
====== Lancement du pont via Systemd ======
Créez le fichier
/etc/systemd/system/mautrix-discord.service
Copiez les lignes suivantes dedans (adaptez les chemins et utilisateur) :
[Unit]
Description=mautrix-discord bridge
[Service]
Type=exec
Restart=on-failure
RestartSec=30s
WorkingDirectory=/home/pi/mautrix-discord/
ExecStart=/home/pi/mautrix-discord/mautrix-discord
User=pi
# Optional hardening to improve security
ReadWritePaths=/home/pi/mautrix-discord
NoNewPrivileges=yes
MemoryDenyWriteExecute=true
PrivateDevices=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectControlGroups=true
RestrictSUIDSGID=true
RestrictRealtime=true
LockPersonality=true
ProtectKernelLogs=true
ProtectKernelTunables=true
ProtectHostname=true
ProtectKernelModules=true
PrivateUsers=true
ProtectClock=true
SystemCallArchitectures=native
SystemCallErrorNumber=EPERM
SystemCallFilter=@system-service
[Install]
WantedBy=multi-user.target
Modifier les chemins et le nom de l'utilisateur si besoin.
Activez le service au démarrage
sudo systemctl enable mautrix-discord.service
Démarrez le service
sudo systemctl start mautrix-discord.service
====== Configurer le pont ======
Installez l'application mobile Discord et connectez-vous à votre compte.
Dans votre client Matrix (Element), lancez une conversation avec @discordbot:matrix.domaine.fr. Tapez la commande login
Scannez le code-barre qui apparaît avec l'application mobile Discord.
Pour afficher les serveurs discords auxquels vous êtes connectés, tapez la commande guilds status
Pour se connecter avec le pont à un serveur, tapez guilds bridge IdDuServeur