OS : Debian11

Objectif : Installer une passerelle (bridge) Matrix <-> Signal Messenger.

1) Ajout des depots et dependances:

=> https://signald.org/articles/install/debian/

apt update

apt install gnupg

wget -O - https://updates.signald.org/apt-signing-key.asc | apt-key add -

echo deb https://updates.signald.org unstable main > /etc/apt/sources.list.d/signald.list

apt update

2) Installation SIGNALD

=> https://gitlab.com/signald/signald/-/blob/main/docs/install/debian.md

apt install signald

3) Installation MAUTRIX-SIGNAL

en tant que root:

apt install python3-olm python3-pip libolm-dev virtualenv git postgresql

adduser --disabled-login mautrix-signal

su - mautrix-signal

virtualenv -p /usr/bin/python3 .

source ./bin/activate

pip3 install --upgrade 'git+https://github.com/tulir/mautrix-signal.git#egg=mautrix-signal[all]'

4) Configuration de MAUTRIX-SIGNAL

=> https://github.com/tulir/mautrix-signal/wiki/Bridge-setup

en tant que root:

su postgres

Création de la base de donnée pour le bridge:

psql -c "CREATE USER "useraccount" WITH PASSWORD 'userpassword';"

psql -c "CREATE DATABASE nomdelabase ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER "useraccount";"

Configuration du bridge:

en tant que root:

su mautrix-signal

cd

cp example-config.yaml config.yaml

touch /home/mautrix/mautrix-signal.log

Mettre à jour le fichier en fonction de votre configuration

5) Configuration du serveur synapse pour activation du service mautrix

Génération du fichier registration.yaml:

python3 -m mautrix_signal -g

Mettre le chemin du fichier registration.yaml dans le fichier homeserver.yaml (ici /etc/matrix-synapse/registration.yaml):

app_service_config_files:
    - /etc/matrix-synapse/registration.yaml

6) Lancer le bridge

su - mautrix

python3 -m mautrix_signal -c /home/mautrix/config.yaml

7) Création du service systemd

vi /etc/systemd/system/mautrix-signal.service

ajouter:

[Unit]
Description=mautrix-signal Daemon
After=network-online.target

[Service]
Type=simple
User=mautrix-signal
Group=signald
WorkingDirectory=/home/mautrix-signal
ExecStartPre=/bin/sleep 10
ExecStart=/home/mautrix-signal/bin/python -m mautrix_signal -c /home/mautrix-signal/config.yaml
Restart=on-failure
RestartSec=10
SyslogIdentifier=mautrix-signal
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

Activation du service:

systemctl enable mautrix-signal

systemctl start mautrix-signal

8) Lier son compte MATRIX avec son ID Signal

Se connecter avec votre client [MATRIX] (ex: Element)

Commencer une nouvelle conversation avec le bot (dans mon cas : @signalbot:matrix.underworld.fr)

Lui dire "link". Il doit vous retourner un QRCode

Se connecter avec votre client SIGNAL sur smartphone, "Parametres"/"Appareils reliers"/"Relier un nouvel appareil" et scanner le QRCode

Si tout va bien, vous devriez voir vos conversations apparaitre (moyennant quelques secondes de synchro) dans votre client [MATRIX].

9) Ce qui fonctionne

Dans SIGNAL, on peut creer des GROUPE, ou discuter en "DIRECT" avec une personne (1to1).

Ce qui fonctionne pour moi:

  • Dans un groupe:
    • matrix -> signal = OK
    • signal -> matrix = OK
  • Dans un 1to1:
    • matrix -> signal = OK
    • signal -> matrix = OK SAUF pour mes propres messages (https://github.com/tulir/mautrix-signal/wiki/Authentication#double-puppeting)

Pour resoudre cela:

Se connecter avec votre client [MATRIX] (ex: Element)

Commencer une nouvelle conversation avec le bot (dans mon cas : @signalbot:matrix.underworld.fr)

lui dire "login-matrix

NOTA: ce jeton/token étant spécifique à votre session Element, il faut renouveller l'opération a chaque fois que vous changez de session (déconnection). Ce qui est donc "un peu ennuyeux à date".

And voila!

10) Merci

Il aura fallu 12h pour réaliser/éprouver/corriger ce tuto.

Un grand MERCI à  -> @thomas:lgy.fr [Matrix]