OpenWA : ce que le dépôt documente réellement
OpenWA est une passerelle API WhatsApp auto-hébergée pour les applications qui doivent envoyer des messages et gérer des sessions sur leur propre serveur.
En bref
- De quoi s’agit-il ?
- Analyse française de OpenWA, de son périmètre technique et des vérifications propres à son usage.
- À qui s’adresse-t-il ?
- OpenWA s adresse aux équipes dont le besoin correspond à sessions WhatsApp, l API HTTP et les variables de configuration. Il convient moins à celles qui attendent une garantie absente du README.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement TypeScript, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
OpenWA : Une passerelle auto-hébergée avec un noyau enfichable
OpenWA est une passerelle API WhatsApp auto-hébergée, gratuite et open source, écrite en TypeScript. Le README la décrit comme un moyen pour les développeurs de faire fonctionner leur propre infrastructure de messagerie sans verrouillage fournisseur. Son architecture enfichable permet de choisir le moteur de base de données (SQLite ou PostgreSQL), le backend de stockage de sauvegarde et de migration (disque local ou S3) et la couche de cache (désactivée ou Redis) par configuration plutôt que par modification du code applicatif. Les fichiers média envoyés ou reçus sont renvoyés en ligne aux consommateurs API et webhook ; le README indique qu'ils ne sont pas automatiquement persistés dans le backend de stockage. Les métadonnées du dépôt listent 12 423 étoiles, 2 817 forks et 6 problèmes ouverts.
Dans OpenWA, le point 1 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
OpenWA : Une connexion non officielle et des risques explicites
Le README est direct sur le fait qu'OpenWA n'est pas un produit officiel de Meta. Il se connecte à WhatsApp via des clients rétro-ingéniés, à savoir whatsapp-web.js et Baileys, et non via l'API Cloud de Meta. Le README avertit qu'il existe toujours un risque non nul de restriction ou de bannissement de compte et recommande d'utiliser un numéro dédié dont vous pouvez accepter la perte. Les deux moteurs présentent des compromis différents : whatsapp-web.js pilote un Chromium sans tête et ressemble à un trafic WhatsApp Web authentique, avec un risque de bannissement plus faible mais environ 300 à 500 Mo de RAM par session ; Baileys parle directement le protocole multi-appareils, est plus facile à identifier et utilise environ 30 à 80 Mo par session. Le README énumère également des directives d'envoi sécurisées : chauffer les nouveaux numéros, ne pas envoyer en masse à des inconnus, limiter le débit d'envoi, utiliser des destinataires opt-in, conserver un canal de secours non-WhatsApp pour les flux critiques et savoir que les IP de datacenter sont signalées plus agressivement. Il note que les premiers messages à des contacts entièrement nouveaux peuvent être supprimés par la politique côté serveur de WhatsApp et que les comptes restreints ne peuvent pas être rétablis par OpenWA. Pour les environnements réglementés, le README recommande l'API Cloud officielle de Meta.
Dans OpenWA, le point 2 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
OpenWA : Ce que couvrent les tableaux de fonctionnalités
La liste des fonctionnalités du README est organisée en groupes : cœur, messagerie, avancé et infrastructure. Les fonctionnalités principales incluent une API REST, la gestion multi-sessions, des webhooks avec signature HMAC et filtres intelligents optionnels de pré-dispatch, un tableau de bord web, l'authentification par clé API et la documentation Swagger. La messagerie couvre le texte, les médias, les réactions, les modifications, les envois groupés et le statut de livraison/lecture. Les capacités avancées incluent la gestion de groupes, les mises à jour de profil, les événements d'appel avec rejet automatique par session, la prise en charge des chaînes WhatsApp, les étiquettes, la configuration de proxy par session, la limitation de débit configurable, la liste blanche CIDR et la journalisation d'audit pour les opérations de clé API, de session, d'instance d'intégration et d'administration d'infrastructure. Les fonctionnalités d'infrastructure incluent SQLite et PostgreSQL, un cache Redis optionnel, la sauvegarde et la migration du répertoire média S3/MinIO, le déploiement Docker, les contrôles de santé prêts pour Kubernetes et la migration de données entre backends. Le README marque tout cela comme fait ; il ne fournit pas de chiffres de référence ni de vérification indépendante.
Dans OpenWA, le point 3 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
OpenWA : Deux chemins de démarrage rapide et profils de production
Le README propose deux façons d'exécuter OpenWA. Le chemin Docker recommandé consiste à cloner le dépôt et à exécuter docker compose -f docker-compose.dev.yml up -d. Cela démarre l'API avec le tableau de bord inclus sur le même port ; le tableau de bord est sur http://localhost:2785, l'API sur /api et Swagger sur /api/docs. Pour le développement local, les instructions sont npm ci suivi de npm run dev, avec le tableau de bord servi par un serveur de développement Vite sur le port 2886 et l'API sur 2785. Les déploiements de production utilisent le docker-compose.yml principal avec des profils optionnels : postgres ajoute PostgreSQL, redis ajoute Redis, minio ajoute un stockage compatible S3 et full active les trois. Le README note que les images GHCR officielles sont multi-architectures pour linux/amd64 et linux/arm64, et que pour TLS ou exposition publique, vous devez placer votre propre reverse proxy devant. Les utilisateurs Podman rootless sont invités à démarrer le socket Podman et à définir DOCKER_HOST.
Dans OpenWA, le point 4 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
OpenWA : Mesures de sécurité dans le conteneur de production
Deux mesures de sécurité ressortent du README. Premièrement, la pile de production n'expose pas le socket Docker directement au conteneur d'application. Un sidecar docker-proxy basé sur tecnativa/docker-socket-proxy est la seule passerelle vers le démon Docker, et seules les opérations nécessaires à l'orchestration des conteneurs sont activées. Le README avertit qu'il s'agit d'une passerelle opérationnelle, pas d'une frontière de privilèges fine : avec POST activé, le proxy ne peut pas limiter les charges utiles de création de conteneur, donc un conteneur API compromis pourrait être équivalent à root de l'hôte. Deuxièmement, l'image de production exécute le processus Node.js en tant qu'utilisateur non-root. La chaîne de démarrage utilise dumb-init comme PID 1, un docker-entrypoint.sh qui ne s'exécute en root que pour chown les volumes nommés, et gosu pour passer à l'utilisateur openwa. Le README indique que la propriété des volumes nommés est corrigée automatiquement à chaque démarrage.
Dans OpenWA, le point 5 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
OpenWA : Exemples d'API, webhooks et serveur MCP optionnel
Le README contient des exemples curl pour créer une session, la démarrer et obtenir le code QR, envoyer un message texte et enregistrer un webhook. L'enregistrement d'un webhook accepte une URL, une liste d'événements et un secret optionnel pour la vérification HMAC. Des filtres intelligents peuvent être ajoutés sous forme d'objet conditions avec une logique ET, en utilisant des champs tels que sender, recipient, body, type, mentions, fromMe, hasMedia et isGroup. Un webhook sans filtre se comporte comme avant. Le serveur MCP est séparé et désactivé par défaut. Définir MCP_ENABLED=true monte un transport Streamable-HTTP sans état sur POST /mcp sur le serveur existant, exposant environ 39 outils sélectionnés pour les sessions, la messagerie, les contacts, les opérations de groupe de base et les lectures de webhook. Le README indique que chaque appel d'outil passe par la même authentification par clé API, le même rôle et le même cadrage par session que REST. Il recommande une clé dédiée, à moindre privilège et limitée à une session, avertit que les clés avec une liste blanche IP sont rejetées car il n'y a pas de véritable IP client sur MCP, et dit que l'exposition publique de /mcp doit être derrière un proxy d'authentification ; OAuth 2.1 n'est pas encore construit.
Dans OpenWA, le point 6 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
OpenWA : Pile technique, documentation et licence
Le tableau de la pile technique liste Node.js 22 LTS, NestJS 11.x, TypeScript 6.x, TypeORM et Docker. Le moteur WhatsApp est sélectionné avec la variable ENGINE_TYPE, whatsapp-web.js étant le défaut et Baileys l'alternative. La structure du dépôt montre un répertoire src avec des modules pour session, message, webhook, group, contact, auth, infra et health, plus un tableau de bord React et un dossier docs. Le dossier docs comprend une vue d'ensemble du projet, une spécification des exigences, une architecture système, une conception de sécurité, une conception de base de données, une spécification API, des directives de développement et un guide de migration. Le projet est sous licence MIT. Le texte de la licence autorise l'utilisation, la copie, la modification, la fusion, la publication, la distribution, la sous-licence et la vente de copies, et stipule que le logiciel est fourni tel quel, sans garantie d'aucune sorte. Le README ne revendique aucun engagement de support ni garantie de sécurité au-delà de ce que disent la licence et les descriptions d'architecture.
Dans OpenWA, le point 7 doit être lu à partir des éléments réellement décrits par le README. OpenWA ne permet pas d attribuer une compatibilité que le dépôt ne revendique pas. La commande npm install puis la configuration de session décrite dans le README sert à observer sessions WhatsApp, l API HTTP et les variables de configuration. Relevez la sortie, les erreurs et les versions utilisées; ces observations répondent à une question propre à OpenWA, pas à une règle générale. La licence MIT encadre la réutilisation sans constituer une garantie.
Conclusion éditoriale
OpenWA s adresse aux équipes dont le besoin correspond à sessions WhatsApp, l API HTTP et les variables de configuration. Il convient moins à celles qui attendent une garantie absente du README. Commencez par npm install puis la configuration de session décrite dans le README, contrôlez sessions WhatsApp, l API HTTP et les variables de configuration, notez les versions et les erreurs, puis confrontez ce résultat aux contraintes de votre application. Lisez aussi les termes MIT avant redistribution.
Notes de la communauté