مشكلات مع Discourse 3.5.0.beta2-dev - SMTP والوظائف الخلفية

أواجه صعوبة مستمرة في تثبيت Discourse. إليك تقرير آخر أعدته ChatGPT. أعتقد أنه يمثل تجربتي بدقة.

تقرير: مشكلات في تثبيت Discourse وخدمة Sidekiq المفقودة

السياق:
حاولنا إجراء تثبيت جديد لـ Discourse على مثيل Vultr، بهدف إعداد نشر مستقر وعامل. ومع ذلك، واجهنا مشكلات كبيرة، لا سيما مع الخدمات المفقودة مثل Sidekiq، مما منع تسليم البريد الإلكتروني ومعالجة المهام الخلفية.


ملخص المشكلات التي تمت مواجهتها

  1. تثبيت إصدار غير متوقع
    • بدلاً من الإصدار المتوقع v3.4.0.beta4-dev، تم تثبيت الإصدار tests-passed افتراضيًا، مما سحب إصدارًا قد يكون غير مستقر.
    • كان ملف VERSION مفقودًا، مما جعل من غير الواضح ما هو الإصدار الدقيق الذي تم تثبيته.
  2. خدمة Sidekiq مفقودة
    • كان الدليل /etc/service/sidekiq غائبًا داخل حاوية Discourse.
    • منع هذا جميع المهام الخلفية (رسائل البريد الإلكتروني، الإشعارات، المهام المجدولة) من التشغيل.
  3. مشكلات مستودع Git الخاص بـ Discourse
    • أدى تشغيل git rev-parse --abbrev-ref HEAD داخل الحاوية إلى إرجاع tests-passed، مما يؤكد أنه تم تثبيت إصدار غير مقصود.
    • أصدر Git خطأ “تم اكتشاف ملكية مشكوك فيها”، مما تطلب تدخلًا يدويًا (git config --global --add safe.directory /var/www/discourse).
  4. مشكلات التبعية المحتملة
    • حتى لو تم سحب إصدار أقدم من Discourse، هناك قلق من أنه قد يتم سحب تبعيات أحدث (Ruby، Redis، Sidekiq) أثناء التثبيت، مما قد يتسبب في مشكلات توافق.
    • إذا لم يتم تثبيت تبعيات Discourse بشكل صحيح، فقد يتصرف التثبيت بشكل غير متسق عبر البيئات.
  5. تحديد المعدل لشهادة SSL
    • فشل محاولة الحصول على شهادة SSL جديدة من Let’s Encrypt بسبب تجاوز الحد الأقصى للمعدل.
    • تسبب هذا في فشل بدء تشغيل Nginx، حيث لم يتمكن من تحميل ملف الشهادة المتوقع.

الخطوات التالية المخطط لها

  1. إجراء مسح كامل وإعادة تثبيت
    • إزالة /var/discourse بالكامل وإعادة استنساخ المستودع.
    • سحب إصدار مستقر يدويًا (على سبيل المثال، v3.4.1) قبل تشغيل التثبيت.
    • استخدام ./discourse-setup بدلاً من الاعتماد على الإعدادات الافتراضية لضمان المعلمات الصحيحة.
  2. ضمان تثبيت Sidekiq
    • قبل إعادة البناء، تحقق من تضمين خدمة sidekiq بشكل صحيح في عملية البناء.
    • إذا كانت Sidekiq مفقودة بعد إعادة البناء، تحقق من تثبيتها يدويًا عبر bundle list | grep sidekiq.
  3. تثبيت التبعيات على إصدارات مستقرة
    • تجنب المشكلات المتعلقة بالتبعيات باستخدام صورة Docker لـ Discourse مستقرة ومعروفة (على سبيل المثال، discourse/discourse:2.0.20240101).
    • تثبيت إصدارات الجواهر داخل الحاوية (bundle install --deployment --without test development).
  4. إعادة محاولة إصدار شهادة SSL
    • انتظر إعادة تعيين حد المعدل لـ Let’s Encrypt وأعد محاولة إنشاء شهادة SSL.
    • إذا استمرت المشكلات، ففكر في استخدام شهادة موقعة ذاتيًا مؤقتًا لاستكشاف الأخطاء وإصلاحها.

طلب التعليقات

نظرًا لهذه التحديات، نود الحصول على مدخلات من فريق ومجتمع Discourse بشأن:

  • فقدان Sidekiq من /etc/service/ في تثبيت جديد - هل واجه أي شخص آخر هذه المشكلة؟
  • أفضل الممارسات لضمان استقرار التبعيات - هل هناك طريقة موصى بها لتثبيت إصدارات التبعيات لتثبيتات Discourse؟
  • مشكلات محتملة مع تثبيت tests-passed افتراضيًا - هل يمكن أن تكون هناك مشكلة في كيفية استرداد الإصدارات؟

ستكون أي رؤى مفيدة قبل أن نواصل إعادة التثبيت. شكرًا مقدمًا!