Outils pour utilisateurs

Outils du site


documentation:sans-nuage:whatsappbridge

Ceci est une ancienne révision du document !


Créer et maintenir son bridge Whatsapp sur une instance Yunohost

Pour gérer votre bridge Whatsapp sur votre instance Yunohost, voici ce dont vous aurez besoin :

Applications Yunohost
  1. Application Synapse : https://github.com/YunoHost-Apps/synapse_ynh (Maintenu par la communauté)
  2. Client Element : https://github.com/YunoHost-Apps/element_ynh (Maintenu par la communauté)
  3. Bridge Signal : https://github.com/YunoHost-Apps/mautrix_signal_ynh (jusque 03/2022 maintenu par gaut d'ARN (gaut)
  4. Bridge Whatsapp : https://github.com/YunoHost-Apps/mautrix_whatsapp_ynh (jusque 03/2022 maintenu par gaut d'ARN (gaut)
Documentation
  1. Documentation de déploiement et maintenance : https://wiki.arn-fai.net/benevoles:procedures:sans-nuage
  2. Documentation utilisateur (cette doc) : https://wiki.arn-fai.net/documentation:sans-nuage:whatsapp

Fonctionnement

  • Le bridge est basé sur Whatsapp Web, une page web permettant de discuter via navigateur sur Whatsapp.
  • Whatsapp n'autorise pas une connexion principale sur le client web, il est nécessaire de se connecter sur un téléphone régulièrement toutes les 2 semaines afin de maintenir la session web active.
  • Mais, pour éviter l'utilisation d'un téléphone, il est possible d'utiliser l'application sur une machine virtuelle Android.

Maintenance

  • Se connecter avec le compte robot “@Compte administrateur défini à l'installation” sur le client Element. Vérifier l'état du bridge avec les commandes dans la discussion “WhatsApp Bridge Bot”
  • OU Aller sur n'importe quel salon bridgé WhatsApp avec un compte administrateur du bridge
  • Taper la commande “!wa ping” pour vérifier l'état de la connexion
  • Si la connexion semble problématique, Entrer la commande “!wa reconnect”

Dans le cas d'un échec des commandes !

  • Vérifier s'il existe une mise à jour pour le bridge, voir la section “ Mettre à jour les paquets
  • Vérifier s'il existe une mise à jour de l'application Whatsapp sur le téléphone ou la machine virtuelle, voir la section “ Se connecter au système Android
  • Si le bridge semble ne plus être connecté à l'application WhatsApp du téléphone ou de la machine virtuelle LineageOS, voir le point suivant
  • Si le bridge est à jour, connecté à une application Whatsapp, elle aussi à jour, nous allons chercher de l'aide :
  • Regarder les logs /var/log/mautrix_whatsapp/mautrix_whatsapp.log et /var/log/matrix-synapse/homeserver.log
  • Envoyer les erreurs sur le salon de support du bridge whatsapp : https://matrix.to/#/#whatsapp:maunium.net

Mettre à jour les paquets YunoHost des bridges

  1. Dans le cas de modifications mineures, sur Github
    1. Mettre à jour le paquet Upstream.
      1. Modifier les sources des fichiers dans “conf/xxx.src” pour que le paquet aille chercher les nouvelles sources automatiquement.
        1. Changer l'URL de la source
        2. Le Checksum SHA 256
        3. La valeur SUM correspondante
      2. rmq: le paquet yunohost télécharge les sources du paquet upstream (synapse, mautrix_whatsapp,..).
    2. Mettre à jour le fichier “conf/config.yaml ”
      1. En comparant les deux versions, via le lien suivant : https://github.com/mautrix/whatsapp/compare/v0.2.4...v0.3.0 , en prenant soin de vérifier les deux versions concernées.
      2. Le but est de conserver les paramètres du paquet Yunohost (ENCRYPTION,…) en mettant à jour les lignes concernées par les nouvelles mises à jour.
    3. Modifier le numéro de version dans le “manifest.json” du paquet concerné.

Rmq: les paquets yunohost sont toujours centrés sur 5 scripts, backup, … etc et donc entre version de yunohost ça peut changer genre upgrade de bullseye.

  La partie settings:

il y a la liste des messages autorisés que le bot doit prendre en compte. Si tu en mets un en commentaire ça le supprime de la liste des messages autorisés. Permet entre autre de ne pas relayer les messages du bot whatsapp vers signal et vice-versa

Se connecter au système Android

  1. Se connecter à l'hôte qui fait tourner la VM
  2. si lsvps | grep lineageos n'indique pas running, Démarrer la VM : gnt-instance start lineageos
  3. Créer un pont ssh entre un port de la VM Android WhatsApp de l'infrastructure et votre PC
  4. Installer Tight VNC (vncviewer)
  5. Lancer VNC : vncviewer localhost:5001
  6. Rentrer dans l'app Whatsapp et vérifier que tout roule
    1. Entrer le mdp pour déverouiller lineageOS, attention à la casse. Parfois il faut cliquer avec le clavier virtuel Android plutot qu'utiliser le clavier pour que le mdp passe.
    2. L'app WA est protégée contre l'ouverture, il faut cliquer sur une notification ou aller dans Aurora Store pour l'ouvrir
    3. puis rentrer le schéma pour déverrouiller l'app
    4. vérifier dans Aurora Store que l'app WhatsApp est à jour
    5. vérifier dans l'app WA que le Bridge apparaît dans les appareils connectés. Sinon, la partie difficile commence.

Déployement VM LineageOS/WhatsApp sur l'infra

!!! Attention à toujours bien vérifier que suffisamment de place est dispo lors de la création et de déplacement des disques virtuels

Pour quelques indications plus visuelles, voir https://sans-nuage.fr/file/f/131980 (ce serait cool de rajouter des screenshots dans ce tuto)

  1. créer une VM d'infra à l'aide du script create-vm-arn 5GoSSD 1Go RAM
  2. Monter l'ISO de LineageOS (anciennement CyanogenMod) 14.1 https://www.android-x86.org/releases/releasenote-cm-x86-14-1-r4.html par exemple cm-x86_64-14.1-r4-k419.iso
  3. Installer LineageOS sans fioritures (ext4, puis GRUB, et /system en mode read-write pas nécessaire sauf pour bidouiller en
  4. avancé ⇒ auto-install
  5. francais
  6. configurer en tant que nouvel appareil
  7. configurer le réseau VirtWifi
    1. IP statique
    2. 89.234.151.154
    3. Passerelle : 169.254.42.1
    4. longueur préfixe : 32
    5. DNS 1 : 89.234.141.66
    6. DNS 2: 80.67.169.12
  8. Trouver l'ID du disque virtuel associé (.disk0_data)
  9. Compresser le disque virtuel au format qcow2: qemu-img convert -p -O qcow2 -c /dev/vg0/801c39ab-c6fc-47d3-9e55-3225f8f8f754.disk0_data lineage_ganeti_5GB_compressed.qcow2
  10. Déplacer le disque virtuel vers un laptop avec webcam. Depuis le laptop taper : scp user@serveur.fr:~/lineage_ganeti_5GB_compressed.qcow2 ~/
  11. Créer la VM sur l'hyperviseur du laptop, (testé avec VirtualBox) à partir du disque virtuel précédent
  12. Configurer LineageOS, surtout le réseau VirtWifi en DHCP
  13. flasher le QR code fourni par le bot mautrix_whatsapp
  14. Vérifier que tout fonctionne au niveau du bridge.
  15. Eteindre la VM sur l'hyperviseur du laptop
  16. Compresser le disque virtuel au format qcow2 si besoin
  17. vérifier que suffisamment de place est dispo sur l'host où vous voulez upload le disque
  18. Replacer le disque de la VM configurée sur l'host primaire de la VM lineageOS sur l'infra. Depuis le laptop taper : scp ~/lineage_ganeti_5GB_compressed.qcow2 user@serveur.fr:~/lineage_ganeti_5GB_compressed_bridge_loggedin.qcow2
  19. Si vous avez copié sur le mauvais host, faites gnt-cluster copyfile lineage_ganeti_10GB_compressed_20210109_loggedin.qcow2
  20. Décompresser le disque virtuel vers le LV originellement créé par ganeti: qemu-img convert -p -O raw lineage_ganeti_5GB_compressed_bridge_loggedin.qcow2 /dev/vg0/801c39ab-c6fc-47d3-9e55-3225f8f8f754.disk0_data
  21. Repasser sur master le cas échéant puis démarrer la VM
  22. Rentrer le mot de passe lineage au démarrage de la VM.
documentation/sans-nuage/whatsappbridge.1651399199.txt.gz · Dernière modification : 2022/05/01 11:59 de optogram