تثبيت Discourse على macOS لأغراض التطوير

:warning: يغطي هذا الدليل تعليمات التثبيت لبيئة تطوير على macOS. للحصول على أدلة الإنتاج، راجع: Install Discourse in production with the official supported instructions

إذن، تريد إعداد Discourse على نظام macOS للعمل عليه والتطوير؟

سنفترض أنك لم تقم بتثبيت Ruby/Rails/Postgres/Redis على جهاز Mac الخاص بك. لنبدأ :rocket: !

تثبيت تبعيات Discourse

ستحتاج إلى الحزم التالية على نظامك:

** اختياري

أعد تشغيل طرفيتك (Terminal)

الآن بعد أن قمنا بتثبيت تبعيات Discourse، لننتقل إلى تثبيت Discourse نفسه.

إعادة تشغيل طرفيتك (Terminal)

يضمن الخروج من الـ Shell وإعادة تشغيله أن يتم التقاط المسارات الخاصة بالحزم المثبتة بشكل صحيح من قبل الطرفية.

استنساخ Discourse

قم باستنساخ مستودع Discourse في مجلد ~/discourse:

git clone https://github.com/discourse/discourse.git ~/discourse

~ تشير إلى مجلد المنزل، لذا سيكون كود مصدر Discourse متاحًا في مجلد المنزل الخاص بك.

تهيئة Discourse

انتقل إلى مجلد Discourse الخاص بك:

cd ~/discourse

قم بتثبيت الـ gems المطلوبة

bundle install

قم بتثبيت تبعيات JS

pnpm install

بعد ذلك، قم بتشغيل الأوامر التالية لإعداد مثيل Discourse المحلي الخاص بك:

bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

قم بتشغيل خوادم Rails و Ember، لديك خياران هنا.

الخيار 1: باستخدام علامتي تبويب/نوافذ طرفية منفصلتين، قم بتشغيل Rails و Ember CLI بشكل منفصل عبر

bundle exec rails server

و

bin/ember-cli

الخيار 2: باستخدام علامة تبويب/نافذة طرفية واحدة فقط:

bin/ember-cli -u # سيقوم بتشغيل خادم Pitchfork في الخلفية

:tada: يجب أن تكون قادرًا الآن على التنقل إلى http://localhost:4200 لرؤية تثبيت Discourse المحلي الخاص بك. (لاحظ أن التحميل الأول قد يستغرق ما يصل إلى دقيقة حيث يتم تدفئة الخادم.)

يمكنك أيضًا تجربة تشغيل المواصفات (specs):

bundle exec rake autospec

يجب أن تنجح جميع الاختبارات (أو تقريبًا جميعها).

إنشاء مسؤول جديد

لإنشاء مسؤول جديد، قم بتشغيل الأمر التالي:

RAILS_ENV=development bundle exec rake admin:create

اتبع المطالبات لإنشاء حساب مسؤول.

تكوين البريد

قم بتشغيل MailHog:

mailhog

تهانينا! أنت الآن مسؤول تثبيت Discourse الخاص بك!

استمتع بالتطوير! ولبدء ذلك، راجع دليل المبتدئين لإنشاء إضافات Discourse.


يتم التحكم في إصدار هذا المستند - اقترح تغييرات على GitHub.

78 إعجابًا
Setup discourse on Mac OS
Running Discourse on Docker for Mac
Localhost:3000/users gives no-results
How to install Discourse on windows
How to install Discourse locally?
Best dev installation method for running on macOS?
Please help, how do I install Discourse on macOS?
Local installation internal use only
Help me setup my Discourse development environment
Discourse standalone
Migrate a NodeBB forum with Redis to Discourse
Starting discourse fails with bootstrap error
Error after cleaning tmp folder
MacOS Installation Gem::FilePermissionError
UndefinedTable: ERROR: relation "web_hook_event_types" when trying to run rspec test
[Need help][MacOS M1 dev installation] ArgumentError unknown keywords
Migrate a PunBB forum to Discourse
Migrate a phpBB3 forum to Discourse
Migrate a FluxBB forum to Discourse
Migrate a vBulletin 3 forum to Discourse via XenForo
Regarding the installation - docker
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Migrate a bbPress WordPress plugin forum to Discourse
Install Discourse for development using Docker
Use the Discourse API ruby gem
Enable CORS on localhost for DiscourseConnect
Set Environmental Variables
Need help integrating code wrote on Edittext to the Discourse
Keyboard navigation messes up the search menu
WP-Discourse not connected and admin email not recognized
Contributing to Discourse development
How to install discussions on localhost in my mac?
How to install Discourse for Wordpress locally running on MAMP
Error when building: "Runtime Error: discourse does not support compiling scss/sass files via sprockets"
Discourse as Your First Rails App
Migrate from GetSatisfaction to Discourse
Upgrading Mathjax to version 4
Windows server publish method
Migrate a MyBB forum to Discourse
Category option: max topics per user (2 use-case examples)
Can't deploy to heroku
[PAID] Import from Legacy Postgres DB
Vagrant based server failing on db:migrate
Change unicorn port from 3000 in development
I want to build a debug version of discourse
Moderation Tools
Rails server --daemon and plugins
Installing problem - bundle install
Nginx Performance Report plugin incompatible with development environment setup script
Rake aborted message is showing when installing vagrant development
Update PhantomJS to latest for Ubuntu dev guide?
Cannot Backup my Development Instance (Fails)
Install error : Protocol violation
Can't set up dev environment due to cppjieba_rb failing to install
How to edit the discourse files? A development box?
How to add a new language
How to relax Content Security Policy
Installing Discourse for macOS Development Using asdf and docker-compose
Override profile background via SSO
Can't set up dev environment due to cppjieba_rb failing to install
Stuck in infinite loop in Mac terminal after source ~/.bashrc
Install on macOS – Failure: Scheduler::Defer can pause and resume
Disabling SSO in development environment
Local development and deploying from same repo
Discourse Connect on Local instance is not working
Can't start localhost server -- file was built for x86_64 which is not the architecture being linked (i386)
Please help, how do I install Discourse on macOS?
How to connect to an external database running on localhost
How can I include discourse in my local dev stack?
Topic List Previews (TLP)
Global messages on 94632 timed out, restarting process, 95535 successfully terminated by `TERM` signal
Cannot get embedding to work
/admin/config/emoji non responsive/locks up
App.yml file does not exist when installing Discourse locally
Ember-cli error on local MacOS development
Importing / migrating from Zendesk Community to Discourse
Redis version error when I run bundle exec db:create
Dev environment setup failed on bundle install
Set up a local Discourse Development Environment?

If anyone is getting failing specs with most of them being .count errors, then try the following:

RAILS_ENV=test bundle exec rake db:reset

I had a problem where development data somehow got into my test database and was causing lots of failures.

7 إعجابات

Is it possible to reset a discourse completely?

إعجابَين (2)

Yes, do:

rake db:drop db:create db:migrate

Note that this will wipe everything and you will have to create your Admin user account again.

11 إعجابًا

Can someone assist me in how I can update my discourse?

/launcher rebuild app

returns an error.

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

./launcher rebuild app is for discourse_docker based production setup. To update local/development Discourse instance you need:

cd ~/discourse
git pull origin master
8 إعجابات

I get this error @techAPJ,

error: Your local changes to the following files would be overwritten by merge:
	.gitignore
Please commit your changes or stash them before you merge.
Aborting

The error message is pretty clear:

Please commit your changes or stash them before you merge.

If you want to ignore your local changes, do:

git fetch origin
git reset --hard origin/master
7 إعجابات

باستخدام الدليل من منتدى Ruby on Rails، عالق حالياً في الخطوة 7.

هذا على الأرجح سؤال “للمبتدئين” جداً، لكن كيف يمكنني “التوجيه” إلى الفرع التجريبي الذي تم ربطه في ذلك الموضوع؟ جربت عدة أشياء وفي النهاية ظهر لي رسالة Unknown command mini_racer في كل مرة.

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

لا بأس بسؤالهم هنا.

هناك بعض التعليمات المحددة الخاصة بـ M1 التي كتبناها ونشير إليها في منتدى Rails في هذا الدليل.

سأحتاج إلى التحقق من جهاز M1 Air الخاص بي لاحقًا، وربما زملائي الذين قاموا مؤخرًا بإعداد أجهزة Mac جديدة قد يعرفون بشكل أفضل ما إذا كان هذا لا يزال ضروريًا، ولكن هناك مثال يوضح كيفية التوجيه إلى فرع في الخطوة 7:

gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'

لذا، ستقوم بتعديل هذا السطر في النسخة المحلية من ملف discourse/Gemfile:

ثم قم بتشغيل أمر bundle install.

4 إعجابات

إنه مرتبط مباشرة في أعلى المنشور الأصلي.

موضوع منتدى Ruby on Rails متوقف منذ شهور عديدة. لم يكن صاحب المنشور الأصلي نشطًا منذ فبراير ولم يرد على أي تعليقات هناك تطلب المساعدة.

هناك المزيد من الأشخاص الذين يمكنهم مساعدتي هنا. مجرد قول. :wink:

لقد حاولت نسخ ذلك إلى Terminal وتلقيت نفس الخطأ Unknown command mini_racer من قبل.

اعترافًا، فإن الدليل من منتدى Ruby on Rails ليس واضحًا كما أتمنى في هذا الصدد.

أعتذر مسبقًا… :pray:

إعجابَين (2)

هذا ليس أمرًا للتشغيل. ستحتاج إلى تعديل ملف النص الفعلي المسمى “Gemfile” الموجود داخل مجلد discourse.

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

آه! :facepalm:

شكرًا لك! دعني أجرب ذلك الآن.

في رأيي، يجب على شخص ما تعديل الدليل من منتدى Ruby on Rails وتقديم توضيح إضافي بشأن الخطوة 7. هذا مجرد رأيي الشخصي.

سأعود حالاً. انتظر لحظة…

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

عذراً، يجب أن أذهب، لكنني أعتقد أن إصلاح mini_racer لحواسيب M1 قد تم دمجه. لقد تحققت للتو من ملف Gemfile الخاص بي على حاسوب M1، ولم يتم تعديله. لذا أعتقد أنه يمكنك تخطي الخطوة 7.

3 إعجابات

نفّذت الخطوة 8 وحصلت على خطأ Could not locate Gemfile.

أعتقد أنني تمكنت من فهم الخطوة 7، لكن الخطوة 8 لا تزال تسبّب لي مشكلة وتُظهر الخطأ المذكور أعلاه.

يجب أن تكون داخل مجلد discourse عند تشغيل أمر bundle install.

مرحبًا @merefield: هل يمكنك وصف إعدادك عن بُعد بمزيد من التفصيل؟

بينما يتيح لي تطوير قالب إضافة تغييرات على موقع مباشر، إلا أنني لا أرى أي بديل عن تطوير الإضافة على جهاز الكمبيوتر المحلي، مع وجود قاعدة كود Discourse كاملة هناك (مع إضافتي فوقها).

النتيجة هي أن أي تغيير (غير CSS) عند برمجة إضافة، عند إعادة التحميل 1) يُشغّل مروحة جهاز الكمبيوتر الخاص بي و2) يستغرق 30 ثانية كاملة لإعادة التحميل. وإذا احتجت إلى إعادة تشغيل الخادم، فقد يستغرق الأمر عدة دقائق.

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

لذلك، سأقدر أي اقتراحات لتسريع الأمور.

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

ربما يكون من الأفضل مناقشة هذا في موضوع أوبونتو، حيث أنني أقوم بتشغيل التثبيت هذا على خادم سحابي، محمي بواسطة nginx ونظام DNS كامل (بدون Docker)، لذا أنا أعالج النطاق فعليًا. كل شيء يُدار من طرف السطر الأوامر. بل إنني نجحت في تشغيل Ember CLI بشكل جيد في هذا الإعداد الآن.

ليس الأمر سريعًا للغاية، لكنه سريع بما يكفي. ويتميز بالقدرة على تشغيل واختبار خدمات استدعاء HTTPS كاملة.

أسرع بيئة لتطوير الإضافات على الإطلاق، حسب علمي، هي [Docker Dev على WSL2] محليًا (Install Discourse for development using Docker) والتي تعمل بسرعة فائقة. كما أنها سهلة الصيانة للغاية. للأسف، لا يعمل discourse_theme في تلك البيئة حتى الآن، حسب علمي، لذا عدت إلى الخادم السحابي الخاص بي للعمل على ذلك.

من الغريب بعض الشيء لماذا تتأخر شركة Apple في هذا المجال؟ فقد أثبت مهندسو مايكروسوفت ذكاءهم ودهاءهم.

3 إعجابات

في حال واجه شخص ما أخطاء عند محاولة تثبيت ruby 2.7.3، يبدو أن شيئًا ما قد تغير بعد Xcode 12 مما يكسر عملية التثبيت باستخدام rbenv:

استمررت في الحصول على هذا، على الرغم من أن لدي أحدث إصدارات من psych و libyaml مثبتة:

يبدو أن تثبيت ruby الخاص بك يفتقد psych (لإخراج YAML).
للتخلص من هذا التحذير، يرجى تثبيت libyaml وإعادة تثبيت ruby الخاص بك.

لقد جربت الحل البديل الذي يقترحونه في الدليل، لكنني استمررت في الحصول على نفس الخطأ وانتهى بي الأمر إلى الاضطرار إلى استخدام rvm:

rvm install 2.7.3
إعجاب واحد (1)

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

3 إعجابات