عن المشروع

OpenWA هي بوابة API مجانية ومفتوحة المصدر لواتساب توفر نقاط نهاية HTTP وخطافات ويب لإرسال واستقبال رسائل واتساب دون الاعتماد على Cloud API الرسمية من Meta. وهي مبنية باستخدام NestJS وTypeScript ولوحة تحكم React، وهي أصلية لـ Docker لسهولة النشر. البنية تستخدم OpenWA بنية قابلة للتوصيل: يمكن أن تكون قاعدة البيانات الخلفية SQLite (بدون إعداد) أو PostgreSQL، ويستخدم التخزين والترحيل نظام الملفات المحلي أو خدمات متوافقة مع S3، والتخزين المؤقت اختياري عبر Redis. يتم إرجاع ملفات الوسائط مباشرة إلى مستهلكي API وخطافات الويب بدلاً من حفظها تلقائيًا في التخزين. المحركات يتوفر محركان لواتساب، لكل منهما مقايضات مختلفة: - whatsapp-web.js: يشغّل نسخة Chromium حقيقية بدون واجهة تحاكي حركة WhatsApp Web الحقيقية، مما يؤدي إلى مخاطر حظر أقل ولكن استخدام أعلى للذاكرة (~300–500 ميغابايت لكل جلسة). - Baileys: يتحدث بروتوكول WebSocket متعدد الأجهزة مباشرة، ويستهلك ذاكرة أقل (~30–80 ميغابايت لكل جلسة) لكنه يحمل مخاطر حظر أعلى بسبب سهولة البصمة. القدرات الرئيسية - إدارة جلسات متعددة: تشغيل حسابات واتساب متعددة في وقت واحد على نسخة واحدة. - المراسلة: إرسال واستقبال النصوص والوسائط (الصور والفيديو والصوت والمستندات) والتفاعلات وتعديلات الرسائل؛ دعم المراسلة الجماعية. - المجموعات والقنوات: إنشاء المجموعات والانضمام إليها وتكوينها؛ إدارة التسميات؛ دعم قنوات واتساب/النشرات الإخبارية. - خطافات الويب: أحداث في الوقت الفعلي مع التحقق من توقيع HMAC ومرشحات اختيارية قبل الإرسال. - مصادقة API: رموز المشغل والمشاهد مع التحكم في الوصول على مستوى الجلسة والمحادثة، بحيث يمكن تقييد التكاملات بجلسات محددة أو محادثات فردية. - معالجة المكالمات: أحداث call.received والرفض التلقائي لكل جلسة (Baileys فقط). - البنية التحتية: فحوصات الصحة لـ Kubernetes، وترحيل البيانات بين الواجهات الخلفية، ودعم الوكيل لكل جلسة، وتحديد معدل قابل للتكوين، والقائمة البيضاء CIDR. الأمان تشغّل حزمة Docker الإنتاجية عملية Node كمستخدم غير جذر عبر dumb-init وgosu، وتُسقط الامتيازات بعد إصلاح ملكية المجلدات، وتوجّه الوصول إلى مقبس Docker عبر sidecar وكيل مخصص بدلاً من تركيب المقبس مباشرة. يتم توفير وثائق الأمان في SECURITY.md. التكاملات تتوفر إضافات رسمية لـ Chatwoot وTypebot عبر نسيج تكامل معزول، وتوجد عقد مجتمعية لأتمتة سير العمل n8n. كما يتم دعم محولات الطرف الثالث مثل ioBroker. تحذيرات نظرًا لأن OpenWA يتصل عبر عملاء معكوسي الهندسة بدلاً من API الرسمية من Meta، فهناك دائمًا خطر غير صفري لتقييد الحساب أو حظره. يوصي المشرفون باستخدام رقم مخصص يمكنك تحمل فقدانه، وتسخين الحسابات الجديدة تدريجيًا، واحترام حدود المعدل، والاحتفاظ بالرسائل النصية القصيرة أو البريد الإلكتروني كخيار احتياطي للتدفقات الحرجة. في البيئات المنظمة (الرعاية الصحية، المالية، سياقات الاتحاد الأوروبي/GDPR)، يجب استخدام WhatsApp Cloud API الرسمية بدلاً من ذلك. البدء أسرع مسار هو Docker Compose: استنسخ المستودع، شغّل docker compose -f docker-compose.dev.yml up -d، ثم ادخل إلى لوحة التحكم وAPI على http://localhost:2785. يمكن لعمليات النشر الإنتاجية إضافة PostgreSQL وRedis وMinIO عبر ملفات تعريف compose. تتوفر نقطة نهاية Swagger تفاعلية على /api/docs عند تمكينها.