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 |