Ceci est une ancienne révision du document !
Installer un pont Discord - Matrix
Pour créer un pont entre Matrix et Discord, nous allons utiliser matrix-appservice-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 Installer Matrix et que vous avez déjà ces deux logiciels d'installés. Il vous faut également être administrateur d'un server discord et avoir créé un bot avec les Privileged Gateway Intents d'activés (pour créer un bot, allez sur le portail dev de Discord et créez une application et un bot).
Node
Installez Node, npm ainsi que le paquet eslint
sudo aptitude install node npm eslint
matrix-appservice-discord
Installation
Récupérez les sources
git clone https://github.com/Half-Shot/matrix-appservice-discord.git
Accédez au dossier créé
cd matrix-appservice-discord
Installez les dépendances
npm install
Lancez la compilation
npm run build
L'installation est finie, on peut passer à la configuration
Configuration
Créez une copie du fichier example-config.yaml
cp config/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.
Dans la partie “auth”, renseignez le clientID et le botToken du bot Discord. Le clientID correspond à l'Application ID que vous trouverez dans le menu General Information de votre application sur le portail dev de Discord. Le botToken se trouve dans le menu Bot de la même page. Passez également la variable
usePrivilegedIntents
à True.
Commentez la ligne
filename: "discord.db"
Remplacer la ligne
# connString: "postgresql://user:password@localhost/database_name"
par
connString: "postgresql://discordbridge:motdepasse@localhost:5432/discordbridge"
Mettez le mot de passe de votre choix, on créera la base de données plus tard.
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 USER discordbridge WITH PASSWORD 'motdepasse';
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
node build/src/discordas.js -r -u "http://localhost:9005" -c config.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:”
# A list of application service config file to use app_service_config_files: - "/home/pi/matrix-appservice-discord/discord-registration.yaml"
Relancez votre serveur Matrix
sudo systemctl restart matrix-synapse.service
Lancez la commande suivante afin d'obtenir un lien d'autorisation pour le bot
npm run addbot
Lancement du pont via Systemd
Créez le fichier
/etc/systemd/system/matrix-appservice-discord.service
Copiez les lignes suivantes dedans
[Unit] Description=matrix-discord bridge After=matrix-synapse.service postgresql.service [Service] WorkingDirectory=/home/pi/matrix-appservice-discord ExecStart=npm start User=pi [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 matrix-appservice-discord.service
Démarrez le service
sudo systemctl start matrix-appservice-discord.service
Rejoindre un channel Discord
Dans votre client Matrix (Element), accédez au salon #_discord_guildid_channelid:votre.serveur afin que le bot rejoigne un channel sur votre serveur Discord et crée un salon côté Matrix. Vous trouverez le “guildid” et le “channelid” dans l'url lorsque vous vous trouvez sur votre channel Discord sous la forme “https://discord.com/channels/GUILDID/CHANNELID”