セルフホスト型サイトにプラグインをインストールするための公式Discourseガイド(公式チュートリアル)に従いましたが、これは2014年のものであり、多くの情報が現在では古くなっていると確信しています。
また、ディスカッションの返信で共有されている、より最近の推奨ソリューションのいくつか(SSHキーをボリューム経由でマウントしたり、ブートストラッププロセス中にSSHアクセスを設定したりするなど)も試しました。残念ながら、これらの試みにもかかわらず、SSHを使用してプライベートGitリポジトリからプラグインをクローンしてインストールすることに失敗しました。
SSHキーを使用してプライベートリポジトリからDiscourseプラグインをインストールするための、更新された、動作する方法またはベストプラクティスがあれば、ご guidance をいただけると幸いです。
Discourse のブートストラップ時に GitHub から再度取得する必要がないように、事前にプラグインファイルをサーバーに直接ダウンロードする方法はありますか?
おそらく、ファイルを直接 /plugins にクローンしてから、必要なマイグレーションを実行できますが、その場合、プラグインのアップデートを受け取れない可能性があります。
ありがとうございます。しかし、私がSSHを使用するのを好む理由は、OAuthトークンでは読み取りと書き込みの権限を分離できないためです。常に必要以上のアクセス権が付与されてしまいます。
SSHを使用すると、読み取り専用のデプロイキーを生成できます。これはより安全であり、最小権限の原則によりよく適合します。
ご提案ありがとうございます!
実際には、プラグインを /var/www/discourse/plugins に直接クローンしようとしましたが、ホストからコンテナ内のそのパスにプラグインフォルダをマウントした場合でも、うまくいきませんでした。
ブートストラップ中、Discourse は Git 経由でプラグインを取得することを期待しているようで、プラグインファイルを直接配置してもその手順を回避できないようです。
もしこの方法で成功した経験があれば、ぜひ詳細をお聞かせください。
「いいね!」 1
IIRC、直接クローンすると問題が発生する可能性があります(こちらだと思います)。そのため、トークンを使用してクローンすることが推奨される方法です。
ただし、SSHキーを使用したい場合は、これを試してみるのが良いでしょう。
ありがとうございます。リンクされた公式の2014年のガイドに記載されている方法を試しましたが、もはや機能しないことを確認しました。SSHキーを使用してブートストラップ中にプライベートリポジトリにアクセスすることはできません。
また、返信の1つで言及されている新しいアプローチ(SSHキーをコンテナにマウントし、after_codeでcore.sshCommandを構成する)も試しましたが、残念ながら私の場合はそれも失敗しました。プライベートプラグインをクローンしようとすると、Discourseは依然としてSSH権限エラーを発生させます。
本番環境でSSHを使用してプライベートリポジトリを使用するための、現在機能的で信頼性の高い方法がある場合は、より最新のガイダンスをいただけると非常に助かります。
pfaffman
(Jay Pfaffman)
9
ローカルにクローンして、プラグインディレクトリにマウントするか、一時的なマウントからプラグインディレクトリにコピーすることができます。
以前は、URLに認証情報が埋め込まれたGitHub URLを取得することができました。以前にそれを実行したことがあります。