إليك نسختي من هذا. كدت أستسلم، لكن @tophee ربطت بمنشور كتبته أنا (!!) وقدم السحر اللازم! أصبح الآن طريقة مباشرة لتكوين Nginx Proxy Manager لـ Discourse. أعتقد أن هذا يجعل الأمر مشابهاً لـ Run other websites on the same machine as Discourse - #396.
تثبيت Nginx Proxy Manager وفقاً لتعليماتهم في
إزالة قوالب SSL و Let’s Encrypt:
تأكد من أن هذه الأسطر في ملف yml الخاص بك قد تم تعليقها أو حذفها:
## قم بإلغاء التعليق عن هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
اجعل Discourse يستخدم شبكة npm-default.
إذا اتبعت تعليمات تثبيت Nginx Proxy Manager دون تفكير، فستقوم بإنشاء شبكة Docker تسمى npm_default.
أضف هذا القسم إلى ملف (ملفات) yml الخاص بك. إذا كان لديك حاويات web_only و data منفصلة، فستحتاج إلى إضافة هذا إلى كل منها (لم أختبر حاوية mail-receiver). لا يتم استخدام docker_args مع المسافة البادئة.
docker_args: |
--network npm_default
لا حاجة لكشف أي منافذ
قم بتعليق أو إزالة هذه الأسطر من ملف yml الخاص بك:
# expose:
# - "80:80" # http
# - "443:443" # https
يمكنك بعد ذلك إعادة بناء الحاوية (الحاويات) الخاصة بك وتكوين Nginx Proxy Manager على النحو التالي:

طريقة بسيطة (ولكن ليس بالضرورة موصى بها) لبدء تشغيل موقع Discourse ثانٍ ستكون كالتالي:
cd /var/discourse/containers
cp app.yml othersite.yml
# قم بالتعديل بطريقة ما، على أقل تقدير، اسم المضيف في othersite.yml
./launcher rebuild othersite
ثم أضفه إلى NPM كما هو موضح أعلاه، باستخدام othersite بدلاً من app.
لقد اختبرت هذا مع app.yml بالإضافة إلى حاويتين من نوع web_only وحاوية data واحدة بالإضافة إلى حاوية othersite-redis منفصلة وهي نسخة من حاوية data تحتوي فقط على قوالب redis. (ولكن الحل الأسهل سيكون وضع redis الإضافي داخل حاوية web_only).