دليل إعداد بيئة تطوير Discourse - Windows 11

مرحباً بالجميع،

بعد قضاء بعض الوقت في محاولة إعداد بيئة تطوير عاملة على نظام التشغيل Windows 11 / WSL2، فكرت في مشاركة الخطوات التي اتبعتها.

هذه هي مشاركتي الأولى هنا، لذا آمل أن تكون مفيدة لشخص ما :slight_smile: أنا مسؤول أنظمة معتاد على العمل مع نظام Windows، لذا كانت هذه رحلة مثيرة للاهتمام لتعلم Linux / Ruby / Discourse وما إلى ذلك.

يبدو أن بعض الأشياء قد تغيرت منذ كتابة الدليل الخاص بنظام Windows 10، وواجهت بعض المشكلات على طول الطريق (ومن خلال قراءة التعليقات، لم أكن الوحيد!).

يمكنني التأكيد على أن التعليمات التالية عملت على تثبيت Windows 11 Pro 22H2 الخاص بي وأيضًا على إصدار Insider الخاص بي من إصدار Windows 11 23H2 Release Preview القادم.

سأحاول إبقاء التعليمات قصيرة ومباشرة قدر الإمكان :slight_smile:

الإعداد الأولي

  1. تحقق من وجود أي تحديثات لـ WSL وقم بتثبيتها إذا كان ذلك منطبقًا. من نافذة Windows Powershell استخدم هذا الأمر:-

wsl.exe --update

  1. قم بتثبيت Ubuntu على WSL2 باستخدام هذا الأمر:-

wsl.exe --install -d Ubuntu

  1. اتبع التعليمات التي تظهر على الشاشة لإنشاء اسم المستخدم وكلمة المرور.

  2. بمجرد دخولك إلى طرفية Ubuntu، تحقق من جميع التحديثات المطبقة وقم بتثبيتها.

sudo apt update && sudo apt upgrade -y

  1. الآن بعد أن تم تحديث كل شيء، يمكننا المتابعة :slight_smile:

تعديلات WSL

  1. قبل استنساخ Discourse، قم بتشغيل الأمر التالي لفتح ملف /etc/wsl.conf:-

sudo nano /etc/wsl.conf

  1. في أسفل الملف الحالي، أضف ما يلي، اضغط على Ctrl + X لحفظ التغييرات واضغط على “Y” عند المطالبة.
[automount]
enabled  = true
root     = /mnt/
options  = "metadata,umask=22,fmask=11"
  1. أغلق طرفية WSL تمامًا وأعد تشغيلها لتطبيق هذه التغييرات بشكل صحيح.

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

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)
  1. ابدأ خدمة PostgreSQL:-
sudo service postgresql start
  1. نظرًا لأننا نعمل في WSL2، تلقيت رسالة تحذير حول نفاد ذاكرة الجهاز الظاهري، والتي يمكن حلها عن طريق تشغيل ما يلي:
sudo sysctl vm.overcommit_memory=1
  1. قم بتشغيل ما يلي حتى تتم إعادة تشغيل redis-server تلقائيًا:-
redis-server --daemonize yes
  1. استنسخ Discourse إلى المجلد الرئيسي:-
git clone https://github.com/discourse/discourse.git ~/discourse
  1. انتقل إلى مجلد Discourse الذي تم إنشاؤه حديثًا:-
cd ~/discourse
  1. قم بتشغيل الأوامر التالية (قمت بها سطرًا واحدًا في كل مرة) (غير متأكد مما إذا كان هذا ضروريًا أو ما إذا كان يمكن نسخه ولصقه دفعة واحدة):
source ~/.bashrc

bundle install

yarn install
  1. قم بإعداد البيئة:-
RAILS_ENV=development bundle exec rake db:create db:migrate
  1. ابدأ Discourse
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u
  1. افتح طرفية منفصلة، وانتقل إلى دليل Discourse باستخدام cd ~/discourse وقم بتشغيل rails admin:create - اتبع التعليمات لإعداد حساب المستخدم المسؤول الخاص بك.

  2. انتقل إلى http://localhost:4200 في متصفح الويب ويجب أن يكون Discourse قيد التشغيل :slight_smile:

10 إعجابات

قد يفشل هذا الجزء. إذا حدث ذلك، انقر فوق ابدأ، واكتب تشغيل ميزات Windows أو إيقاف تشغيلها
قم بتمكين منصة الجهاز الظاهري
أعد التشغيل

استأنف الأوامر.

4 إعجابات

شكراً لإضافتك هذا يا أندرو!

أحد الأشياء المهمة جدًا التي واجهت صعوبة في فهمها لفترة هو أن المستودع يجب أن يكون على نظام ملفات WSL (أي، ليس على /mnt/*). وإلا، ستحصل على كل أنواع الأخطاء الغريبة أو سيكون لديك نسخة بطيئة جدًا، جدًا، جدًا.

يفترض أن يكون هذا من المعرفة الشائعة، ولكن من خلال تفاعلي مع مطورين آخرين، يبدو أنه ليس كذلك.

إعجابَين (2)

مرحباً AliBenBongo :wave:

شكراً لك على هذا الدليل.

من باب الفضول، هل جربت Install Discourse on Windows for development ولكن واجهت مشاكل على نظام التشغيل Windows 11؟

لقد اتبعت هذا الدليل الرسمي قبل أقل من شهرين لإعداد تثبيت التطوير الخاص بي على نظام التشغيل Win11، وقد نجح الأمر بسلاسة.

إعجابَين (2)

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

أعتقد أن هذا شيء جيد في النهاية حيث اكتسبت بالتأكيد المزيد من المعرفة الآن من خلال حل المشكلة بنفسي ثم كتابة هذا الدليل! :slight_smile:

إعجاب واحد (1)

ربما يكون هذا سؤالًا غبيًا ولكني مضطر لطرحه. بافتراض أنني تمكنت من تشغيل هذا باتباع دليلك. هل تعتقد أنه من الممكن عكس وكيل هذا إلى نطاق؟

لا توجد أسئلة غبية، يمكننا دائمًا تعلم شيء جديد! :slight_smile: ليس لدي الكثير من الخبرة في أمور الوكيل العكسي باستثناء استخدام Nginx Proxy Manager في حاوية Docker - ربما ألقِ نظرة على ذلك لأنه يقوم بمعظم العمل الشاق وحتى أنه ينشئ شهادات SSL مجانية من خلال Let’s Encrypt

إعجاب واحد (1)

من المتوقع أن تواجه الكثير من المشاكل. تثبيت المطور غير مدعوم للتشغيل في بيئة الإنتاج.

قد يكلف تشغيل التثبيت القياسي في السحابة بضعة دولارات شهريًا، ولكن كم تساوي قيمة وقتك؟! مع ذلك، يمكنك البدء والتشغيل في 30 دقيقة وتكون قد انتهيت.

إعجابَين (2)

هذا في الواقع ما فعلته. بدأت بـ communiteq، وجربت أيضًا DigitalOcean ولكن في النهاية استقريت على Contabo.

أعتقد أنني قد أكون مجنونًا لأن ما كنت أحاول القيام به (فقط لمعرفة ما إذا كان بإمكاني ذلك)، وتشغيل Ubuntu في HyperV، تمكنت حتى من وضع الجهاز الافتراضي على نفس الشبكة الفرعية lol ولكن لم أتمكن من جعل التحقق الأولي من النطاق يعمل. أعتقد أن جزءًا من المشكلة هو أنني أقوم بالفعل باستضافة عدد قليل من الخدمات على جهاز Windows المضيف الخاص بي وبالتالي أقوم بإعادة توجيه المنافذ 80/443 إلى عنوان IP هذا الجهاز. أعرف أن هذا يتجاوز نطاق هذا الموضوع وليس مدعومًا، ولكن هل لديك أي خبرة في محاولة القيام بشيء مماثل؟

تجدر الإشارة إلى أنه إذا لم يكن لديك أي أنظمة فرعية مثبتة بعد، فلن يعمل هذا الأمر.

إعجاب واحد (1)

لقد واجهت صعوبة في تثبيت Ruby؛ وقد ساعدني هذا: ChatGPT - Ruby 3.2 Not Released

أهلاً بك :wave:

إذا اتبعت الخطوات في هذا الدليل، فلن تحتاج إلى تثبيت Ruby يدويًا. سيقوم البرنامج النصي “install-rails” بذلك تلقائيًا.

للعلم، أحدث إصدار من Ubuntu، 24.04، لا يبدو أنه يعمل وواجهت الكثير من المشاكل معه

لذلك عند التثبيت باستخدام WSL، تأكد من استخدام:

wsl.exe --install -d Ubuntu-22.04

مرحباً :waving_hand:، أنا أستخدم WSL2 على نظام التشغيل Windows 11، وقد اتبعت الخطوات في هذا المنشور لتثبيت نسخة تطوير محلية من Discourse. واجهت بعض المشكلات، لكنني تمكنت في النهاية من حلها. إليك ما وجدته:

(في البداية حاولت استخدام ubuntu-20.04 لكنني واجهت مشكلة في تبعية libwebp7 المفقودة المطلوبة أثناء تثبيت ImageMagick. يبدو أن libwebp7 غير متوفر لـ ubuntu-20.04) :right_arrow: لذلك قررت استخدام ubuntu-22.04 بدلاً من ذلك، وهو ما نجح معي.

باتباع دليل @AliBenBongo في المنشور الافتتاحي، نجحت كل شيء قبل الخطوة 9. :+1:

في الخطوة 9 كانت هناك حاجة لبعض التغييرات

بعض الموارد في https://raw.githubusercontent.com/discourse/install-rails/master/linux ليست محدثة، يبدو:

  • كان علي تثبيت Ruby 3.3.x بدلاً من 3.2.1 عن طريق تغيير ruby_version=“3.2.1” إلى ruby_version=“3.3.9”
  • كان علي تثبيت Node 20 بدلاً من 18 عن طريق تغيير curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - إلى curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

في الخطوة 15 تحتاج إلى تشغيل pnpm install بدلاً من yarn install

بعد ذلك، عند تشغيل الترحيلات في الخطوة 16، ظهر خطأ لبعض الترحيلات التي تعتمد على امتداد pgvector Postgres. لذلك اتبعت دليل تثبيت Linux هنا: https://github.com/pgvector/pgvector/blob/master/README.md

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

git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install

بعد ذلك، تمكنت من تشغيل الترحيلات في الخطوة 16 وأكملت التثبيت باتباع بقية الدليل. :tada:

إعجاب واحد (1)