Instalador de ProCourse

Este plugin está diseñado para hacer extremadamente fácil la instalación de nuevos plugins sin necesidad de iniciar sesión en el servidor. Agrega una pantalla en /admin/plugins/procourse-installer que se ve así:

Desde allí, puedes ingresar la URL (con o sin .git) del repositorio git del plugin y hacer clic en Instalar Plugin. Espera unos minutos (aproximadamente 5 minutos) a que se complete la instalación y ya estarás listo.

Para ver todos los plugins que has instalado a través del instalador o para eliminar un plugin, simplemente ve a Plugins Instalados.


Algunas notas:

  • Estos plugins SÍ permanecen después de una reconstrucción o arranque (bootstrap) de app o web_only.

  • Actualmente no se ha probado en instancias multisitio y probablemente fallará en esos escenarios, ya que el plugin necesita acceso al directorio /plugins de la aplicación para funcionar.

  • Los plugins instalados SÍ aparecerán en /admin/plugins.

  • SÍ puedes actualizar estos plugins de forma normal desde /admin/upgrade.

  • Durante el desarrollo de esto, encontramos un error potencial al eliminar traducciones de los plugins. Esto puede hacer que el sitio muestre un error si el usuario visita una página donde se utiliza la traducción. Esto parece ocurrir incluso si usas admin/upgrade para actualizar un plugin específico y ese plugin ha eliminado una traducción. Estamos trabajando actualmente en encontrar una solución para esto.


Requisitos:

  • Debes estar ejecutando una instalación de Docker compatible.

  • El plugin Docker Manager debe estar instalado.

  • Acceso a /admin/upgrade.


El repositorio se puede encontrar aquí:

43 Me gusta

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 Me gusta

Yes – plugins should get upgraded upon bootstrap.

7 Me gusta

Just wow!
Nice work!

2 Me gusta

IMO, this deserves to be in core.

11 Me gusta

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

1 me gusta

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 Me gusta

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 Me gusta

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 Me gusta

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 Me gusta

Cant up online :cry:

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

3 Me gusta

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

2 Me gusta

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 Me gusta

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

1 me gusta

Hace unos 20 días, instalé este complemento Procourse y otro complemento (no recuerdo cuál fue) a través de la interfaz de complementos.

Al cabo de unos días, noté que en muchas ocasiones (digamos, una vez cada pocos días) mi sitio web quedaba extremadamente lento. En esos momentos, incluso la apertura en modo seguro era igual de lenta. Después de 20-30 minutos, la velocidad de mi sitio volvía a la normalidad.

Aunque no tengo las habilidades necesarias para diagnosticar los registros, como la sección de advertencias de los registros (¿o era Sidekiq?) contenía la palabra ‘procourse’ tantas veces, pensé que estaba relacionado de alguna manera con este complemento instalado dentro o a través del complemento Procourse. Así que desinstalé ese complemento desde la interfaz de Procourse.

Pero ayer volvió a (casi) colapsar.

Lo verifiqué y de nuevo encontré la palabra ‘procourse’ escrita en muchas y muchas advertencias en los registros.

Así que hoy decidí desinstalar también Procourse.

Ahora tengo los dedos cruzados con fuerza.

¿Podrías compartir el backtrace de uno de esos errores? Eso nos ayudaría a identificar el origen del problema.

1 me gusta

Dado que he desinstalado el plugin por el momento, solo podré enviar los registros cuando vuelva a ocurrir el problema.

(No sé si los registros se conservan durante 2 o 3 días o no; si es así, puedo intentarlo).

Gracias.