Как установить плагины Discourse из приватных репозиториев с использованием SSH-ключа?

Я следовал официальному руководству Discourse по установке плагинов на собственном хостинге (официальное руководство), но оно датируется 2014 годом, и я почти уверен, что большая часть информации устарела.

Я также попробовал некоторые из более современных рекомендуемых решений, обсуждавшихся в ответах, например, монтирование SSH-ключей через тома и настройку SSH-доступа в процессе загрузки. К сожалению, несмотря на эти усилия, мне так и не удалось клонировать и установить плагины из моих частных Git-репозиториев по SSH.

Если у кого-то есть обновлённый рабочий метод или лучшие практики по использованию SSH-ключей для установки плагинов Discourse из частных репозиториев, буду очень признателен за вашу помощь.

Можно ли заранее загрузить файлы плагинов непосредственно на сервер, чтобы во время инициализации Discourse не приходилось снова получать их с GitHub?

Это по-прежнему актуальный подход.

Я использую его постоянно.

Вы, вероятно, можете клонировать файлы напрямую в папку /plugins и затем выполнить необходимые миграции, но в этом случае вы можете не получать обновления для плагинов.

Спасибо! Но причина, по которой я предпочитаю использовать SSH, заключается в том, что токены OAuth не позволяют разделить права на чтение и запись — они всегда предоставляют больше доступа, чем необходимо.

С помощью SSH я могу сгенерировать ключ развёртывания только для чтения, что более безопасно и лучше соответствует принципу минимальных привилегий.

Спасибо за предложение!

Я на самом деле пробовал клонировать плагин напрямую в /var/www/discourse/plugins, но это не сработало — даже когда я монтировал папку плагина с хоста в этот путь внутри контейнера.

Похоже, что во время загрузки Discourse ожидает получение плагинов через Git, и ручное размещение файлов плагина не обходит этот шаг.

Если у вас был успех с этим методом, я был бы рад узнать больше деталей.

Насколько я помню, при прямом клонировании возникают проблемы (думаю, это), поэтому использование токенов для клонирования является рекомендуемым способом.

Однако, если вы хотите использовать SSH-ключи, рекомендую попробовать следующее:

Спасибо, но я уже пробовал метод, описанный в официальном руководстве 2014 года, на которое вы ссылались, — и могу подтвердить, что он больше не работает для доступа к приватным репозиториям через SSH-ключи во время начальной настройки.

Я также попробовал более новый подход, упомянутый в одном из ответов (подключение SSH-ключа в контейнер и настройка core.sshCommand в after_code), но, к сожалению, в моём случае это тоже не сработало. Discourse всё равно выдаёт ошибку прав доступа SSH при попытке клонировать приватный плагин.

Если есть сейчас рабочий и надёжный способ использовать приватный репозиторий через SSH в рабочей среде, я был бы очень признателен за более актуальные инструкции.

Вы можете просто клонировать его локально и либо подключить в каталоге плагинов, либо скопировать его из временного монтирования в каталог плагинов.

Раньше можно было получить URL GitHub, в который были встроены учетные данные. Я раньше так делал.