هناك العديد من الحيل التي يمكن أن تساعد عند إعداد خادم تدريجي.
ما هو الخادم التدريجي؟
الخادم التدريجي هو في الأساس نسخة طبق الأصل من موقع إنتاجي. وهو موجود أيضًا على خادم، ويعمل بشكل متطابق. يعمل داخل حاوية Docker، تمامًا كما يفعل موقع Discourse العادي.
وهو موجود لمنحك مكانًا لتجربة الأشياء الخطرة، أو لتجربة الأشياء التي لا يمكنك إخفاؤها بسهولة عن المستخدمين. إنه مفيد جدًا لتجربة الإعلانات باستخدام https://meta.discourse.org/t/official-Advertising-ad-plugin-for-discourse/33734، أو إذا كنت ترغب في القيام بشيء جريء مثل استيراد أو دمج منتدى.
هذا على عكس خادم التطوير، الذي يعمل عادةً في مكان يسهل الوصول إليه (ومعزول) حتى يتمكن المطور من العبث بالكود بأمان.
ماذا أحتاج؟
-
كل ما تحتاجه لتثبيت قياسي مستضاف ذاتيًا
-
إذا قمت بإعداد نسخ احتياطية من S3، فستكون حياتك أسهل بكثير
- وإلا فستحتاج إلى طريقة لنقل الملفات الكبيرة من وإلى الخادم عبر SSH
خطوات
إعداد الخادم الخاص بك كما ترغب
عادةً في خادم Ubuntu افتراضي مستضاف على Digital Ocean، ولكن يمكنك استخدام أي شيء تشعر بالراحة معه.
تثبيت Discourse
عبر هذا الدليل (أو ربما عبر dashboard.literatecomputing.com). أوصي باستخدام بيانات اعتماد بريد إلكتروني “غير مهمة” (لا تحتاج إلى البريد الإلكتروني ولا تريده أن يعمل).
discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
تأكيد أن التثبيت الخاص بك يعمل:
إنشاء حساب مسؤول (إذا لزم الأمر)
قم بإعداد حساب مسؤول من سطر الأوامر. هذا يتجاوز الحاجة إلى المصادقة عبر البريد الإلكتروني.
./launcher enter app
rake admin:create
هذا ليس ضروريًا بشكل صارم باستثناء اختبار التثبيت حيث يمكنك الاستعادة من النسخ الاحتياطي من سطر الأوامر.
تحرير app.yml وإضافة بعض التعديلات
-
قد ترغب في عمل نسخة من app.yml الأصلي (أسميه
app.vanilla.yml) والذي يمكنك الرجوع إليه إذا أفسدت الأمور. -
في أسفل قسم
envأضف هذه الأسطر:
## إعدادات خاصة بالخادم التدريجي
DISCOURSE_AUTOMATIC_BACKUPS_ENABLED: false
DISCOURSE_LOGIN_REQUIRED: true
DISCOURSE_DISABLE_EMAILS: 'yes'
DISCOURSE_S3_DISABLE_CLEANUP: true
DISCOURSE_ALLOW_RESTORE: true
-
إذا كان لديك نسخ احتياطية من S3 (أو ما شابه) معدة، فأضف هذه أيضًا (مع إعداداتك من الموقع الرئيسي)
## إعداد S3 DISCOURSE_S3_ACCESS_KEY_ID: 'your_key' DISCOURSE_S3_SECRET_ACCESS_KEY: 'your_secret' DISCOURSE_BACKUP_LOCATION: 's3' DISCOURSE_S3_BACKUP_BUCKET: 'your_backups_location' DISCOURSE_S3_REGION: 'your_s3_region' DISCOURSE_S3_DISABLE_CLEANUP: trueوإذا كنت تقوم أيضًا بتحميلات S3:
DISCOURSE_ENABLE_S3_UPLOADS: true DISCOURSE_S3_UPLOAD_BUCKET: 'your_uploads_location' -
قد ترغب في إضافة نفس الإضافات التي لديك على موقعك الإنتاجي أثناء وجودك هناك.
-
قم بإعادة بناء
./launcher rebuild app
إدارة الخادم التدريجي
لديك الآن خادم تدريجي متصل بنسخك الاحتياطية من S3 (ولكن لن يكتب فوقها)، ويسهل استعادته، وغير قادر على إرسال بريد إلكتروني لأي شخص تحت أي ظرف من الظروف. مثالي!
يمكنك استعادة نسخة احتياطية جديدة إلى الخادم التدريجي والبدء. إذا لم يعجبك ما لديك، فما عليك سوى استعادته مرة أخرى.
إيقافه أو تشغيله
إذا تركت خادمك التدريجي “قيد التشغيل” لفترات طويلة، فإنك تخاطر بفهرسته بواسطة Google، وقيام المستخدمين بتسجيل الدخول إليه عن طريق الخطأ. نظرًا لأن بيانات اعتمادهم هي نسخة طبق الأصل من موقعك الإنتاجي، فهذا ممكن جدًا.
طريقة بسيطة للتخفيف من هذين الأمرين هي ببساطة إيقاف تشغيل Discourse:
./launcher stop app
وتشغيله مرة أخرى حتى تتمكن من استخدامه:
./launcher restart app
التحديثات
سيتعين عليك التأكد من تحديث / إعادة بناء كل من الخادم التدريجي وموقعك الإنتاجي في نفس الوقت إذا كنت ترغب في ضمان بقاء الأشياء متوافقة من وجهة نظر الإضافات والكود. وينطبق الشيء نفسه على تغييرات app.yml.
إذا كنت لا تستخدم S3، فسيتعين عليك نقل النسخ الاحتياطية يدويًا بين الخوادم. وهي كبيرة!
تهيئة خادم اختبار
إذا كنت تريد خادمًا تدريجيًا، فيجب عليك ملؤه ببياناتك الفعلية من منتدىك الفعلي عبر Restore. في بعض الأحيان تكون بياناتك الخاصة هي التي تسبب المشكلة، واختبار منتدىك بمجموعة بيانات أخرى يمكن أن يمنحك شعورًا بالأمل الزائف.
إذا كان ما تريده هو خادم اختبار لمعرفة كيف يبدو Discourse، فقد ترغب في التحقق من الأشياء ببعض البيانات المزيفة، وإذا فعلت ذلك، يمكنك القيام بما يلي:
./launcher enter app
ALLOW_DEV_POPULATE=1 bundle install
ALLOW_DEV_POPULATE=1 rake dev:populate
سيؤدي هذا إلى تهيئة منتدىك ببعض البيانات المزيفة حتى تتمكن من رؤية كيف تبدو الأشياء مع أي سمات وإضافات تريدها. إذا لم تكن قد بدأت منتدىك بعد، فسيمنحك هذا فكرة عما ستبدو عليه الأشياء على الأرجح.
إدارة المصادقة الثنائية
بينما يجب أن تعمل أسماء المستخدمين / كلمات المرور الخاصة بك من موقعك الرئيسي بشكل جيد في الموقع التدريجي، إلا أنها ليست جميلة جدًا مع المصادقة الثنائية. إذا كانت لديك مشكلة، فقم بإيقاف تشغيل المصادقة الثنائية:
./launcher enter app
rake users:disable_2fa[<USERNAME>]


