مشروع ترحيل كبير لمنتديات vBulletin

مرحباً،

أنا بصدد البحث عن بديل لمنتدى vBulletin 4 ضخم (أكثر من 12 مليون مشاركة، 100 ألف مستخدم).

أنا أدرس حاليًا Discourse كخيار، ولكن تتبادر إلى ذهني عدة أسئلة، ولا يبدو أنني أجد إجابات مرضية في هذه المرحلة، لذا ربما يمكنني الحصول على فهم أفضل بطرح الأسئلة مباشرة.

هذا المنتدى مملوك لشركة، وعلى الرغم من أنه لا يحقق إيرادات، إلا أنه لا يزال مكانًا مهمًا لمجتمعه.

1/ لا أفهم الفلسفة الكامنة وراء “حاوية واحدة تقوم بكل شيء”. بالنسبة لي، دوكر (Docker) يتعلق بفصل الخدمات المصغرة (micro services) وربطها عبر شبكة دوكر (docker network). أنا معتاد على تشغيل مشاريع متعددة الحاويات (تصل إلى 10/12 حاوية مع Redis و PostgreSQL وما إلى ذلك) باستخدام أدوات دوكر فقط.
لقد قرأت الموضوع هنا: Can Discourse ship frequent Docker images that do not need to be bootstrapped? ولكنني لست متأكدًا من التبرير. عندما أرى كل ملفات التنفيذ (exec) والملفات في ملفات التجميع (compose files)، أجد أن هناك سوء فهم بين ما يفترض أن يقوم به ملف التجميع مقارنة بما يفترض أن يقوم به Dockerfile.
يجب أن تؤدي تحديثات التعليمات البرمجية إلى عمليات بناء جديدة لصور دوكر (docker images) التي سيتم سحبها ثم تشغيلها باستخدام Compose ومتغيرات البيئة.
أرى أن شخصًا ما بدأ في القيام بذلك في مشروع GitHub، ولكني أفترض أنه غير مدعوم رسميًا.
هل يمكن لشخص ما أن يقدم لي شرحًا واضحًا لـ “لماذا” الفلسفة الحالية وهل هناك أي خطط لتشغيلها كما هو الحال مع العديد من المشاريع الموجودة على الإنترنت في عام 2023؟

2/ تستخدم الشركة المالكة للمشروع Google Workspace للبريد الإلكتروني. لقد استخدمت إعداد ترحيل SMTP الخاص بجوجل لمشاريع أخرى، ولا أخطط لاستخدام أي شيء آخر لكي أتمكن من العمل. لقد قرأت أشياء مختلفة حول هذا الأمر في هذا المنتدى. هل هناك طريقة واضحة للتأكد من أنها ستعمل أم أن هناك احتمالًا بأنها لن تعمل (وهذا سيكون أمرًا حاسمًا بالنسبة لنا)؟

3/ رأيت أن هناك برامج نصية لتشغيل الترحيل من vBulletin (هنا: Migrate a vBulletin 4 forum to Discourse)، ولكن هذا يعطي تعليمات متناقضة، مثل استخدام الدليل، ولكنه يخصص الحاوية بملفات Gem. ما مدى تأثير ذلك على قابلية الصيانة أو الدعم؟ هل لا تزال الصورة مدعومة في حالة حدوث خطأ ما؟

4/ التكامل مع الأدوات الأخرى (Discord بشكل أساسي). في هذه المرحلة، يمتلك منتدى vBulletin قاعدة بيانات المستخدمين الخاصة به. هل هناك طريقة للانتقال “بسلاسة” من مستخدمي قاعدة البيانات المحلية إلى مستخدمي Discord على سبيل المثال، حيث يمكننا مطابقة المستخدمين مع تسجيل دخولهم في Discord في مرحلة ما؟

5/ هل هناك دليل بسيط للسمات (themes) يسمح بانتقال سلس، حيث أن لدي العديد من المستخدمين الذين سيضيعون، وأرغب في الحصول على أقل قدر ممكن من الضوضاء من عملية الترحيل نفسها…؟

سأعود بأسئلة أخرى محتملة، ولكن هذه هي الأسئلة الرئيسية التي لدي حتى الآن.

شكرًا لكل من سيجيب على هذا :slight_smile: جميع المدخلات محل تقدير كبير.

هذا لمن لا يعرف ما هي إدارة الأنظمة ويحتاجون إلى دعم لجعلها تعمل. بالنسبة لمنتدى كبير، ستحتاج على الأقل إلى تثبيت حاويتين، أو ربما RDS و Elasticache بدلاً من إنشاء نسختك الخاصة.

إذا كنت ترغب في الإطلاق باستخدام Dockerfile، فستحتاج إلى استخدام المشغل لبناء حاويتك وإيجاد طريقة لإدارة ترحيل قاعدة البيانات وتجميع الأصول مسبقًا.

إذا كنت تعرف كيفية استخدام Google للبريد الإلكتروني للمعاملات، فلا بأس. معظم الناس لا يعرفون، ونحن لا نريد تعليمهم.

عادةً ما يتطلب الترحيل على نطاق واسع لمنتدى قديم الكثير من التخصيص. سواء كنت تشغل الترحيل الخاص بك في بيئة تطوير أو في بيئة إنتاج داخل Docker هو مسألة ذوق. اعتدت على القيام بذلك في بيئة تطوير، ولكنني أقوم بتشغيل جميع عمليات الترحيل الخاصة بي في Docker هذه الأيام. قد يكون إيجاد طريقة لتثبيت جميع الأجزاء المختلفة محبطًا.

هل تقصد “discord” أم “Discourse؟” أو ربما تريد https://meta.discourse.org/t/configure-discord-login-for-discourse/127129؟

مهما فعلت، يكره الناس التغيير. لا أعتقد أن محاولة جعل Discourse يشبه vBulletin يساعد. إذا كنت تريد أن يتصرف منتدى الخاص بك مثل vBulletin، فاستمر في استخدامه. هناك الكثير من السمات التي تفعل الكثير من الأشياء. لا يوجد دليل حقًا سوى Search results for '#theme-component' - Discourse Meta. يمكنك البحث هناك.

أحد الأشياء التي أعتقد أن شخصًا ما فاته هو أنه على الرغم من أن المرة الأولى التي تشغل فيها البرنامج النصي ستستغرق أيامًا، إلا أن التشغيلات اللاحقة أسرع لأنها تتخطى البيانات التي تم استيرادها بالفعل، لذلك لن يستغرق التشغيل النهائي وقتًا طويلاً.

إعجاب واحد (1)

مرحباً :wave:

سأجيب على هذا فقط لأنني لست كفؤًا في المجالات الأخرى. أتحدث عن الانتقال السلس لاحقًا في منشوري.

من حيث التخصيص، يمكنك تعديل CSS من محرر مدمج، بالإضافة إلى إضافة Javascript واستخدام واجهة برمجة تطبيقات Discourse الخاصة بـ JS. من الناحية المرئية، إذا لم يعجبك شيء ما، فما عليك سوى إخفاؤه أو تغييره.

دليل القوالب الرسمي موجود هنا، Developing Discourse Themes & Theme Components.

قد لا يكون محدثًا بالكامل حيث نقوم حاليًا بترقية بعض مكونات JS على المدى الطويل.

حوالي 100٪ من القوالب ومكونات القوالب والإضافات المنشورة هنا هي مفتوحة المصدر، لذا يمكنك دائمًا إلقاء نظرة على شفرتها لإنشاء حلولك الخاصة.

قالب هو في الأساس غلاف مع أو بدون ميزات مضافة.
مكون قالب يضيف عادةً ميزات.
إضافة تضيف ميزات أكثر تعمقًا من جانب الخادم.

بالنسبة لمجتمعاتي الخاصة، أحاول استخدام التخصيصات الرسمية فقط أو تلك من مؤلفين أو شركات موثوقة وراسخة مثل pavilion. وكذلك الشخصية بالطبع، حيث يمكنني صيانتها بنفسي.

يمكن إضافة وإزالة القوالب ومكونات القوالب في وقت التشغيل، بينما يتطلب تثبيت وإلغاء تثبيت الإضافة إعادة بناء تطبيق سطر الأوامر (10-15 دقيقة من وقت التوقف).


أما بالنسبة للانتقال السلس لمجتمع من شأنه تخفيف ارتباك المستخدمين أو غضبهم، فهذا صعب في بعض الأحيان. من الواضح أن درجة السعادة 100٪ شبه مستحيلة.
بالإضافة إلى ذلك، فإن بعض المجتمعات بالتأكيد أكثر تحفظًا أو صخبًا من غيرها وستتفاعل وفقًا لذلك.

من منظور المستخدم، أود أن أقول إن الانتقادات الأكثر تكرارًا التي تم توجيهها هي:

  • لا مزيد من ترقيم الصفحات
    تم استبداله بجدول زمني تفاعلي. كلاهما لهما مزايا وعيوب. سمعت أحيانًا أشخاصًا غير قادرين على التكيف مع هذا التغيير.
    تجربتي من 3 عمليات ترحيل لمنتديات صغيرة ومتوسطة الحجم هي أنه لم يكن لأحد في مجتمعاتي تجربة سلبية مع شيء الجدول الزمني.

  • الواجهة معقدة
    تحتوي الواجهة على عناصر أكثر من الماضي، حيث تمت إضافة الميزات بمرور الوقت. قائمة الإشعارات أصبحت أكبر، وتم تقديم الشريط الجانبي، وتمت إضافة ميزة الدردشة (قد لا تكون ضرورية إذا كان لديك خادم Discord).
    نحن ندرك تمامًا تعقيد الواجهة، ونود بالتأكيد أن تكون هناك أجزاء أكثر انسيابية.
    هناك بالتأكيد منحنى تعلم مع Discourse. بينما كونه منتدى يحتوي على نفس ميزات أي برنامج منتدى آخر (نشر مواضيع، نشر ردود/رسائل خاصة، هذا كل شيء…)، فإنه يختلف عن هنا من حيث الواجهة والميزات المضافة. أود أن أقول إن معظم الناس لا يواجهون مشكلة خاصة مع ذلك، ولكن مجتمع هذا المنتدى قد يكون متحيزًا لأن معظم الناس هنا يعرفون Discourse.
    عندما تعتاد على الواجهة، فإنك لا ترى ضوضاء بعد الآن وتركز على الميزات التي تستخدمها بالفعل، لكنني أتفهم أن هذا ليس بالضبط ما يشغل بالك هنا حيث تركز على الترحيل/الانتقال.

هناك أداتان مدمجتان تساعدان الأشخاص على فهم الواجهة والميزات.

  1. @discobot. إنه مستخدم روبوت تفاعلي يمكننا التفاعل معه، وهو يعلمنا كيفية استخدام بعض ميزات المناقشة.

  2. نصائح للمستخدمين الجدد. عند التسجيل، ستظهر تلميحات في الواجهة لشرح أجزاء مختلفة. يمكنك تعطيلها في أي وقت من أي تلميح وإعادة الاشتراك من تفضيلات المستخدم الخاصة بك.

من منظور المسؤول، سيكون:

  • هناك الكثير من الإعدادات
    نعم، هناك العديد من الخيارات في Discourse. سيستغرق تكوين المنتدى بعناية ساعات وربما يحتاج إلى تعديلات حتى تكون راضيًا. الشيء الجيد هو أنه عندما يتم ذلك، نادرًا ما تعود إلى تعديل الإعدادات.
    نحن نعلم أن العديد من الإعدادات يمكن أن تكون مخيفة وأحيانًا تجعل العثور على شيء ما صعبًا. هناك مجال للتحسين.

أخيرًا، يمكنك استخدام صندوق رمل المستخدم على try.discourse.org.
لا يوجد صندوق رمل للمسؤول. عندما أرغب في تجربة الأشياء على مستوى المسؤول، أقوم عادةً بإعداد خادم Hetzner بمواصفات منخفضة (يتم فوترته بالساعة) أقوم فيه بتثبيت Discourse لبضع ساعات أو أيام.

3 إعجابات