استضافة Discourse على Raspberry Pi؟

في رأيي، من الأفضل لك الانتظار حتى إصدار Raspberry Pi 5 النهائي، الذي – إذا قمت برسم تقدم أداء Pi من الإصدار 2 إلى 3 ثم إلى 4 – من المفترض أن يكون لديه قوة كافية لتشغيل Discourse.

لست متأكدًا مما إذا كانت تبعيات x86 (x64؟) قابلة للتغلب عليها حاليًا، لكن من فكرة جيدة النظر فيها على المدى الطويل.

مجموعة من أجهزة Pi 4 ذات النواة الرباعية 64 بت بسرعة 1.5 جيجاهرتز، مع احتمال استخدام أقراص USB3 للتخزين (حوالي 300 ميجابايت/ثانية) أو مخزن كائنات خارجي (مثل S3 أو GCP)، بالإضافة إلى شبكة توصيل محتوى (CDN) أمام المستخدمين المجهولين، قد تكون بديلاً ممكنًا للمنصة :slight_smile: المستقبل هو من سيكشف ذلك!

هذا الرقم ليس ذا دلالة كبيرة بمفرده.

لم تحدد بطاقة الـ microSD المستخدمة، لكن الأرقام تقع في نفس رتبة المقدار الخاصة ببطاقة Lexar Professional 1800x، التي يمكنها الحفاظ على سرعات قراءة تسلسلية تبلغ حوالي 300 ميجابايت/ثانية وسرعات كتابة تقترب من 250 ميجابايت/ثانية. ومع ذلك، فإن القراءات والكتابة التسلسلية ليست المشكلة الأساسية في بطاقات microSD؛ بل يجب التركيز على القراءات والكتابة العشوائية لفهم ما سيحدث فعليًا عند استخدام عدة مستخدمين لقاعدة البيانات والأصول المحلية في آن واحد.

تقع أجهزة SSD الحديثة عادةً في نطاق سرعات قراءة تسلسلية تزيد عن 500 ميجابايت/ثانية وسرعات كتابة تسلسلية تزيد عن 475 ميجابايت/ثانية، وهي أرقام ليست بعيدة جدًا عن الأرقام المذكورة أعلاه. أما الفارق في الأداء عند التعامل مع القراءات والكتابة العشوائية فهو هائل؛ حيث يمكن لنفس جهاز SSD تحقيق ما يصل إلى 400 ميجابايت/ثانية في اختبار 4KiBQ8T8، بينما تنخفض سرعة بطاقة Lexar إلى أرقام مزدوجة منخفضة، حوالي 15 ميجابايت/ثانية. أما الكتابة العشوائية فأسوأ من ذلك، حيث لا تزال أجهزة SSD تحافظ على سرعات تصل إلى 300 ميجابايت/ثانية، بينما تنخفض سرعة بطاقة microSD إلى أرقام أحادية منخفضة جدًا (2 ميجابايت/ثانية).

أنا من المعجبين الكبار بـ rPi، وأستخدمها في العديد من الأماكن، لكنها لا تزال بعيدة جدًا عن المستوى المطلوب منها.

هي بطاقة SanDisk سعة 64 جيجابايت من فئة A2، كما أعتقد، وسعرها 20 دولارًا أمريكيًا (في السويد). أردت فقط إثبات أن السرعة التسلسلية الصافية ليست سيئة كما وصفتها أنت :slight_smile:

إذا لم تعمل على rPi حتى مع استخدام SSD خارجي على منافذ USB 3، فسأفترض أن تشغيل قاعدة البيانات خارجيًا سيحل هذه الاختناق تحديدًا. لكنني منحاز لأنني أحب فكرة تشغيل مجموعة أرم (arm cluster) مع بطاقات الشبكة الحقيقية بسرعة 1 جيجابت/ثانية المتوفرة الآن على Pi 4. كما أنني أحب تحدي عقلية “لا تعمل” بشكل عام :wink:

إذا ألقيت قدرًا كافيًا من الوقت والمال والموارد على أي شيء، يمكنك جعله يعمل.

تأتي طلبات تشغيل Discourse على Raspberry Pi خلال السنوات الماضية عادةً من مستخدمين يمتلكون جهاز Pi ولا يرغبون في إنفاق أي شيء يتجاوز ذلك. وهذا هو بالضبط ما نستكشفه هنا.

في اللحظة التي تبدأ فيها بإضافة محركات أقراص SSD خارجية ونقل قاعدة البيانات إلى نظام آخر، فأنت في الحقيقة لا تتحدث عن استضافة Discourse على Raspberry Pi على الإطلاق. :wink:

صحيح. أتفق معك بأنك عادةً ما تحصل على ما تدفعه :slightly_smiling_face:

خذ Raspberry Pi 4 بذاكرة 4 جيجابايت أو 8 جيجابايت :wink: ثم احصل على بطاقة MicroSD (صناعية) من أمازون… أو إيباي…
اكتب الصورة على Docker من الموقع: https://blog.hypriot.com/ :smiling_face_with_three_hearts: :slightly_smiling_face: وتحديدًا في قسم: Download، أحدث إصدار.
بمجرد كتابة الصورة على بطاقة الـ SD، أدخلها في Raspberry Pi واتصل عبر SSH (اسم المستخدم وكلمة المرور لـ Docker SSH هما: “pirate” و “hypriot” → (المستخدم: pirate) (كلمة المرور: hypriot)). وبالطبع بعد الاتصال عبر SSH، غيّر بيانات الاعتماد إلى ما يناسبك من خلال → sudo raspi-config، ثم أعد تشغيل Raspberry Pi.
بمجرد إعادة التشغيل، اتصل عبر SSH وقم بتثبيت “Discourse” باتباع هذا الدليل: https://linoxide.com/how-tos/install-discourse-docker-container/ :wink: وبالطبع ستبدأ من النقطة 2) لأن Docker تم تثبيته منذ البداية.
استمتع.

مرحبًا ماسيم،

اتبعت تعليماتك، وقمت بتثبيت Hypriot وما إلى ذلك، لكنني حصلت على الخطأ التالي:

  $ ./launcher bootstrap app
  standard_init_linux.go:211: exec user process caused "exec format error"
  تثبيت Docker الخاص بك لا يعمل بشكل صحيح

  انظر: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

هل لديك أي أفكار؟

شكرًا لك.

أقدر حقًا ردك السريع، رافائيل.

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

ما المكون المحدد داخل ديسكورش غير المدعوم؟ وأنا وأعتقد أن الكثيرين آخرين متحمسون لجعله يعمل.

شكرًا لك.

أعتقد أن Discourse يستخدم صورًا مبنية لـ x86_64، وهي Redis و Ruby و PostgreSQL.

إنه مكتبة V8/MiniRacer الخاصة بنا، التي تشغّل JavaScript على الخادم.

الآن بعد أن قدّمت Apple عائلة معالجات M1، أنا متأكد من أننا سنعمل على جعلها تعمل على معمارية ARM قريبًا جدًا.

أتطلع لرؤية ذلك يعمل. أحد منتدياتي، الذي يعمل على Discourse، هو آخر عنصر معلق لدي أثناء الانتقال إلى مجموعة من RPi4، التي تستهلك طاقة أقل بشكل لا نهائي مقارنة بالخادم القائم على Intel.

تذكير، هل كانت هناك أي تطورات بخصوص مكتبة v8 لـ ARM؟ لقد حاولت تجميع الصور، لكنني دائمًا ما أعلق عند هذه المكتبة، فهي معقدة بعض الشيء، حيث تفشل في الغالب لأن السكربتات تحاول تنزيل أدوات X86_64 (لعملية البناء) وتشغيلها على ARM…

انظر:

ستحقق بنية ARM في الخوادم (وفي Ruby) تقدماً كبيراً جداً في وقت قريب بفضل ظهور شريحة M1 المذهلة من Apple أخيراً في حاسوب محمول حقيقي.

لكن حاسوب Raspberry Pi نفسه - حتى الإصدار المحسّن 4 - يفتقر إلى القوة الكافية ليكون خادماً. وفقاً لـ هذا المنشور ونتائج Speedometer 2.0…

3B+ Buster نواة 32 بت
9.49/9.66/9.46 = 9.54 Chromium

4B4 Buster نواة 64 بت (كانت نتائج 32 بت متساوية)
17.2/17.0/17.1 = 17.1 Chromium

هاتف OnePlus 7 Pro الذكي (Snapdragon 855، 8 جيجابايت من الذاكرة العشوائية، Android/Oxygen OS 10)
36.3/35.9/36.8 = 36.3 Chrome

حاسوب HP Chromebook x2 المحمول (معالج مزدوج النواة M3-7Y30)
68.2/68.6/68.0 = 68.3 Chrome OS 78

حاسوب Legion Y520 المحمول المخصص للألعاب بتكلفة منخفضة (i7-7700HQ Win10x64)
87.4/86.8/87.3 = 87.2 Chrome

بناءً على هذه الأرقام، أفترض أن Raspberry Pi 5 النظري في المستقبل، إذا…

  • ضاعف الأداء على الأقل مقارنة بـ Pi 4
  • احتوى على محرك أقراص SSD من نوع M.2 صغير الحجم للتخزين بدلاً من بطاقة SD

.. فقد يكون ربما خادماً viable لمنصة Discourse لمنتدى Discourse منخفض الزيارات؟

سيظهر قريبًا، لقد قمت بتشغيل تطبيقات ريلز أخرى على rpi4 وكنت راضيًا عن الأداء، لكن يجب أن أعترف بأنها كانت أبسط بكثير من discourse.

هذا مدعوم الآن