serveur_hebergement:matrix:installer_un_pont_discord_-_matrix

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveur_hebergement:matrix:installer_un_pont_discord_-_matrix [2022/10/07 11:49] – [Création de la base de données] fateserveur_hebergement:matrix:installer_un_pont_discord_-_matrix [2026/01/16 18:10] (Version actuelle) fate
Ligne 1: Ligne 1:
 ====== Installer un pont Discord - Matrix ====== ====== Installer un pont Discord - Matrix ======
  
-Pour créer un pont entre Matrix et Discord, nous allons utiliser [[https://github.com/Half-Shot/matrix-appservice-discord|matrix-appservice-discord]]+Pour créer un pont entre Matrix et Discord, nous allons utiliser [[https://github.com/mautrix/discord|mautrix-discord]]
  
-===== Prérequis =====+====== 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. 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.
-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 [[https://discord.com/developers/applications|portail dev de Discord]] et créez une application et un bot). 
  
-==== Node ====+Lancez la commande suivante pour installer Libolm, nécessaire au chiffrement : 
 +<code bash>sudo aptitude install libolm-dev python3-dev build-essential</code>
  
-Installez Node, npm ainsi que le paquet eslint 
-<code bash>sudo aptitude install node npm eslint</code> 
  
-===== matrix-appservice-discord ===== 
  
-==== Installation ====+===== Installation =====
  
-Récupérez les sources +Récupérez le fichier binaire correspondant à votre architecture [[https://mau.dev/mautrix/discord/-/pipelines?scope=branches&page=1|ici]]
-<code bash>git clone https://github.com/Half-Shot/matrix-appservice-discord.git</code>+
  
-Accédez au dossier créé +L'installation est finie (c'était rapide), on peut passer à la configuration
-<code bash>cd matrix-appservice-discord</code>+
  
-Installez les dépendances +===== Configuration =====
-<code bash>npm install</code> +
- +
-Lancez la compilation +
-<code bash>npm run build</code> +
- +
-L'installation est finie, on peut passer à la configuration +
- +
-==== Configuration ====+
  
 Créez une copie du fichier example-config.yaml Créez une copie du fichier example-config.yaml
-<code bash>cp config/config.sample.yaml config.yaml</code>+<code bash>cp config.sample.yaml config.yaml</code>
  
 Ouvrez le fichier config.yaml.  Ouvrez le fichier config.yaml. 
Ligne 44: Ligne 31:
 Si le serveur Matrix tourne sur une autre machine, indiquez l'url du serveur Matrix. 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 <code>usePrivilegedIntents</code> à True. 
- 
-Commentez la ligne 
-<code>filename: "discord.db"</code> 
 Remplacer la ligne Remplacer la ligne
-<code># connString"postgresql://user:password@localhost/database_name"</code>+<code>uripostgres://user:password@host/database?sslmode=disable</code>
 par par
-<code>connString"postgresql://discordbridge:motdepasse@localhost:5432/discordbridge"</code>+<code>uri: postgresql://discordbridge:motdepasse@localhost:5432/discordbridge?sslmode=disable"</code>
 Mettez le mot de passe de votre choix, on créera la base de données plus tard. 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
 +<code>"@fate:matrix.nomdedomaine.fr": admin</code>
 +
 +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 Passons à la base de données
  
-==== Création de la base de données ====+===== Création de la base de données =====
  
 Connectez-vous avec l'utilisateur postgres Connectez-vous avec l'utilisateur postgres
Ligne 80: Ligne 67:
 <code bash>exit</code> <code bash>exit</code>
  
-==== Registration.yaml ====+===== 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 Les ponts ont besoin d'un fichier registration.yaml pour avoir certain droits sur votre serveur. Pour le créer, lancez la commande suivante
-<code bash>node build/src/discordas.js --u "http://localhost:9005" -c config.yaml</code>+<code bash>./mautrix-discord -g</code>
  
-Ensuite ouvrez le fichier homeserver.yaml de votre serveur et indiquez l'emplacement du fichier registration après la ligne "app_service_config_files:"+Le fichier généré doit être visible par l'utilisateur exécutant Matrix : 
 +<code bash>chmod 644 registration.yaml</code> 
 + 
 +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 :
 <code> <code>
 # A list of application service config file to use # A list of application service config file to use
 app_service_config_files: app_service_config_files:
-- "/home/pi/matrix-appservice-discord/discord-registration.yaml"+- "/home/pi/mautrix-discord/registration.yaml"
 </code> </code>
  
Ligne 95: Ligne 85:
 <code bash>sudo systemctl restart matrix-synapse.service</code> <code bash>sudo systemctl restart matrix-synapse.service</code>
  
-Lancez la commande suivante afin d'obtenir un lien d'autorisation pour le bot +===== Activer le double puppeting =====
-<code bash>npm run addbot</code>+
  
-===== Lancement du pont via Systemd =====+Le "double puppeting" permet que lorsque vous envoyez un message depuis le site discord, le message sera également présent dans Matrix et les messages marqués comme lu dans Matrix seront également marqués comme lus sur les autres appareils. 
 + 
 +Créez un fichier doublepupetting.yaml dans le répertoire du pont et copiez les lignes suivantes : 
 +<code> 
 +# The ID doesn't really matter, put whatever you want. 
 +id: doublepuppet 
 +# The URL is intentionally left empty (null), as the homeserver shouldn'
 +# push events anywhere for this extra appservice. If you use a 
 +# non-spec-compliant server, you may need to put some fake URL here. 
 +url: 
 +# Generate random strings for these three fields. Only the as_token really 
 +# matters, hs_token is never used because there's no url, and the default 
 +# user (sender_localpart) is never used either. 
 +as_token: votre_token 
 +hs_token: votre_token 
 +sender_localpart: votre_token 
 +# Bridges don't like ratelimiting. This should only apply when using the 
 +# as_token, normal user tokens will still be ratelimited. 
 +rate_limited: false 
 +namespaces: 
 +  users: 
 +  # Replace your\.domain with your server name (escape dots for regex) 
 +  - regex: '@.*:votre\.domaine\.fr' 
 +    # This must be false so the appservice doesn't take over all users completely. 
 +    exclusive: false 
 +</code> 
 + 
 +Vous pouvez générer un token avec la commande suivante (les 3 tokens doivent être différents) :  
 +<code bash>pwgen -s 128 1</code> 
 + 
 +Ouvrez le fichier config.yaml du pont et ajoutez les lignes suivantes dans la section double_puppet: 
 +<code> 
 +# Shared secrets for automatic double puppeting. 
 +    # See https://docs.mau.fi/bridges/general/double-puppeting.html for instructions. 
 +    secrets: 
 +        votre.domaine.fr: as_token:votre_token_as 
 +</code> 
 + 
 +Enfin, ouvrez le fichier de config de Matrix et ajoutez dans la section app_service_config_files le chemin vers votre fichier doublepupetting.yaml 
 + 
 +Redémarrez Synapse et le pont discord 
 +<code>sudo systemctl restart matrix-synapse.service</code> 
 +<code>sudo systemctl restart mautrix-discord.service</code> 
 + 
 +====== Lancement du pont via Systemd ======
  
 Créez le fichier  Créez le fichier 
-<code>/etc/systemd/system/matrix-appservice-discord.service</code>+<code>/etc/systemd/system/mautrix-discord.service</code>
  
-Copiez les lignes suivantes dedans+Copiez les lignes suivantes dedans (adaptez les chemins et utilisateur) :
 <code> <code>
 [Unit] [Unit]
-Description=matrix-discord bridge +Description=mautrix-discord bridge
-After=matrix-synapse.service postgresql.service+
  
 [Service] [Service]
-WorkingDirectory=/home/pi/matrix-appservice-discord +Type=exec 
-ExecStart=npm start+Restart=on-failure 
 +RestartSec=30s 
 +WorkingDirectory=/home/pi/mautrix-discord/ 
 +ExecStart=/home/pi/mautrix-discord/mautrix-discord
 User=pi 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] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
 +
 </code> </code>
 Modifier les chemins et le nom de l'utilisateur si besoin. Modifier les chemins et le nom de l'utilisateur si besoin.
  
 Activez le service au démarrage Activez le service au démarrage
-<code bash>sudo systemctl enable matrix-appservice-discord.service</code>+<code bash>sudo systemctl enable mautrix-discord.service</code>
  
 Démarrez le service Démarrez le service
-<code bash>sudo systemctl start matrix-appservice-discord.service</code>+<code bash>sudo systemctl start mautrix-discord.service</code> 
 + 
 +====== Configurer le pont ====== 
 + 
 +Installez l'application mobile Discord et connectez-vous à votre compte.
  
-===== Rejoindre un channel Discord =====+Dans votre client Matrix (Element), lancez une conversation avec @discordbot:matrix.domaine.fr. Tapez la commande <code>login</code>  
 +Scannez le code-barre qui apparaît avec l'application mobile 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. +Pour afficher les serveurs discords auxquels vous êtes connectéstapez la commande <code>guilds status</code> 
-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"+Pour se connecter avec le pont à un serveur, tapez <code>guilds bridge IdDuServeur</code>
  
  
  • serveur_hebergement/matrix/installer_un_pont_discord_-_matrix.1665143361.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)