الاستضافة الذاتية مجانًا (مع بعض التحفظات!) باستخدام Oracle Cloud

https://blogs.oracle.com/developers/install-run-discourse-for-free-in-the-oracle-cloud

هذا المنشور في المدونة من العام الماضي. لم أرَ أي ذكر لذلك هنا؛ أعتقد أن أوبك كجهة استضافة ليست على رادار معظم الناس.

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

https://www.opendiscussion.pw

سجّلت للحصول على حساب على Oracle Cloud. ذكرت أن التحقق من الحساب سيستغرق 15 دقيقة، لكنني اضطررت للانتظار يومين بسبب مشكلة في بطاقتي الائتمانية (يُطلب منك بطاقة ائتمان للتحقق).

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

إليك ما تتضمنه هذه الطبقة:

  • 2 (اثنان) من الخوادم الافتراضية (VMs)
    تحتوي الخوادم الافتراضية على 1/8 من وحدة المعالجة المركزية (OCPU) مع إمكانية استخدام موارد وحدة المعالجة المركزية الإضافية. VM.Standard.E2.1.Micro. مع معالج AMD EPYC 7551 بسرعة 2.0 جيجاهيرتز
    الذاكرة: 1 جيجابايت

  • عرض النطاق الترددي: 10 تيرابايت

  • التخزين: حجم كتلة سعة 100 جيجابايت

  • البريد الإلكتروني: 1,000 / شهر (لا يتضمن بروتوكول SMTP)

من الجدير بالذكر أن تكوين أوراكل الذي يُقدّم لك يتضمن قرصًا بسعة حوالي 40 جيجابايت (للنظام التشغيل وبيانات المستخدم) بالإضافة إلى قسم تبديل (swap) بسعة 8 جيجابايت. لا حاجة لملف تبديل. وبما أنه يمكنك تشغيل نسختين افتراضيتين (VMs) على مستوى “المجاني دائمًا”، فإن فصل حاوية قاعدة البيانات يُعد خيارًا قابلًا للتوسع.

(لسبب ما، خدمة قاعدة البيانات المجانية كمنصة كخدمة (PaaS) هناك ليست Postgres. :wink: )

شكرًا لك على هذه المعلومات المثيرة للاهتمام!

واجهتُ أنا أيضًا مشكلة. حاولتُ عدة مرات دون أي نجاح (رسالة من البنك تفيد بأن “كود الأمان غير صحيح”، رغم أن الكود كان صحيحًا).
جربتُ في متصفح آخر ونجح الأمر، لكنني استخدمتُ عنوان بريد إلكتروني آخر… والآن انتظرتُ لساعات عدة حتى يتم التحقق من حسابي.

الخدمة مجانية، لكن عملية التسجيل مزعجة بعض الشيء… :sweat_smile:

ما المشكلة بالضبط في جزء البريد الإلكتروني؟ لقد تمكنت من تثبيت Discourse على Oracle Cloud، لكنني لا أستطيع بأي حال من الأحوال جعل تسليم البريد الإلكتروني يعمل. عندما أكون على وشك تسجيل مستخدم المسؤول في تثبيت Discourse، لا أتلقى أبدًا رسالة بريد إلكتروني.

يتواصل أداة discourse-doctor مع خادم SMTP الخاص بـ Oracle، لكن الرسالة لا تُرسل.

لقد قمت بإعداد العديد من المرسلين المعتمدين احتياطيًا: بريد إلكتروني الخاص بالإدارة، noreply@[forum domain]، و noreply@[main domain]. أيهما هو الأهم؟

لقد أضفت أيضًا سجل نصي (TXT) إلى إعدادات DNS لنطاق الخاص بي مع سلسلة SPF الموصى بها.

كان الأمر صعبًا. إذا كان ذاكرتي صحيحة، فإن ما جعله يعمل بالنسبة لي كان تغيير ملف containers/app.yml:

  ## إذا كنت ترغب في تعيين عنوان البريد الإلكتروني 'من' لتسجيلك الأول، قم بإزالة التعليق عن السطر التالي وتغييره:
  ## بعد استلام بريد التسجيل الأول، أعد إضافة التعليق للسطر. فهو يحتاج إلى التشغيل مرة واحدة فقط.
  - exec: rails r "SiteSetting.notification_email='noreply@opendiscussion.pw'"

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

للأسف، لم يُسهم ذلك في حل المشكلة (حتى بعد إعادة بناء التطبيق).

هل يمكنني أن أسأل كيف تبدو سجلات TXT الخاصة بك؟

ألم تقم بإلغاء التعليق عن إعداد “START TLS” أيضًا؟

فما الذي فعلته بخصوص البريد الإلكتروني؟ هل يجب عليك دفع ثمنه؟ (لأنك ذكرت أن SMTP غير مشمول)

يُدرَج بروتوكول SMTP. في وقت ما، لم يكن متوفراً في جميع المناطق. إن إعداده صعب للغاية حقًا … :neutral_face:

هل تعلم إذا كان هناك سجل SMTP في مكان ما في Oracle Cloud؟ أود معرفة سبب عدم إرسال البريد الإلكتروني بينما يمكنني الاتصال بخادم SMTP بنجاح. لماذا لا أكون مفوضًا أو ما هي المشكلة بالضبط.

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

https://www.oracle.com/cloud/networking/email-delivery.html#pricing

https://docs.cloud.oracle.com/en-us/iaas/Content/Email/Concepts/overview.htm

خطأ مني، أنت محق. لم أدرك أنني خضعت لتجربة النسخة المدفوعة لأنني سجلت في الخطة المجانية.

هل توجد خدمات SMTP مجانية بديلة تعمل مع Discourse، مع إبقاء Discourse نفسه على Oracle Cloud؟

أعتقد أن البقية الوحيدة المتبقية هي https://www.mailjet.com/pricing/، إنه لأمر مؤسف حقًا أن عصابة وادي السيليكون سرقت البريد الإلكتروني المجاني من الإنترنت :smiley:

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

طلبت من صديق فتح حساب لي، فعمل بسلاسة في أقل من 15 دقيقة.

ثم حاولت تثبيت Discourse وواجهت صعوبات كثيرة. اتبعت دليل تثبيت Discourse من Oracle ولكن لسبب ما، لم أستطع الاتصال بالمنفذ 443.

حاولت تثبيت Discourse على صورة Ubuntu عادية، لكنني لم أستطع الاتصال عبر المنفذ 80 ولا المنفذ 443 لأسباب غير معروفة.

عدت إلى التعليمات الرسمية، ولم تعمل في البداية (فشل الاتصال بكلا المنفذين)، لكنني أعدت تشغيل Docker ثم اتصلت سحرًا بكلا المنفذين.

لذا فإن تجربتي ليست الأفضل، سواء كانت المشكلات مني أنا أو من Oracle.

ولكن في النهاية، لدي الآن تثبيت Discourse مجاني، عبر الإنترنت، وبطبيعة الحال ليس الأسرع، لكنه يعمل. :+1:t6:

لأولئك الذين يرغبون في اتباع نفس الدليل، هناك خطأ بسيط في جزء جدار حماية الخادم.

بدلاً من:
sudo firewall-cmd —reload
يجب أن تكتب:
sudo firewall-cmd --reload

افتراضيًا، لا يمكنك تثبيت Discourse لأن الاتصالات عبر المنفذ 80 و443 غير مسموح بها. يجب السماح بهما في قائمة الأمان (في لوحة تحكم Oracle) وفي جدار حماية المثيل (عبر SSH).

إليك كيفية القيام بذلك في تثبيت عادي لنظام Ubuntu (يختلف قليلاً عن الدليل الرسمي الذي يستخدم صورة Linux أخرى).

في لوحة تحكم Oracle:

بعد إنشاء مثيل Ubuntu، انتقل إلى تفاصيل المثيل وانقر على رابط الشبكة الفرعية:

انقر على قائمة الأمان:

انقر على إضافة قواعد الدخول، وحدد بروتوكول TCP، واضبط مصدر CIDR على 0.0.0.0/0، ونطاق منفذ الوجهة على 80,443.
قم بالتحقق بالنقر على “إضافة قواعد الدخول”.

تحقق من إضافة القواعد في قائمة الأمان:

في سطر أوامر الخادم عبر SSH:

أضف هذه القواعد إلى iptables:

iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

ستضيف الأوامر القواعد في المكان الصحيح. إذا قمت بإلحاقها بالقواعد الموجودة ببساطة دون تحديد رقم السطر (5)، فلن يعمل ذلك لأنها ستتجاوزها قاعدة “رفض الكل” الموجودة مسبقًا.

احفظ القواعد بحيث تبقى موجودة بعد إعادة التشغيل:

netfilter-persistent save

الآن يمكنك تثبيت Discourse! :tada:

مرحبًا، هل تنصح باستخدام سحابة أوراكل لموقع قيد التشغيل ونشط بما يكفي؟
شكرًا لك

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

@هيكتور، هل لا يزال موقع https://www.opendiscussion.pw مستضافًا على خادم مجاني؟

مرحباً، هل تقصد خادم Digital Ocean بسعر 5 دولارات شهرياً عند الحديث عن استضافة رخيصة؟

نعم، على سبيل المثال.

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

نعم، لا يزال على الخادم المجاني. لا يوجد له أي حركة مرور، لذا لا يمكنني القول بماذا يتمتع من قدرات. كما أنني أستخدمه لأغراض التطوير. حتى الآن، كل شيء على ما يرام.

بالنسبة لـ Hetzner VPS، هل سأحتاج أيضًا إلى تثبيت LAMP، وتحديثات الخادم، والانتباه من المخترقين، وما إلى ذلك؟

أما في Digital Ocean، من ناحية أخرى، فكل شيء جاهز، ولا أحتاج إلى تأمين الخادم، أليس كذلك؟ هل كل ما علي فعله هو تثبيت Discourse وإدارته؟ هل هذا هو الفرق الحقيقي بين Digital Ocean وأي VPS آخر؟

هل Digital Ocean يشبه VPS مُدار؟

شكرًا لك!
Deb