تثبيت Discourse على CloudPanel

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

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

:+1: بافتراض عدم اعتراض أحد، سأقوم بدمج اقتراحاتي عندما يكون لدي وقت للتأكد من أنها تتدفق بشكل صحيح (وتعمل). أعرف أن تشغيل discourse-setup مع --skip-connection-test سيكون مطلوبًا على الأقل.

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

5 إعجابات

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

5 إعجابات

مرحباً!! أنا هنا وسعيد بالمساعدة! لهذا السبب قمت بإنشاء البرنامج التعليمي ودعوت إلى تقديم الملاحظات!

لقد أضفت علامة unsupported-install وإخلاء مسؤولية في الأعلى مع دفعة نحو التثبيت القياسي لضعاف القلوب. :slight_smile:

لقد اقترحت علامة #here-be-dragons، لكنها لا تزال قيد المراجعة… :slight_smile:

5 إعجابات

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

إعجابَين (2)

هل ستكون المعلومات التي وجدتها مفيدة للبرنامج التعليمي الحالي؟

إعجابَين (2)

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

3 إعجابات

أهلاً @denvergeeks :blob_wave:

أنا أراجع هذا الدليل. :slight_smile:

هل جزء

إعداد النطاق وإعداد SSL
هو إلزامي حيث تستخدم Cloudflare؟ هل يجب أن أستخدم خدمة مماثلة، أم أن SSL سيعمل دون الحاجة إلى استخدام خدمة طرف ثالث كهذه؟


في هذا النوع من الأجزاء:

سيكون من الجيد شرح سبب حاجتنا إلى القيام بذلك بسرعة (ملاحظات سفلية ستكون مقبولة) :slight_smile:

@Canapin يمكنك العثور على تعليمات لاستخدام شهادة SSL المدمجة في CloudPanel هنا…

استخدام Cloudflare هو مجرد تفضيلي لكل من خوادم الأسماء وشهادات SSL.

يستخدم الكثير من الأشخاص Cloudflare. نظرًا لأنني أستخدم Cloudflare في عمليتي، فهذا هو ما قدمته في دوري التعليمي للآخرين الذين يستخدمون (أو يرغبون في استخدام) Cloudflare لهذه الأغراض.

لا تحتاج إلى استخدام Cloudflare. يمكنك استخدام أي خوادم أسماء تستخدمها عادةً لتوجيه نطاقك إلى عنوان IP الخاص بـ CloudPanel. أنا فقط أستخدم Cloudflare عادةً.

يمكنك أيضًا استخدام أي بائع SSL بدلاً من Cloudflare أو بالإضافة إليه.

إذا أردت، يمكنك إضافة تعليمات لخوادم أسماء ومزودي SSL آخرين.

آمل أن يوضح هذا الأمر!

3 إعجابات

لقد اتبعت دليلك بدقة لاستخدام Cloudflare كوكيل عكسي باستخدام نطاق الاختبار الخاص بي canapin.ovh، ولكنه حاليًا يواجه خطأ Cloudflare:

https://canapin.ovh

بالإضافة إلى اتباع دليلك، تركت جميع إعدادات Cloudflare الأخرى افتراضية وعدلت فقط تلك التي ذكرتها في الدليل.

لا أعرف شيئًا عن التثبيتات المتقدمة وقد لا يكون الخطأ متعلقًا بدليلك، إلا إذا كان هناك جزء مفقود في مكان ما - ولكن مستخدمًا آخر جعله يعمل، لذلك أعتقد أنه من المرجح أن يكون الأمر من جانبي. :slight_smile:

3 إعجابات

@Canapin هل تذكرت (في النهاية) أن تقوم بـ:

./launcher start app

(هذا أحد الأسباب المحتملة العديدة.)

:grey_question: يمكنني المساعدة أكثر إذا كان بإمكانك تقديم المزيد من المعلومات.:grey_question:

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

نعم، الحاوية الخاصة بي قيد التشغيل ويمكن أن تكون المشكلة أشياء كثيرة… لكنني لا أريد إضافة ضوضاء إلى موضوعك، خاصة وأنني شخص غير ملم بالتركيبات غير المدعومة :stuck_out_tongue:

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

أنا أستخدم fastpanel، حيث يكفي إعداد واحد للعمل مع discourse. يحتوي fastpanel على المزيد من الميزات (postgres، والنسخ الاحتياطي التلقائي إلى السحابة، و apache/ngnix، وما إلى ذلك) لتثبيت تطبيقات أكثر تعقيدًا من wordpress. يعمل Discourse بشكل رائع في fastpanel!

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

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

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

لقد فشلت في خطوة التمهيد

Status: Downloaded newer image for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-05T01:45:55.552861 #1]  INFO -- : Reading from stdin
I, [2025-02-05T01:45:55.600413 #1]  INFO -- : File > /etc/runit/1.d/remove-old-socket  chmod: +x  chown:
I, [2025-02-05T01:45:55.612817 #1]  INFO -- : File > /etc/runit/3.d/remove-old-socket  chmod: +x  chown:


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/nginx/conf.d/discourse.conf
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"filename"=>"/etc/nginx/conf.d/discourse.conf", "from"=>"/listen 80;/", "to"=>"listen unix:/shared/nginx.http.sock;\nset_real_ip_from unix:;\n"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
70d853c5066a283a84838676ef16a243cc6f418cee8802eb34b1edfc598a7bd9
root@Vultr2409:/var/discourse#

لقد حاولت أن أطلب من Deepseek حل هذه المشكلة، واقترح عليّ
إنشاء ملف /etc/nginx/conf.d/discourse.conf يدوياً بالمحتوى التالي:

server {
    listen 80;
    server_name <mydomain.com (replaced by my domain)>;
    location / {
        proxy_pass http://unix:/shared/nginx.http.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
root@Vultr2409:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-05T02:21:24.487508 #1]  INFO -- : Reading from stdin
I, [2025-02-05T02:21:24.505619 #1]  INFO -- : File > /etc/runit/1.d/remove-old-socket  chmod: +x  chown:
I, [2025-02-05T02:21:24.510777 #1]  INFO -- : File > /etc/runit/3.d/remove-old-socket  chmod: +x  chown:


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/nginx/conf.d/discourse.conf
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"filename"=>"/etc/nginx/conf.d/discourse.conf", "from"=>"/listen 80;/", "to"=>"listen unix:/shared/nginx.http.sock;\nset_real_ip_from unix:;\n"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
1c7c2a9d055439d23b9300f77e4bc6e912d4db5cf372ea1261e7b8bccb1be3ee

لقد جربت بعض الحلول المقترحة من GPT بما في ذلك التعليق على - "templates/web.template.yml" ولكنها لم تنجح. أي مساعدة ستكون موضع تقدير كبير!

لقد طرأت بعض التغييرات الهامة على إعدادات nginx. هل هذه اختبارات ناجحة أم شيء آخر؟

ولكن ربما يمكنك المحاولة مرة أخرى الآن.

هل يمكنك إخباري بمكان أحدث إعدادات nginx؟ حاليًا، يتصل discourse الخاص بي بـ fastpanel بالإعدادات الافتراضية. كل شيء يعمل، لكنني أرغب في إعداد أكثر دقة لتحقيق التشغيل الأمثل لـ discourse.