Différences
Ci-dessous, les différences entre deux révisions de la page.
| 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] fate | serveur_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:// | + | Pour créer un pont entre Matrix et Discord, nous allons utiliser [[https:// |
| - | ===== 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: | 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: | ||
| - | Il vous faut également être administrateur d'un server discord et avoir créé un bot avec les Privileged Gateway Intents d' | ||
| - | ==== Node ==== | + | Lancez la commande suivante pour installer Libolm, nécessaire au chiffrement : |
| + | <code bash> | ||
| - | Installez Node, npm ainsi que le paquet eslint | ||
| - | <code bash> | ||
| - | ===== matrix-appservice-discord ===== | ||
| - | ==== Installation ==== | + | ===== Installation |
| - | Récupérez | + | Récupérez |
| - | <code bash>git clone https://github.com/Half-Shot/matrix-appservice-discord.git< | + | |
| - | Accédez au dossier créé | + | L' |
| - | <code bash>cd matrix-appservice-discord</ | + | |
| - | Installez les dépendances | + | ===== Configuration |
| - | <code bash>npm install</ | + | |
| - | + | ||
| - | Lancez la compilation | + | |
| - | <code bash>npm run build</ | + | |
| - | + | ||
| - | L' | + | |
| - | + | ||
| - | ==== Configuration ==== | + | |
| Créez une copie du fichier example-config.yaml | Créez une copie du fichier example-config.yaml | ||
| - | <code bash> | + | <code bash>cp config.sample.yaml config.yaml</ |
| 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 " | ||
| - | Le clientID correspond à l' | ||
| - | Le botToken se trouve dans le menu Bot de la même page. | ||
| - | Passez également la variable < | ||
| - | |||
| - | Commentez la ligne | ||
| - | < | ||
| Remplacer la ligne | Remplacer la ligne | ||
| - | < | + | < |
| par | par | ||
| - | < | + | < |
| 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”, | ||
| + | < | ||
| + | |||
| + | Remplacez “fate” par votre nom d' | ||
| + | |||
| + | Dans la partie “encryption”, | ||
| 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' | Connectez-vous avec l' | ||
| Ligne 80: | Ligne 67: | ||
| <code bash> | <code bash> | ||
| - | ==== 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/ | + | <code bash>./mautrix-discord |
| - | Ensuite ouvrez le fichier homeserver.yaml de votre serveur et indiquez l' | + | Le fichier généré doit être visible par l' |
| + | <code bash> | ||
| + | |||
| + | Ensuite ouvrez le fichier homeserver.yaml de votre serveur et indiquez l' | ||
| < | < | ||
| # 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: | ||
| - | - "/ | + | - "/ |
| </ | </ | ||
| Ligne 95: | Ligne 85: | ||
| <code bash> | <code bash> | ||
| - | Lancez la commande suivante afin d' | + | ===== Activer |
| - | <code bash>npm run addbot</ | + | |
| - | ===== Lancement du pont via Systemd ===== | + | Le " |
| + | |||
| + | Créez un fichier doublepupetting.yaml dans le répertoire du pont et copiez les lignes suivantes : | ||
| + | < | ||
| + | # The ID doesn' | ||
| + | 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' | ||
| + | # user (sender_localpart) is never used either. | ||
| + | as_token: votre_token | ||
| + | hs_token: votre_token | ||
| + | sender_localpart: | ||
| + | # Bridges don't like ratelimiting. This should only apply when using the | ||
| + | # as_token, normal user tokens will still be ratelimited. | ||
| + | rate_limited: | ||
| + | namespaces: | ||
| + | users: | ||
| + | # Replace your\.domain with your server name (escape dots for regex) | ||
| + | - regex: ' | ||
| + | # This must be false so the appservice doesn' | ||
| + | exclusive: false | ||
| + | </ | ||
| + | |||
| + | Vous pouvez générer un token avec la commande suivante (les 3 tokens doivent être différents) : | ||
| + | <code bash> | ||
| + | |||
| + | Ouvrez le fichier config.yaml du pont et ajoutez les lignes suivantes dans la section double_puppet: | ||
| + | < | ||
| + | # Shared secrets for automatic double puppeting. | ||
| + | # See https:// | ||
| + | secrets: | ||
| + | votre.domaine.fr: | ||
| + | </ | ||
| + | |||
| + | 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 | ||
| + | < | ||
| + | < | ||
| + | |||
| + | ====== Lancement du pont via Systemd | ||
| Créez le fichier | Créez le fichier | ||
| - | < | + | < |
| - | Copiez les lignes suivantes dedans | + | Copiez les lignes suivantes dedans |
| < | < | ||
| [Unit] | [Unit] | ||
| - | Description=matrix-discord bridge | + | Description=mautrix-discord bridge |
| - | After=matrix-synapse.service postgresql.service | + | |
| [Service] | [Service] | ||
| - | WorkingDirectory=/ | + | Type=exec |
| - | ExecStart=npm start | + | Restart=on-failure |
| + | RestartSec=30s | ||
| + | WorkingDirectory=/ | ||
| + | ExecStart=/ | ||
| User=pi | User=pi | ||
| + | |||
| + | # Optional hardening to improve security | ||
| + | ReadWritePaths=/ | ||
| + | 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 | ||
| + | |||
| </ | </ | ||
| Modifier les chemins et le nom de l' | Modifier les chemins et le nom de l' | ||
| Activez le service au démarrage | Activez le service au démarrage | ||
| - | <code bash> | + | <code bash> |
| Démarrez le service | Démarrez le service | ||
| - | <code bash> | + | <code bash> |
| + | |||
| + | ====== Configurer le pont ====== | ||
| + | |||
| + | Installez l' | ||
| - | ===== Rejoindre un channel | + | Dans votre client Matrix (Element), lancez une conversation avec @discordbot: |
| + | Scannez le code-barre qui apparaît avec l' | ||
| - | Dans votre client Matrix (Element), accédez au salon # | + | Pour afficher les serveurs discords auxquels vous êtes connectés, tapez la commande < |
| - | Vous trouverez le " | + | Pour se connecter avec le pont à un serveur, tapez < |