====== 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