Come installare plugin Discourse ospitati in repository privati usando la chiave SSH?

Ho seguito la guida ufficiale di Discourse per l’installazione di plugin su un sito self-hosted (tutorial ufficiale), ma risale al 2014 e sono abbastanza sicuro che molte delle informazioni siano ormai obsolete.

Ho anche provato alcune delle soluzioni più recenti e consigliate condivise nelle risposte della discussione, come il montaggio di chiavi SSH tramite volumi e la configurazione dell’accesso SSH durante il processo di bootstrap. Sfortunatamente, nonostante questi sforzi, non sono ancora riuscito a clonare e installare plugin dai miei repository Git privati utilizzando SSH.

Se qualcuno ha un metodo aggiornato e funzionante o una best practice per utilizzare le chiavi SSH per installare plugin Discourse da repository privati, la sua guida sarebbe molto apprezzata.

C’è un modo per scaricare i file del plugin direttamente sul server in anticipo, in modo che durante l’avvio di Discourse non sia necessario recuperarli nuovamente da GitHub?

Questo è ancora l’approccio valido

Lo uso continuamente.

2 Mi Piace

Probabilmente puoi clonare i file direttamente in /plugins ed eseguire le migrazioni necessarie, ma in tal caso potresti non ricevere aggiornamenti per i plugin.

Grazie! Ma il motivo per cui preferisco usare SSH è che i token OAuth non consentono di separare le autorizzazioni di lettura e scrittura: hanno sempre più accesso del necessario.

Con SSH, posso generare una chiave di deployment di sola lettura, che è più sicura e si allinea meglio al principio del privilegio minimo.

Grazie per il suggerimento!

In realtà ho provato a clonare il plugin direttamente in /var/www/discourse/plugins, ma non ha funzionato, nemmeno quando ho montato la cartella del plugin dall’host in quel percorso all’interno del container.

Sembra che durante il bootstrap, Discourse si aspetti di recuperare i plugin tramite Git, e il posizionamento manuale dei file del plugin non aggira quel passaggio.

Se hai avuto successo con questo metodo, sarei felice di saperne di più.

1 Mi Piace

IIRC ci sono problemi se cloni direttamente (penso questo), ecco perché l’uso dei token per clonare è il modo consigliato.

Ma penso che potresti voler provare questo, se vuoi usare le chiavi SSH:

Grazie, ma ho già provato il metodo descritto nella guida ufficiale del 2014 che hai linkato — e posso confermare che non funziona più per accedere a repository privati tramite chiavi SSH durante il bootstrap.

Ho anche provato l’approccio più recente menzionato in una delle risposte (montare la chiave SSH nel container e configurare core.sshCommand in after_code), ma sfortunatamente anche questo è fallito nel mio caso. Discourse genera ancora un errore di permesso SSH quando tenta di clonare il plugin privato.

Se esiste un modo attualmente funzionante e affidabile per utilizzare un repository privato con SSH in una configurazione di produzione, apprezzerei molto una guida più aggiornata.

Potresti semplicemente clonarlo localmente e montarlo nella directory dei plugin o copiarlo da un mount temporaneo nella directory dei plugin.

In passato era possibile ottenere un URL di GitHub con le credenziali incorporate nell’URL. L’ho già fatto.