يفترض هذا الدليل أن لديك تثبيت قياسي مستضاف ذاتيًا. نحن ندعم فقط طريقة التثبيت القياسية هنا، لذا تفترض هذه التعليمات أن لديك تثبيتًا قياسيًا.
ينطبق هذا الدليل فقط على مثيلات Discourse المستضافة ذاتيًا. إذا كنت تستخدم خدمة استضافة مُدارة، فإن المكونات الإضافية المتاحة يتم التحكم فيها بواسطة مزود الاستضافة الخاص بك. على سبيل المثال، في استضافتنا هذه المكونات الإضافية المحددة متاحة حسب مستوى الاستضافة.
في هذا البرنامج التعليمي، سنقوم بتثبيت المكون الإضافي Discourse Solved.
يتطلب هذا البرنامج التعليمي فهمًا لكيفية استخدام مستودعات GitHub، وتحديدًا، كيفية الحصول على أو نسخ عنوان URL للاستنساخ باستخدام git وكيفية تعديل ملفات YAML ( *.yml ) عبر الطرفية باستخدام nano، وتحديدًا كيفية الحفظ والخروج في nano. تتبع ملفات YAML بشدة المسافات البادئة، لذا تأكد من احترامها عند النسخ واللصق وتعديل ملف *.yml الضروري لمثيل Discourse الخاص بك. استخدم دائمًا المسافات للمسافة البادئة في ملفات .yml، وليس علامات الجدولة (tabs).
-
انسخ عنوان URL للاستنساخ باستخدام git من مستودع المكون الإضافي على GitHub.
-
قم بالوصول إلى ملف
app.ymlالخاص بالحاوية الخاص بك (الموجود في/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
أضف عنوان URL لمستودع المكون الإضافي إلى ملف
app.ymlالخاص بالحاوية الخاص بك:hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.gitأضف عنوان URL للاستنساخ باستخدام git الخاص بالمكون الإضافي مباشرة أسفل السطر الذي يحتوي على
git clone https://github.com/discourse/docker_manager.git)اتبع التنسيق الحالي لسطر
docker_manager.git؛ إذا لم يكن يحتوي علىsudo -E -u discourse، فقم بإدراج- git clone https://github.com/discourse/discourse-solved.git. -
أعد بناء الحاوية:
cd /var/discourse ./launcher rebuild appهذا كل شيء، لقد قمت بتثبيت المكون الإضافي Discourse Solved بنجاح على مثيل Discourse الخاص بك!
إذا كان المكون الإضافي الخاص بك مستضافًا في مستودع خاص
يجب عليك استخدام رمز OAuth:
باستخدام رمز OAuth، يمكنك تثبيت المكون الإضافي الخاص بك بنفس طريقة المستودع العام، ولا تحتاج إلى إنشاء مفتاح SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://<token>@github.com/owner/repo.git
ننصح بشدة باستخدام رموز OAuth للمكونات الإضافية في المستودعات الخاصة. ومع ذلك، إذا لم تتمكن من ذلك، انظر أدناه.
خطوات التثبيت الخاصة بمفتاح SSH
-
بافتراض أن مستودع git الخاص بك مستضاف على GitHub، تحتاج إلى إضافة مفتاح SSH العام للمستخدم الخاص بالخادم الخاص بك إلى مفاتيح النشر (Deploy keys) في مستودع GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
قم بتعديل ملف
app.ymlكما هو موضح في المثال أدناه:
run:
- exec: echo "Beginning of custom commands"
- exec: cd /var/www/discourse && sudo -u discourse bundle install --deployment --without test --without development
- exec: echo "Host github.com\n\tStrictHostKeyChecking no\n" >> /user/.ssh/config
- file:
path: /user/.ssh/id_rsa
chmod: 600
contents: |
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXk
.... إلخ ....
-----END RSA PRIVATE KEY-----
- file:
path: /user/.ssh/id_rsa.pub
chmod: 600
contents: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tj .... إلخ .... user@discourse
- exec: cd $home/plugins && git clone git@github.com:SecretOrg/secret-plugin.git
- exec: cd $home && sudo -E -u discourse bundle exec rake db:migrate
- exec: cd $home && rm -fr tmp/cache
- exec: cd $home && sudo -E -u discourse bundle exec rake assets:precompile
- exec: rm /user/.ssh/id_rsa
- exec: rm /user/.ssh/id_rsa.pub
- exec: echo "End of custom commands"
- أعد بناء الحاوية:
cd /var/discourse
./launcher rebuild app
يجب تثبيت المكون الإضافي الخاص بك على مثيل Discourse الخاص بك.
كيفية إلغاء تثبيت مكون إضافي
لإزالة مكون إضافي، ما عليك سوى إزالة السطر - git clone https://github.com/... من ملف app.yml الخاص بك وإعادة بناء موقعك عبر
cd /var/discourse
./launcher rebuild app