Possibilità di installare e disinstallare plugin direttamente dalla GUI di amministrazione

Sarebbe davvero ottimo avere questa funzionalità.

Per i forum di grandi dimensioni con un alto traffico, non è accettabile che il forum vada offline ogni volta che devo eseguire

./launcher rebuild app

Ogni volta che installo o disinstallo un plugin, questo causa un’interruzione del servizio per un certo periodo, frustrando gli utenti.

Sarebbe utile poter installare/disinstallare e ricostruire/riavviare Discourse direttamente dall’interfaccia grafica di amministrazione.

Non credo che questo sia possibile a causa di come i plugin sono integrati nelle risorse dell’app, un processo che deve essere eseguito al momento della compilazione, specialmente perché alcuni elementi dei plugin influenzano il back end.

Alcune mitigazioni:

  1. Personalizza il più possibile con i componenti del tema. Questi possono essere sostituiti e aggiornati online.

  2. Scegli un insieme di plugin e attieniti a quell’elenco. Perché hai bisogno di cambiare la configurazione così spesso?

  3. Se hai solo bisogno di aggiornare un plugin, utilizza lo strumento di aggiornamento online.

  4. Pianifica l’aggiunta di nuovi plugin nei momenti in cui sei costretto a eseguire una nuova compilazione a causa di altri cambiamenti fondamentali nell’app principale.

11 Mi Piace

L’unica vera raccomandazione che possiamo fare qui è pianificare in anticipo. Non c’è davvero nulla che possa sostituirlo.

Utilizza un’istanza piccola per testare e approvare eventuali modifiche ai plugin che desideri apportare, quindi programma una finestra temporale ogni settimana o mese per applicare tutte queste modifiche sul tuo sito in produzione.

In questo modo i tuoi utenti non saranno significativamente influenzati da tali attività e ridurrai in modo sostanziale il rischio di tempi di inattività aggiuntivi dovuti a problemi di compatibilità.

4 Mi Piace

Con una configurazione che prevede più container web, è possibile evitare l’interruzione del servizio durante una ricostruzione aggiornando o distribuendo un container web alla volta.

5 Mi Piace

Mi dispiace @Faizan_Zahid, ma potresti fare di meglio con quel titolo. Forse intendevi “plugin” e non “Discourse”. Io mi aspettavo che qualcuno chiedesse una funzionalità per rimuovere Discourse da un server :wink:

Vuoi poter installare/disinstallare plugin senza dover ricostruire. Purtroppo sembra non sia possibile :confused:
In tal caso, vorresti minimizzare i tempi di inattività quando devi ricostruire. Questo è già stato un argomento di recente: Aiuto per la configurazione “zero downtime” (che non è andato dove probabilmente avrebbe dovuto).

Ciò di cui potremmo aver bisogno qui è un bel tutorial su come configurare un’installazione con 2 container web e come utilizzarlo. Questa sembra la configurazione più efficiente (e anche probabilmente la più complessa). Non ho abbastanza conoscenze per creare un tale tutorial, altrimenti lo farei. C’è qualcuno disposto a farlo?

3 Mi Piace

Intendo occuparmi della creazione di guide semplici per una varietà di casi d’uso avanzati, inclusi quelli sopra menzionati. È nella lista delle cose da fare :slight_smile:

2 Mi Piace

Se il tuo Discourse utilizza Docker, puoi utilizzare l’installer Procourse.

Anche quello esegue una ricompilazione.

2 Mi Piace

Anche se oggi funziona ancora, per quanto ne so Procourse ha smesso di servire i clienti. Sarei molto esitante a raccomandarlo senza una chiara roadmap di manutenzione.

4 Mi Piace

Non ne ero a conoscenza. Finché la struttura di Discourse non subirà cambiamenti significativi, dovrebbe continuare a funzionare. Sottolineo il dovrebbe. Mi chiedo se l’autore permetterebbe a qualcun altro di prendere in carico il progetto, nel caso in cui si sia ritirato.

Nel tempo, tutti i plugin devono essere aggiornati. Anche piccoli cambiamenti possono occasionalmente causare problemi per i plugin di Discourse in sviluppo attivo. Non è possibile prevederlo e sicuramente non è qualcosa su cui qualcuno di noi può fare affidamento.

Un plugin che gestisce autonomamente l’installazione di altri plugin, ma che non viene più mantenuto, è una molto rischiosa proposta. Fare affidamento sull’ottimismo per continuare a usarlo sembra una pessima idea.

Ho lavorato solo con due clienti che hanno espresso interesse a utilizzarlo. Una volta diventato chiaro che Procourse non esisteva più, entrambi erano desiderosi di migrare altrove.

1 Mi Piace

Ciò si riduce al fatto che gli sviluppatori di Discourse dovrebbero valutare di integrare nativamente questo tipo di funzionalità, anche come opzione attivabile tramite riga di comando, qualora la sicurezza possa essere una preoccupazione.

Per quanto ne so, le sfide sono più fondamentali di così. Nell’attuale configurazione, l’approccio non funziona affatto con i siti multipli.

Inoltre, non è possibile disinstallare direttamente i plugin se per errore ne installate uno che risulta incompatibile. È necessario l’accesso SSH.

Ho letto la questione relativa ai siti multipli. Potrebbe semplicemente utilizzare un controllo e consentire l’uso solo se non si tratta di un ambiente multi-sito che utilizza Docker.

Quindi sì, potrebbe richiedere qualche aggiustamento. Tuttavia, è qualcosa che dovrebbero prendere in considerazione per le installazioni non multi-sito.

Anche se adottato come plugin ufficiale per i container di siti singoli.

Se leggi più in basso nell’argomento, puoi vedere quanto diventa più difficile la risoluzione di base dei problemi di compatibilità dei plugin.

È solo qualcosa che deve essere inserito nella roadmap. Non è molto diverso, a volte, dall’uso di un’interfaccia grafica in Linux per installare rispetto alla riga di comando; tuttavia, alcuni hanno fatto funzionare bene questa cosa.

Ogni volta che si utilizzano installazioni non ufficiali, c’è il rischio di malfunzionamenti. Quindi, ad esempio, sarebbe ideale poter attivare o disattivare un plugin come un tema o un componente del tema.

Recentemente ho avuto un problema in cui sembra che le icone delle categorie abbiano causato malfunzionamenti. Anche con un tema di base senza altre modifiche CSS o componenti. Ci è voluto un po’ per individuarlo.

La cosa strana è che funziona sulla nostra installazione di test separata che esegue l’ultima versione beta di Discourse.