حسنًا، على الرغم من أنني لست خبيرًا، إلا أنني أعتزم مشاركة آخر ما توصلت إليه من اكتشافات في Discourse. معظمها جاء من خلال التجربة والخطأ ![]()
سأكون سعيدًا بمشاركة هذه المعلومات بعد انتهائي منها وحين يتوفر لي الوقت. النقطة المهمة في الاستضافة الذاتية (Self-hosting) هي أن كل خادم يُدار بشكل شخصي، لذا تختلف إعدادات الأمن من خادم لآخر.
في حالتي، أستخدم Nginx كوكيل عكسي (Reverse Proxy)، بينما يستخدم آخرون Nginx Proxy أو Caddy أو Traefik، وغيرها. بالإضافة إلى ذلك، يفضل بعضنا استخدام شبكة مشتركة من Docker، بينما يستخدم آخرون جسرهم الأصلي (Bridge) بحيث يمكن لجميع التطبيقات أن «ترى» بعضها البعض.
أهم شيء عند استضافة Livekit هو تعيين الأسرار (Secrets)، وإعداد الصلاحيات الصحيحة، وتقوية القالب الذي يستخدمه Docker، لتقييد كل شيء قدر الإمكان. بما أنه شبكة عامة والمشروع نفسه في مراحل مبكرة من التطوير، فمن الأفضل أن نكون حذرين على أن نندم لاحقًا.
أعتقد أنهم يقدمون خدمة سحابية (Cloud)، لكن الاستضافة الذاتية هي أكثر بكثير من مجرد موقع إلكتروني (!)
يتكون LiveKit من عدة طبقات: خدمات API، وتوجيه لاكتشاف العقد (Nodes)، ووحدة RTC مركزية تدير الغرف والمشاركين، ومعالجة الوسائط المتعددة (SFU) التي تتعامل مع إعادة توجيه RTP والبث التكيفي، وتخزين للتخزين المؤقت (مثل Redis)، وطبقة بنية تحتية تشمل القياسات (Telemetry) والإعدادات.
ربما يمكن لشخص من فريق Discourse أو مستخدم أكثر خبرة تصحيحني إذا كنت مخطئًا، لكنني أفهم أنه في هذه الحالة سيكون من الضروري (أو أداة مشابهة) أن يكون لديك النطاقات الفرعية (Subdomains) المطلوبة للاتصال.
على أي حال، يمكنك أيضًا القيام بذلك داخليًا، لكن للإجراءات معينة، تُطلب شهادات (Certificates)، والشهادات المولدة محليًا لا تعمل دائمًا.