4.3 KiB
4.3 KiB
BRIDGE WHATSAPP ↔ MATRIX (T-W — étude, 0 installation)
Contexte décidé 12/10 : WhatsApp est indispensable (famille, amis, travail) et ne sera pas remplacé. Matrix = complément du foyer. Ce document dit ce qu'un pont apporte, ce qu'il ne donne pas, et ce qui est interdit. Aucune installation sur le numéro familial.
1. L'outil
| Point | Fait |
|---|---|
| Projet | mautrix-whatsapp (Tulir / mautrix), basé sur whatsmeow |
| Licence | AGPL-3.0 (compatible avec la règle « OSS + chemin de sortie » de la table rase) |
| Mécanisme | protocole WhatsApp Web multi-device : le serveur tient une session liée par QR code |
| Contrainte téléphone | WhatsApp impose que le téléphone se connecte au moins tous les 12 jours, sinon la session est coupée → re-link (QR) à refaire |
| État | DB (messages, préférences) + session (clés de liaison) + médias = brique stateful |
| Chiffrement | côté Matrix : E2EE gérable ; côté WhatsApp : la session standard, tes correspondants ne voient que WhatsApp |
2. Ce que le pont apporte / ce qu'il ne donne pas
| Apporte | Ne donne pas |
|---|---|
| Miroir des conversations WhatsApp dans Element (MP, groupes, médias), historique importable | un canal commun : un groupe WhatsApp et un salon Matrix ne « se parlent » pas proprement (les membres WhatsApp ne voient pas Matrix) |
| Répondre depuis Element | la fin de WhatsApp : WhatsApp reste la source |
| Lecture centralisée (1 client pour la famille + les alertes ops) | la garantie de disponibilité : pont cassé = perte de l'affichage, pas des messages |
| Base pour qu'Effi (assistante) lisse/résume des MP si tu l'autorises | la conformité : un client non officiel est contraire aux ToS WhatsApp |
3. Risques à nommer (le point qui décide tout)
| Risque | Détail | Conséquence pour nous |
|---|---|---|
| Bannissement du numéro | WhatsApp détecte les clients non officiels ; le risque est réel et non nul | ton numéro familial est « indispensable » → interdiction : jamais le numéro principal sur un pont |
| Session qui expire | > 12 jours sans connexion du téléphone = déconnexion | re-link manuel = maintenance que tu veux éliminer |
| Stateful fragile | session + DB + médias ; montée de version du protocole WhatsApp non maîtrisée | épingler par digest, exclure de Watchtower, backup session+DB dans restic |
| Confidentialité | les MP passent par un daemon sur le G9 + stockage local | à accepter explicitement (choix de périmètre) |
| Surface d'attaque | brique de plus, exposée = non (interne), mais lit un compte de communication | pas d'exposition WAN ; pas d'automatisation d'envoi |
4. Interdits écrits (T-W.3)
- Numéro familial principal : jamais relié à un pont.
- Alertes ops sur WhatsApp : le canal d'alerte reste Matrix (S8.4), pas WhatsApp.
- Aucune automatisation qui envoie des messages WhatsApp (n8n/IA) : lecture seulement, si pilote validé.
- Aucune exposition WAN du pont ; aucune ouverture ufw pour lui.
5. Si un jour GO utilisateur (pilote borné)
| Étape | Contenu |
|---|---|
| 1 | numéro secondaire isolé (numero dédié, vide, hors famille) |
| 2 | conteneur épinglé par digest, label watchtower.enable=false, DB + session dans /data/docker/whatsapp/ |
| 3 | session + DB dans les snapshots restic (vérifié) |
| 4 | 7 jours de miroir stable (pas de re-link, pas de perte de messages) |
| 5 | re-link testé (déconnexion volontaire → QR → reprise) |
| 6 | rollback documenté : docker compose -f compose/whatsapp/docker-compose.yml down (aucune donnée famille concernée) |
| 7 | journal + grille S14 (décision, raison, coût constaté) |
6. Verdict de l'étude
- Utile si l'objectif est « lire au même endroit » (Element = foyer + alertes) et que le pilote reste sur un numéro secondaire.
- Pas utile si l'objectif est de quitter WhatsApp : le pont ne fait pas ça.
- Coût de maintenance : session (QR/12 jours) + DB + médias = exactement le type de charge que tu veux supprimer. Le pont ajoute de la maintenance pour un gain de confort.
- Recommandation : étude validée, pilote non déclenché ; on en reparle quand Element tourne pour le foyer et que les alertes ops sont stables (tâche MATRICE FAMILLE), jamais avant.