Я следовал официальному руководству Discourse по установке плагинов на собственном хостинге (официальное руководство), но оно датируется 2014 годом, и я почти уверен, что большая часть информации устарела.
Я также попробовал некоторые из более современных рекомендуемых решений, обсуждавшихся в ответах, например, монтирование SSH-ключей через тома и настройку SSH-доступа в процессе загрузки. К сожалению, несмотря на эти усилия, мне так и не удалось клонировать и установить плагины из моих частных Git-репозиториев по SSH.
Если у кого-то есть обновлённый рабочий метод или лучшие практики по использованию SSH-ключей для установки плагинов Discourse из частных репозиториев, буду очень признателен за вашу помощь.
Вы, вероятно, можете клонировать файлы напрямую в папку /plugins и затем выполнить необходимые миграции, но в этом случае вы можете не получать обновления для плагинов.
Спасибо! Но причина, по которой я предпочитаю использовать SSH, заключается в том, что токены OAuth не позволяют разделить права на чтение и запись — они всегда предоставляют больше доступа, чем необходимо.
С помощью SSH я могу сгенерировать ключ развёртывания только для чтения, что более безопасно и лучше соответствует принципу минимальных привилегий.
Я на самом деле пробовал клонировать плагин напрямую в /var/www/discourse/plugins, но это не сработало — даже когда я монтировал папку плагина с хоста в этот путь внутри контейнера.
Похоже, что во время загрузки Discourse ожидает получение плагинов через Git, и ручное размещение файлов плагина не обходит этот шаг.
Если у вас был успех с этим методом, я был бы рад узнать больше деталей.
Насколько я помню, при прямом клонировании возникают проблемы (думаю, это), поэтому использование токенов для клонирования является рекомендуемым способом.
Однако, если вы хотите использовать SSH-ключи, рекомендую попробовать следующее:
Спасибо, но я уже пробовал метод, описанный в официальном руководстве 2014 года, на которое вы ссылались, — и могу подтвердить, что он больше не работает для доступа к приватным репозиториям через SSH-ключи во время начальной настройки.
Я также попробовал более новый подход, упомянутый в одном из ответов (подключение SSH-ключа в контейнер и настройка core.sshCommand в after_code), но, к сожалению, в моём случае это тоже не сработало. Discourse всё равно выдаёт ошибку прав доступа SSH при попытке клонировать приватный плагин.
Если есть сейчас рабочий и надёжный способ использовать приватный репозиторий через SSH в рабочей среде, я был бы очень признателен за более актуальные инструкции.