Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| serveur_hebergement:matrix:installer_un_pont_irc_-_matrix [2022/09/07 17:29] – créée fate | serveur_hebergement:matrix:installer_un_pont_irc_-_matrix [2024/10/23 12:10] (Version actuelle) – [Mise à jour] fate | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| Matrix est capable d' | Matrix est capable d' | ||
| - | Les étapes pour installer un pont sont plus ou moins les mêmes  | + | Les étapes pour installer un pont sont plus ou moins les mêmes  | 
| ===== 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. Je pars du principe que vous avez suivi le tuto sur comment [[serveur_hebergement: | 
| - | Il vous faut également ZNC, un bouncer IRC, connecté aux serveur IRC que vous souhaitez. ZNC ne sera pas traité ici. | + | |
| ==== Python3 ==== | ==== Python3 ==== | ||
| Ligne 35: | Ligne 33: | ||
| ==== Configuration ==== | ==== Configuration ==== | ||
| - | Générez le fichier  | + | Générez le fichier  | 
| - | <code bash> | + | <code bash> | 
| - | Ouvrez le fichier config.yaml. Si votre serveur Matrix tourne sur la même machine que le pont, remplacez la ligne | + | Ensuite ouvrez le fichier homeserver.yaml de votre serveur et indiquez l' | 
| - | < | + | |
| - | par | + | |
| - | < | + | |
| - | Si le serveur Matrix tourne sur une autre machine, indiquez l'url du serveur Matrix. | + | |
| - | + | ||
| - | Dans la ligne | + | |
| - | < | + | |
| - | remplacez example.com par le domaine servant à accéder à votre serveur Matrix | + | |
| - | + | ||
| - | Remplacer la ligne | + | |
| - | < | + | |
| - | par | + | |
| - | < | + | |
| - | Mettez le mot de passe de votre choix, on créera la base de données plus tard. | + | |
| - | + | ||
| - | Dans la partie " | + | |
| - | J'ai donc que la ligne | + | |
| - | < | + | |
| - | Remplacez " | + | |
| - | + | ||
| - | Dans la partie " | + | |
| - | + | ||
| - | Pour que le pont puisse accéder à Signald, il a besoin d' | + | |
| - | <code bash> | + | |
| - | + | ||
| - | L' | + | |
| - | < | + | |
| - | L' | + | |
| - | <code bash> | + | |
| - | + | ||
| - | Passons à la base de données | + | |
| - | + | ||
| - | ==== Création de la base de données ==== | + | |
| - | + | ||
| - | Connectez-vous avec l' | + | |
| - | <code bash> | + | |
| - | + | ||
| - | Lancez PostgreSQL | + | |
| - | <code bash> | + | |
| - | + | ||
| - | Créez l' | + | |
| - | <code sql> | + | |
| - | 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 | + | |
| - | <code sql> | + | |
| - | + | ||
| - | Quittez PostgreSQL | + | |
| - | <code bash> | + | |
| - | + | ||
| - | Déconnectez-vous de l' | + | |
| - | <code bash> | + | |
| - | + | ||
| - | ==== 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 | + | |
| - | <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: | ||
| - | - "/home/pi/mautrix-signal/ | + | - "/chemin/vers/dossier/ | 
| </ | </ | ||
| - | Relancez votre serveur Matrix | + | Relancez votre serveur Matrix  | 
| <code bash> | <code bash> | ||
| ===== Lancement du pont via Systemd ===== | ===== Lancement du pont via Systemd ===== | ||
| - | Créez le fichier  | + | On va créer un script pour démarrer heisenbridge via systemd.  | 
| - | < | + | |
| - | + | ||
| - | Copiez  | + | |
| < | < | ||
| - | |||
| [Unit] | [Unit] | ||
| - | Description=mautrix-signal  | + | Description=matrix-irc bridge | 
| - | After=matrix-synapse.service postgresql.service | + | After=matrix-synapse.service | 
| [Service] | [Service] | ||
| - | # N.B. If you didn't create a user with the correct home directory, set this | + | WorkingDirectory=/ | 
| - | #      to the directory where config.yaml is (e.g. / | + | ExecStartPre=/ | 
| - | WorkingDirectory=/ | + | ExecStart=/chemin/vers/dossier/ | 
| - | ExecStart=/home/pi/mautrix-signal/bin/python -m mautrix_signal | + | |
| User=pi | User=pi | ||
| Ligne 129: | Ligne 63: | ||
| WantedBy=multi-user.target | WantedBy=multi-user.target | ||
| </ | </ | ||
| - | Modifier les chemins et le nom de l' | ||
| - | Activez le service au démarrage | + | Rechargez la configuration de systemd avec la commande : | 
| - | <code bash> | + | <code bash> | 
| - | Démarrez  | + | Activez  | 
| - | <code bash> | + | <code bash> | 
| - | Dans votre client Matrix (Element), ouvrez une discussion privée  | + | Démarrez heisenbridge  | 
| + | <code bash> | ||
| - | Dans la discussion, tapez | ||
| - | < | ||
| - | Ca va vous afficher un QR code que vous devrez scanner avec votre application Signal pour lier les deux appareils. | ||
| - | ===== Activer le double puppeting  | + | ===== Utilisation du pont ===== | 
| - | Le " | + | Dans votre client Matrix (Element), ouvrez une discussion privée avec le bot @heisenbridge: | 
| - | Installez Shared Secret Authenticator | + | Dans la discussion, tapez | 
| - | < | + | < | 
| - | + | Ca va vous afficher toutes les commandes et leur fonctionnement afin que vous puissiez vous connecter à un serveur IRC. | |
| - | Générez  | + | Pour ajouter une connexion au serveur IRCnet par exemple, il faudra taper les commandes  | 
| - | <code bash> | + | |
| - | + | ||
| - | Ouvrez le fichier homeserver.yaml de Synapse et ajoutez  | + | |
| < | < | ||
| - | modules: | + | ADDNETWORK IRCnet | 
| - | - module: shared_secret_authenticator.SharedSecretAuthProvider | + | ADDSERVER IRCnet ssl.ircnet.io 6697 --tls | 
| - | config: | + | OPEN IRCnet | 
| - |           shared_secret: | + | |
| - | # By default, only login requests of type `com.devture.shared_secret_auth` are supported. | + | |
| - | # Below, we explicitly enable support for the old `m.login.password` login type, | + | |
| - | # which was used in v1 of matrix-synapse-shared-secret-auth and still widely supported by external software. | + | |
| - | # If you don't need such legacy support, consider setting this to `false` or omitting it entirely. | + | |
| - |            | + | |
| </ | </ | ||
| - | Ouvrez le fichier config.yaml et remplacez les lignes | + | Vous allez être invité dans un nouveau salon où vous pourrez vous y connecter avec la commande : | 
| - | < | + | < | 
| - | login_shared_secret_map: | + | Et vous pourrez joindre un chan avec la commande  | 
| - |         example.com: | + | < | 
| - | </ | + | |
| - | par | + | |
| - | < | + | |
| - | login_shared_secret_map: | + | |
| - |         adresse_du_serveur_matrix: | + | |
| - | </ | + | |
| - | + | ||
| - | Redémarrez Synapse et le pont Signal | + | |
| - | < | + | |
| - | < | + | |
| ===== Mise à jour ===== | ===== Mise à jour ===== | ||
| On va créer un script pour mettre à jour le pont. | On va créer un script pour mettre à jour le pont. | ||
| - | Créez le fichier  | + | Créez le fichier  | 
| <code bash> | <code bash> | ||
| #!/bin/bash | #!/bin/bash | ||
| - | errorFile=" | + | errorFile=" | 
| - | versionFile=" | + | versionFile=" | 
| adminMail=" | adminMail=" | ||
| - | cd mautrix-signal | + | cd / | 
| - | source  | + | source  | 
| - | # Si le fichier  | + | # On récupère  | 
| - | if [ -f $versionFile ]; then | + | currentVersion=$(pip index versions heisenbridge | head -3 |tail -1 |awk ' | 
| - |                  | + | |
| - | #S'il n' | + | |
| - | else | + | |
| - |         currentVersion=" | + | |
| - | fi | + | |
| # On récupère le numéro de la version présent sur le dépôt | # On récupère le numéro de la version présent sur le dépôt | ||
| - | repositoryVersion=$(pip  | + | repositoryVersion=$(pip  | 
| # Si la version présente sur le dépôt est plus récente, on lance la mise à jour | # Si la version présente sur le dépôt est plus récente, on lance la mise à jour | ||
| if [ $currentVersion != $repositoryVersion ]; then | if [ $currentVersion != $repositoryVersion ]; then | ||
| Ligne 208: | Ligne 115: | ||
| fi | fi | ||
| # On lance la mise à jour du paquet | # On lance la mise à jour du paquet | ||
| - |         pip install --upgrade  | + |         pip install --upgrade  | 
| - |         # Si le fichier d' | + |         # Si le fichier d' | 
| if [ -s $errorFile ]; then | if [ -s $errorFile ]; then | ||
| - |                 echo "Une erreur s' | + |                 echo "Une erreur s' | 
| - |         # Si le fichier d' | + | |
| else | else | ||
| - |                  | + |         # Si le fichier d' | 
| + |                  | ||
|                 echo " |                 echo " | ||
| fi | fi | ||
| Ligne 220: | Ligne 127: | ||
| </ | </ | ||
| - | Le script est commenté afin qu'il soit facile de comprendre chaque bloc. Pour que ce script fonctionne pleinement il faut que votre serveur soit capable d' | + | Le script est commenté afin qu'il soit facile de comprendre chaque bloc. Pour que ce script fonctionne pleinement il faut que votre serveur soit capable d' | 
| + | <code bash>pip install yolk3k</ | ||
| On va créer une tâche cron afin que ce script se lance tous les jours. | On va créer une tâche cron afin que ce script se lance tous les jours. | ||
| Ligne 226: | Ligne 134: | ||
| <code bash> | <code bash> | ||
| Ajoutez la ligne suivante (remplacez l' | Ajoutez la ligne suivante (remplacez l' | ||
| - | <code bash>0 0 * * * / | + | <code bash>10 0 * * * / | 
| Appuyez sur CTRL + O puis CTRL + X pour appliquer les modifications. | Appuyez sur CTRL + O puis CTRL + X pour appliquer les modifications. | ||
| - | Tous les jours à minuit, le pont se mettra à jour si une nouvelle version est disponible. | + | Tous les jours à minuit  |