تثبيت Discourse على Lightsail

مرحبًا بالعالم، أحاول تشغيل منتدي Discourse الأول وأحتاج إلى بعض المساعدة…

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

لست متأكداً تماماً بشأن Lightsail، لكن في حالة AWS، عندما لا يشير النطاق إلى عنوان IP الخاص بهم بشكل صحيح، فإن 90% من الوقت تكون مجموعات الأمان هي المسؤولة. هل يمكنك محاولة فتح المنافذ الضرورية (80، 443، 587 وما إلى ذلك) في مجموعة الأمان الخاصة بـ AWS لـ VPS الخاص بك؟

شكرًا لك على ردك. قمت بفتح هذه المنافذ (كانت 443 و 587 مغلقة) وأعدت بناء التطبيق، لكن لا تزال النتيجة غير محققة. أظن أن المشكلة تتعلق بـ DNS، لكنني لست متأكدًا مما يمكن تغييره. حاليًا، لم أقم بإعداد becomeachiron.com، بل فقط النطاق الفرعي. يبدو من المرجح أن ذلك قد يعطل عمل النطاق الفرعي، لكنني لست متأكدًا من مكان استضافته على Lightsail.

كيف قمت بإعداد النطاق الفرعي فقط؟

لقد انتقلنا مؤخرًا إلى Discourse و Amazon Lightsail (لذا فإن خبرتي محدودة).
لدي نفس التكوين تمامًا، وتمكنت من تثبيت Discourse دون أي مشكلة على الإطلاق.
لقد قمت أولًا بتثبيت صورة AMI الرسمية لنظام Debian من أمازون.
ثم قمت بتعيين اسم المضيف إلى نطاقك (discourse.becomeachiron.com).
بعد ذلك، قمت بترقية Debian إلى أحدث إصدار:

sudo apt update
sudo apt upgrade

ثم اتبعت التعليمات لتثبيت Discourse (تثبيت git ثم تثبيت Discourse).

لم تواجه أي مشكلة، وقد نجح الأمر.

كان علي فتح المنفذ 443 لكي يعمل HTTPS (مع إعداده في Discourse).

المشكلة التي تصفها تبدو مرتبطة بـ DNS وحل عناوين IP.

في Lightsail، توجد ثلاثة عناوين IP للآلة:

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

هل قمت بتعيين عنوان IP عام ثابت لآلتك؟

إذا كان الأمر كذلك، فهذا هو عنوان IP الذي يجب عليك إعداده في DNS.

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

ثم تحتاج إلى الانتظار بعض الوقت حتى تنتشر تغييرات DNS.

يبدو أنك لم تقم بإعداد النطاق بعد:

 pfaffman@balloon:~$ dig +short discourse.becomeachiron.com @NS-1041.AWSDNS-02.ORG

لا يُرجع أي شيء. هذا الرابط سيختبر انتشار النطاق، ولكن حتى الآن، لا توجد أي سجلات للنطاق الفرعي الخاص بك في خوادم أسماء AWS.

لا توجد سجلات لأنه يبدو أنه لا يستخدم DNS من أمازون، بل يقول إنه يعمل مع DNS من جوجل.

لذا يجب عليه إعداده في جوجل.

discourse.becomeachiron.com يحل حاليًا إلى 99.79.192.57

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

أنا أيضًا أعمل بجد على كل هذا الآن :slight_smile:

لقد قرأت أنه من الممكن استخدام النطاق العادي بدون www أو نطاق فرعي خاص بـ Discourse.

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

أكرر: هل قمت بتعيين عنوان IP ثابت لـ instance الخاص بك في Lightsail؟

افتراضيًا، يكون العنوان ديناميكيًا.

إذا لم يكن كذلك، قم بإنشاء عنوان IP ثابت.

انتقل إلى لوحة تحكم Lightsail، وحدد instance الخاص بك، ثم افتح تبويب “الشبكة”.
بعد ذلك، اختر “إنشاء عنوان IP ثابت”.

سيحصل instance الخاص بك على عنوان IP دائم جديد.

ثم انتقل إلى Google DNS وسجّل هذا العنوان مع اسم جهازك.

إليك ما وصلت إليه الآن:

في Lightsail

  • أنشأت عنوان IP ثابتًا وربطته بمثالي (شكرًا لك، فيرناندو)
  • أنشأت منطقة DNS

في Google Domains

  • قمت بتحديث خوادم الأسماء لتلك الخاصة بمنطقة DNS
  • أنشأت نطاقًا فرعيًا وأشرت به إلى عنوان IP الثابت

تم إعداد Discourse بشكل صحيح - يمكنني الوصول إليه عبر عنوان IP العام. ما لم أكن قد أغفلت شيئًا، الآن أنتظر حتى تكتمل عملية الانتشار.

أنت تقوم بشيء خاطئ.

سجلات SOA الخاصة بك تشير إلى خوادم DNS الخاصة بـ AWS، وليس Google، وأنت تقول إنك تقوم بتغيير سجلات DNS في Google.

becomeachiron.com
primary name server = ns-612.awsdns-12.net
responsible mail addr = awsdns-hostmaster.amazon.com
serial = 1
refresh = 7200 (2 hours)
retry = 900 (15 mins)
expire = 1209600 (14 days)
default TTL = 86400 (1 day)

becomeachiron.com nameserver = ns-1041.awsdns-02.org
becomeachiron.com nameserver = ns-1824.awsdns-36.co.uk
becomeachiron.com nameserver = ns-216.awsdns-27.com
becomeachiron.com nameserver = ns-612.awsdns-12.net

قم بتغيير إعدادات DNS الخاصة بك في DNS الخاص بـ Amazon، أو قم بتغيير سجلات SOA لتشير إلى Google إذا كنت تستخدم DNS الخاص بـ Google.

صحيح! هذا ما كنت أقصده. أظن أنني كان ينبغي أن أدرج سجل whois. لقد قمت بشرح الأمر بشكل أفضل مني.

لذا، قم إما بتغيير سجل whois أو قم بتحديث خوادم الأسماء الخاصة بـ AWS.

لم أفهمك، آسف.

أنا مشوش… لقد سجلت من خلال نطاقات Google، لكن Lightsail ولّد خوادم الأسماء.

يمكنك تسجيل النطاق لدى مسجّل واحد واستخدام خدمات DNS لدى مزوّد آخر.

عند شراء نطاق، فإنك تشتري الاسم فقط وسجل SOA الموجود في خادم مسجّل النطاق.

خدمات DNS مستقلة عن مزوّد النطاق.
يُخبرك سجل SOA بموقع خوادم DNS الخاصة بك.

بالطبع، يقدم العديد من مسجّلي النطاقات خدمة DNS مدرجة في السعر، مثل Google Domains.

لكنك اشتريت خدمة DNS مع Amazon Lightsail، وقد قام ذلك بتغيير سجل SOA الخاص بك في Google.

أنا لم أشتري خدمة DNS مع Amazon، بل أستخدم خدمات DNS خارجية (بحسب علمي، تفرض Amazon رسومًا على خدمة DNS).

في هذه الحالة، يجب عليك تحديث سجلات DNS بنفسك لدى مزوّدك (Google في حالتك).
في هذه الحالة، يجب عليك تغيير سجل SOA إلى الإعدادات الافتراضية في خدمات DNS الخاصة بـ Google.

أو يمكنك استخدام خدمات DNS الخاصة بـ Amazon وتحديث السجلات من خلالها. في هذه الحالة، اترك سجل SOA كما هو واستخدم أدوات Amazon لتغيير سجلات DNS.

إذا كنت تستخدم خدمة بريد إلكتروني مع Amazon، فقد يكون ذلك يعني أنك قبلت تغيير سجل SOA الخاص بك وتوجيهه إلى خدمات Amazon.

ما تحتاجه في الأساس هو عنوان IP العام لخادم Lightsail VPS، ثم يمكنك اختيار إدارة DNS الخاص بك من حيثما رغبت.

إذا كنت تفضل إدارة هذه الإعدادات عبر Amazon، فيمكنك استخدام Route 53، والذي سيوفر لك خوادم أسماء (Nameservers) يمكنك تحديثها في إعدادات نطاقك لدى مسجل النطاق (مثل Google).

أو يمكنك تعديل ملف المنطقة الحالي (في قسم إدارة DNS الخاص بنطاقك) وتحديث سجل A هناك.

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

مثال: منتدى مجتمع تويتر

شكرًا لكم مجددًا! لقد أصبحت جاهزًا للعمل: http://discourse.becomeachiron.com/

ما زلت أعمل على ترتيب كيفية عمل هذه الأجزاء معًا بدقة — فأنا لا أتطرق إلى شؤون DNS بانتظام. الآن أحتاج إلى رفع نطاقي الأساسي بطريقة ما :slight_smile:

يبدو أنك تستخدم AWS Route53 لإدارة DNS الخاص بك

لذلك، فيما يتعلق بالنطاق الأساسي، اتبع الخطوات التالية:

  1. أنشئ سجلًا بديلاً (A) للنطاق الأساسي (المشار إليه بـ @) يشير إلى عنوان IP الخاص بـ Lightsail.
  2. عدّل ملف app.yml لاستخدام النطاق الأساسي.
  3. أعد البناء.
  4. قم بتشغيل أمر discourse remap.

هذا كل ما عليك فعله.