כיצד להתקין תוספי Discourse המאוחסנים במאגרים פרטיים באמצעות מפתח SSH?

I followed the official Discourse guide for installing plugins on a self-hosted site (official tutorial), but it dates back to 2014, and I’m quite sure much of the information is now outdated.

I also tried some of the more recent, recommended solutions shared in the discussion replies, such as mounting SSH keys via volumes and configuring SSH access during the bootstrap process. Unfortunately, despite these efforts, I still failed to clone and install plugins from my private Git repositories using SSH.

If anyone has an updated, working method or best practice for using SSH keys to install Discourse plugins from private repositories, your guidance would be greatly appreciated.

האם יש דרך להוריד את קבצי התוסף ישירות לשרת מראש, כך שבמהלך האתחול של Discourse הוא לא יצטרך להביא אותם שוב מ-GitHub?

This is still the valid approach

I use it all the time.

2 לייקים

You can probably clone the files directly into /plugins and then run the necessary migrations, but then you may not receive updates for the plugins.

תודה! אבל הסיבה שאני מעדיף להשתמש ב-SSH היא כי אסימוני OAuth אינם מאפשרים הפרדה בין הרשאות קריאה וכתיבה — הם תמיד מגיעים עם יותר גישה ממה שנדרש.

עם SSH, אני יכול ליצור מפתח פריסה לקריאה בלבד, שהוא מאובטח יותר ומתאים יותר לעקרון ההרשאה המינימלית.

תודה על ההצעה!

למעשה ניסיתי לשבט את התוסף ישירות לתוך /var/www/discourse/plugins, אבל זה לא עבד — גם כאשר הרכבתי את תיקיית התוסף מהמארח לנתיב זה בתוך הקונטיינר.

נראה שבמהלך האתחול, Discourse מצפה לאחזר תוספים דרך Git, והצבת קבצי התוסף באופן ידני אינה עוקפת את השלב הזה.

אם הצלחת בשיטה זו, אשמח לשמוע פרטים נוספים.

לייק 1

IIRC there are problems if you clone directly (I think this), that’s why using the tokens to clone are the recommended way.

But I think you may want to give this a shot, if you want to use SSH keys:

תודה, אבל כבר ניסיתי את השיטה המתוארת במדריך הרשמי משנת 2014 שקישרת — ואני יכול לאשר שהיא כבר לא עובדת לגישה למאגרים פרטיים באמצעות מפתחות SSH במהלך האתחול.

ניסיתי גם את הגישה החדשה יותר המוזכרת באחת התגובות (טעינת מפתח ה-SSH לתוך הקונטיינר והגדרת core.sshCommand ב-after_code), אך למרבה הצער, גם זה נכשל במקרה שלי. Discourse עדיין זורק שגיאת הרשאת SSH בעת ניסיון לשכפל את התוסף הפרטי.

אם יש דרך עובדת ואמינה כרגע להשתמש במאגר פרטי עם SSH בהגדרת ייצור, אודה מאוד להכוונה עדכנית יותר.

אתה יכול פשוט לשכפל אותו מקומית ולטעון אותו בספריית התוספים או להעתיק אותו מ-mount זמני לספריית התוספים.
בעבר יכולת לקבל כתובת URL של GitHub עם פרטי הזדהות משובצים בכתובת ה-URL. עשיתי זאת בעבר.