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?
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.
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ù.
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.