Installatore ProCourse

Questo plugin è progettato per rendere estremamente semplice l’installazione di nuovi plugin senza dover accedere al server. Aggiunge una schermata disponibile in /admin/plugins/procourse-installer che appare così:

Da lì, puoi inserire l’URL (con o senza .git) del repository Git del plugin e fare clic su Installa Plugin. Attendi qualche minuto (circa 5 minuti) il completamento dell’installazione e sarai pronto per iniziare.

Per visualizzare tutti i plugin installati tramite l’installer o per rimuovere un plugin, vai semplicemente su Plugin Installati.


Alcune note:

  • Questi plugin rimangono anche dopo una ricostruzione o un’avvio iniziale (bootstrap) di app o web_only.

  • Al momento non è stato testato su istanze multisito e probabilmente fallirà in tali scenari, poiché il plugin necessita di accesso alla directory /plugins dell’applicazione per funzionare.

  • I plugin installati appariranno sotto /admin/plugins.

  • Puoi aggiornare questi plugin normalmente da /admin/upgrade.

  • Durante lo sviluppo di questo plugin, abbiamo rilevato un potenziale errore durante la rimozione delle traduzioni dai plugin. Ciò può causare la visualizzazione di un errore sul sito se un utente visita una pagina in cui viene utilizzata la traduzione. Questo sembra accadere anche se si utilizza admin/upgrade per aggiornare un plugin specifico e il plugin ha rimosso una traduzione. Stiamo attualmente lavorando per trovare una soluzione.


Requisiti:

  • Devi eseguire un’installazione Docker supportata.

  • Il plugin Docker Manager deve essere installato.

  • Accesso a /admin/upgrade.


Il repository è disponibile qui:

43 Mi Piace

Wow! That’s quite an accomplishment! I thought it couldn’t be done. Nice work, @joebuhlig!

EDIT: Here’s a question. If you do a rebuild at the command-line, are the procourse-installer plugins upgraded?

11 Mi Piace

Yes – plugins should get upgraded upon bootstrap.

7 Mi Piace

Just wow!
Nice work!

2 Mi Piace

IMO, this deserves to be in core.

11 Mi Piace

So, would it be worth removing my existing plugins from the app.yml file and moving them to this installer?

1 Mi Piace

I have to admit that I’m conflicted on this one. It would really cool to be in core but if it’s in core, installing plugins will only work on Docker installs and non-multisite installs. That would cause problems for a quite a lot of instances.

Technically, it doesn’t matter. They end up being installed in exactly the same way. This just makes it easier to do.

8 Mi Piace

I assume the challenges associated with getting it to work with multisite are far more complex then getting to set up multisite (which none of my clients have deployed) and I’m saying that from managing over 2 dozen active discourse installations.

It should be easier to include this in the standard app.yml on bootstrap for the standalone installs and not including the same in a multisite/multi container/HA setup.

It could always be part of core (with a big warning label that says “only works with docker”) but leave the current install method available as well.

Even better if there’s a way to detect a compatible installation and hide or show itself as necessary.

5 Mi Piace

The main challenge is precompiling assets and such. We’re effectively adding the repo to the /plugins and then running an docker manager upgrade on that specific plugin. That handles the magic side of it.

But in a multisite, you run into issues because you don’t want one instance to be able to make edits for all instances in the multisite.

6 Mi Piace

How i can uninstall a plugin using ssh? Because i installed Moderator Extension and now I cant put it anymore online, Error 502

Assuming you can’t get to the admin panel:

  1. SSH into the server.
  2. cd /var/discourse
  3. ./launcher enter app
  4. vim /shared/tmp/procourse-installer/plugins.txt
  5. Remove the offending plugin from the file.
  6. exit
  7. ./launcher rebuild app
4 Mi Piace

Cant up online :cry:

Looks like your container isn’t running. Try this ./launcher start app

3 Mi Piace

Thank You, my error 502 now are resolved. :smiley:

2 Mi Piace

I think the installer is working fine but I saw this in my error log, not sure if it’s anything but thought I’d might as well bring it up:

NameError (uninitialized class variable @@install_state in ProcourseInstaller::InstallController)
/var/www/discourse/plugins/procourse-installer/app/controllers/procourse_installer/install_controller.rb:4:in `status'
2 Mi Piace

Interesting. Do you have any guesses about what you were doing when that error came to be?

1 Mi Piace

Circa 20 giorni fa, ho installato questo plugin Procourse e un altro plugin (non ricordo quale) tramite l’interfaccia dei plugin.
Dopo alcuni giorni, ho notato che il mio sito diventava estremamente lento molte volte (ad esempio, una volta ogni pochi giorni). In quei momenti, anche l’apertura della modalità sicura era ugualmente lenta. Dopo 20-30 minuti, la velocità del sito tornava alla normalità.

Anche se non possiedo le competenze necessarie per analizzare i log, dato che la sezione di avviso dei log (o forse era Sidekiq?) conteneva la parola ‘procourse’ così tante volte, ho pensato che fosse in qualche modo correlata a questo plugin installato dentro/attraverso il plugin Procourse. Quindi ho disinstallato quel plugin dall’interfaccia di Procourse.

Ma ieri il sito si è bloccato di nuovo (quasi completamente).
Ho controllato e ho nuovamente trovato la parola ‘procourse’ scritta in moltissimi avvisi nei log.

Quindi oggi ho deciso di disinstallare anche Procourse.

Ora tengo le dita incrociate con forza.

Puoi condividere lo stack trace di uno di questi errori? Ci aiuterebbe a individuare l’origine del problema.

1 Mi Piace

Poiché ho disinstallato il plugin per il momento, posso inviare i log solo al prossimo verificarsi dell’evento.

(Non so se i log vengono conservati per 2-3 giorni o meno; se lo sono, posso provare).

Grazie.