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_signal_-_matrix [2024/01/20 16:15] – [Python3] fate | serveur_hebergement:matrix:installer_un_pont_signal_-_matrix [2026/01/16 17:51] (Version actuelle) – fate | ||
|---|---|---|---|
| Ligne 15: | Ligne 15: | ||
| Installez le module shared-secret-authenticator : | Installez le module shared-secret-authenticator : | ||
| - | <code bash> | ||
| - | ==== Signald ==== | + | <code bash> |
| - | + | ||
| - | Il va nous falloir également installer [[https:// | + | |
| - | + | ||
| - | On va récupérer le dépôt officiel en commençant par récupérer les clés de signature : | + | |
| - | <code bash> | + | |
| - | sudo wget -O /usr/share/keyrings/signald.gpg https:// | + | |
| - | </ | + | |
| - | + | ||
| - | Créez le fichier | + | |
| - | < | + | |
| - | + | ||
| - | Ajoutez les lignes suivante puis enregistrez | + | |
| - | < | + | |
| - | + | ||
| - | Mettez à jours les paquets | + | |
| - | <code bash> | + | |
| - | + | ||
| - | Installez Signald | + | |
| - | <code bash> | + | |
| ==== Libolm et bibliothèques dev ==== | ==== Libolm et bibliothèques dev ==== | ||
| Ligne 48: | Ligne 28: | ||
| Créez un répertoire et accédez-y | Créez un répertoire et accédez-y | ||
| - | <code bash> | + | <code bash>sudo -u matrix-synapse |
| - | + | ||
| - | Créez l' | + | |
| - | <code bash> | + | |
| - | Activez-le | + | Télécharger la dernière version correspondant à votre architecture (modifier |
| - | <code bash>source | + | <code bash>sudo -u matrix-synapse wget https:// |
| - | Installez le pont | + | Le rendre executable: |
| - | <code bash>pip install --upgrade | + | <code bash>sudo chmod +x mautrix-signal-amd64</ |
| L' | L' | ||
| Ligne 63: | Ligne 40: | ||
| ==== Configuration ==== | ==== Configuration ==== | ||
| - | Créez | + | Créez |
| - | <code bash>cp example-config.yaml config.yaml</ | + | <code bash>sudo -u matrix-synapse |
| Ouvrez le fichier config.yaml. Si votre serveur Matrix tourne sur la même machine que le pont, remplacez la ligne | Ouvrez le fichier config.yaml. Si votre serveur Matrix tourne sur la même machine que le pont, remplacez la ligne | ||
| Ligne 134: | Ligne 111: | ||
| Relancez votre serveur Matrix | Relancez votre serveur Matrix | ||
| <code bash> | <code bash> | ||
| + | |||
| + | ===== Activer le double puppeting ===== | ||
| + | |||
| + | 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 Signal | ||
| + | < | ||
| + | < | ||
| ===== Lancement du pont via Systemd ===== | ===== Lancement du pont via Systemd ===== | ||
| Ligne 150: | Ligne 173: | ||
| # N.B. If you didn't create a user with the correct home directory, set this | # N.B. If you didn't create a user with the correct home directory, set this | ||
| # to the directory where config.yaml is (e.g. / | # to the directory where config.yaml is (e.g. / | ||
| - | WorkingDirectory=/ | + | WorkingDirectory=/ |
| - | ExecStart=/home/pi/ | + | ExecStart=/var/lib/ |
| - | User=pi | + | User=matrix-synapse |
| [Install] | [Install] | ||
| Ligne 170: | Ligne 193: | ||
| < | < | ||
| Ca va vous afficher un QR code que vous devrez scanner avec votre application Signal pour lier les deux appareils. | Ca va vous afficher un QR code que vous devrez scanner avec votre application Signal pour lier les deux appareils. | ||
| - | |||
| - | ===== Activer le double puppeting ===== | ||
| - | |||
| - | Le " | ||
| - | |||
| - | Installez Shared Secret Authenticator | ||
| - | <code bash> | ||
| - | |||
| - | Générez un secret | ||
| - | <code bash> | ||
| - | |||
| - | Ouvrez le fichier homeserver.yaml de Synapse et ajoutez les lignes suivantes | ||
| - | < | ||
| - | modules: | ||
| - | - module: shared_secret_authenticator.SharedSecretAuthProvider | ||
| - | config: | ||
| - | 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. | ||
| - | m_login_password_support_enabled: | ||
| - | </ | ||
| - | |||
| - | Ouvrez le fichier config.yaml et remplacez les lignes | ||
| - | < | ||
| - | login_shared_secret_map: | ||
| - | example.com: | ||
| - | </ | ||
| - | par | ||
| - | < | ||
| - | login_shared_secret_map: | ||
| - | adresse_du_serveur_matrix: | ||
| - | </ | ||
| - | |||
| - | Redémarrez Synapse et le pont Signal | ||
| - | < | ||
| - | < | ||
| ===== Mise à jour ===== | ===== Mise à jour ===== | ||
| Ligne 214: | Ligne 199: | ||
| Créez le fichier update_signal_bridge.sh dans le même répertoire que le dossier mautrix-signal et ajoutez-y les lignes suivantes (remplacez votreadressemail par une adresse mail valide et modifiez le chemin vers le dossier mautrix-signal): | Créez le fichier update_signal_bridge.sh dans le même répertoire que le dossier mautrix-signal et ajoutez-y les lignes suivantes (remplacez votreadressemail par une adresse mail valide et modifiez le chemin vers le dossier mautrix-signal): | ||
| <code bash> | <code bash> | ||
| - | # | + | #! /bin/bash |
| - | errorFile=" | + | # Go to the Signal bridge folder |
| - | versionFile="../mautrix-signalVersion" | + | cd / |
| - | adminMail=" | + | # Check if a new version is available |
| - | cd /chemin/vers/ | + | newVersion=`curl -Ls -o /dev/null -w %{url_effective} https:// |
| - | source ./bin/ | + | currentVersion=`cat currentVersion` |
| - | # Si le fichier de version existe, on récupére la version | + | if [ ! "$newVersion" |
| - | if [ -f $versionFile ]; then | + | # remove old version |
| - | currentVersion=$(cat $versionFile) | + | rm |
| - | #S'il n' | + | # Download latest version |
| - | else | + | |
| - | | + | # Make the file executable |
| - | fi | + | |
| - | # On récupère le numéro de la version présent sur le dépôt | + | # Restart the service |
| - | repositoryVersion=$(yolk -V mautrix-signal | awk ' | + | systemctl restart |
| - | # Si la version présente sur le dépôt est plus récente, on lance la mise à jour | + | # Update the file currentVersion with the new version |
| - | if [ $currentVersion != $repositoryVersion | + | echo $newVersion > "currentVersion" |
| - | # On supprime l' | + | # Send a notification email |
| - | | + | echo "Le pont Mautrix-Signal |
| - | | + | |
| - | fi | + | |
| - | # On lance la mise à jour du paquet | + | |
| - | | + | |
| - | # Si le fichier d' | + | |
| - | | + | |
| - | echo "Une erreur s'est produite lors de la mise à jour du pont Signal-Matrix (mautrix-signal). Le message d' | + | |
| - | # Si le fichier d' | + | |
| - | | + | |
| - | | + | |
| - | echo " | + | |
| - | fi | + | |
| fi | fi | ||
| </ | </ | ||
| - | 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. | ||
| Ouvrez le fichier cron avec la commande | Ouvrez le fichier cron avec la commande | ||
| - | <code bash> | + | <code bash>sudo crontab -e</ |
| Ajoutez la ligne suivante (remplacez l' | Ajoutez la ligne suivante (remplacez l' | ||
| <code bash>0 0 * * * / | <code bash>0 0 * * * / | ||