الاستضافة الذاتية لـ Discourse باستخدام Docker compose

أهلاً بالجميع! :blush:

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

شكراً جزيلاً لكم مقدماً على مساعدتكم! :folded_hands:

نعم، وهناك فئة فرعية كاملة مخصصة لذلك!:

Documentation > Self-Hosting
ستحتاج إلى قراءة التثبيت القياسي على وجه التحديد

شكراً جزيلاً على إجاباتك!

أود الحصول على ملف ‘docker-compose’ مستقل يمكنني تشغيله واستخدامه في جمعيتنا.

هل هذا ممكن؟

أنا لست من محبي تشغيل ألف برنامج نصي في الخلفية لا أعرفها.

نعم هذا ممكن ولكن ستحتاج إلى كتابته ودعمه بنفسك.

إليك Dockerfile نشره أحدهم مؤخرًا للتطوير قد يكون بمثابة بداية

Discourse مفتوح المصدر. لماذا لا تقرأ البرامج النصية والقوالب الخاصة بالمشغل؟ (والتي من شأنها أيضًا إعلام Compose الخاص بك)

هذا غير مدعوم، ولكن هناك جهودًا لمحاولة مواكبة Discourse الرئيسي. يمكنك البحث عن docker compose هنا، أو زيارة هذين البديلين:

لكن كن حذرًا، فقد يكون الحفاظ على Discourse عبر الإصدارات صعبًا. لكن IndieHosters يقومون بذلك منذ بضع سنوات حتى الآن.

كلا المشروعين يستخدمان صورة docker الأساسية الأصلية لـ Discourse ولكني لست متأكدًا مما إذا كانوا يقومون بتخصيص التثبيت كما يفعل pups الخاص بـ @sam لـ discourse-docker.

شكراً على ردودكم!

لقد قمت بتثبيت صورة discourse/base فقط، لكن الحاوية خرجت بدون أي سجلات
The image shows a command-line interface displaying a container named "discourse-container" in a Docker environment, which was recently exited with no processes running.

هل تعرفون السبب؟

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

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

لذلك لا توجد صورة حيث يتم تجميع إصدار معين. تحصل على صورة “فارغة” وتقوم بتجميع إصدارك من النقطة التي تريدها ومع مجموعة الإضافات التي تحتاجها. ولا يزال يعمل!

لا تحصل على هذا النوع من المرونة في أي مكان آخر.

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

شكراً لمساعدتكم يا رفاق. تجعلون من السهل على المبتدئين مثلي استخدام Discourse!

نعم، ولكن قبل أن أجعل Discourse متاحًا لناديي، أردت تشغيل Discourse على المضيف المحلي وإجراء بعض الاختبارات حتى أتمكن من التعامل بشكل أفضل مع واجهة المسؤول وسطر أوامر Discourse. إذا حدثت أخطاء، أريد أن أكون قادرًا على إصلاحها. بالنسبة للإصدار “المدعوم”، أحتاج إلى إدخال DNS ومنفذ 443 و 80 وهو أمر غير ضروري في حالتي - على الأقل أعتقد ذلك.

هل يعرف أي شخص حيلة لتشغيل هذا على المضيف المحلي؟

قم بتثبيت Docker وقم بذلك فقط.

نعم:

https://meta.discourse.org/tags/c/documentation/developer-guides/56/dev-install

:slight_smile:

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

شكراً جزيلاً لدعمكم!
تمكنت من تشغيله باستخدام التثبيت “العادي” مع دوكر.