Capacidad de instalar y desinstalar plugins directamente desde la GUI de Administración

Sería genial tener esto..

Para foros grandes con mucho tráfico, no es bueno que el foro se caiga cada vez que tengo que ejecutar

./launcher rebuild app

Cada vez que instalo/desinstalo un plugin, esto hace que el foro se caiga por un tiempo y los usuarios se frustran.

Sería bueno tener la capacidad de instalar/desinstalar y reconstruir/reiniciar Discourse directamente desde la interfaz gráfica de administración.

No creo que esto sea posible debido a la forma en que los complementos se integran en los recursos de la aplicación, lo cual debe hacerse en el momento de la compilación, especialmente porque algunos elementos de los complementos afectan al backend.

Varias medidas de mitigación:

  1. Personalice con componentes de tema en la medida de lo posible. Estos se pueden intercambiar y actualizar en línea.

  2. Elija un conjunto de complementos y manténgase en esa lista. ¿Por qué necesita cambiar la configuración tan a menudo?

  3. Si solo necesita actualizar un complemento, utilice la herramienta de actualización en línea.

  4. Programar la adición de nuevos complementos para cuando se vea obligado a realizar una reconstrucción debido a otros cambios fundamentales en la aplicación principal.

11 Me gusta

La única recomendación real que podemos dar aquí es planificar con antelación. Simplemente no hay sustituto para ello.

Utilice una instancia pequeña para probar y aprobar cualquier cambio de plugin que desee realizar, luego programe una ventana cada semana o mes para implementar todos esos cambios en su sitio en vivo.

De esta manera, sus usuarios no se verán significativamente afectados por estas actividades y reducirá considerablemente el riesgo de tiempo de inactividad adicional debido a problemas de compatibilidad.

4 Me gusta

Con una configuración que incluye varios contenedores web, es posible evitar el tiempo de inactividad durante una reconstrucción al reconstruir e implementar un contenedor web a la vez.

5 Me gusta

Lo siento @Faizan_Zahid, pero podrías haber redactado ese título de mejor manera. Quizás querías decir “plugins” y no “Discourse”. Yo estaba esperando a alguien que pidiera una función para eliminar Discourse de un servidor :wink:

Quieres poder instalar/desinstalar plugins sin tener que reconstruir. Parece que no es posible, lamentablemente :confused:
Luego querrías minimizar el tiempo de inactividad cuando necesites reconstruir. Esto ya ha sido un tema recientemente: Ayuda con la configuración de “tiempo de inactividad cero” (que no terminó realmente donde probablemente debería haber ido).

Lo que quizás necesitemos aquí es un buen tutorial sobre cómo configurar una instalación de 2 contenedores web y cómo usarlo. Esta parece la configuración más eficiente (y también probablemente la más complicada). No tengo suficiente conocimiento para hacer un tutorial así, o lo haría. ¿Hay alguien dispuesto a hacerlo?

3 Me gusta

Planeo encargarme de la tarea de crear guías sencillas para una variedad de casos de uso avanzados, incluido el mencionado. Está en la lista de tareas pendientes :slight_smile:

2 Me gusta

Si tu Discourse utiliza Docker, puedes usar el instalador de Procourse.

Eso también realiza una reconstrucción.

2 Me gusta

Aunque aún funciona hoy, según tengo entendido, Procourse ha dejado de atender clientes. Sería muy reacio a recomendarlo sin una hoja de ruta de mantenimiento clara.

4 Me gusta

No estaba al tanto de eso. Aunque, siempre que no cambie significativamente la estructura de Discourse, debería seguir funcionando. Enfatizo debería. Me pregunto si el autor permitiría que alguien más se hiciera cargo del proyecto si ya se ha ido.

Con el tiempo, todos los complementos necesitan actualizarse. Incluso cambios pequeños ocasionalmente causan problemas para los complementos de Discourse en desarrollo activo. Simplemente no es posible predecirlo y definitivamente no es algo en lo que alguno de nosotros pueda confiar.

Un complemento que gestiona la instalación de otros complementos y que no está siendo mantenido es una propuesta muy arriesgada. Confiar en el optimismo para seguir usándolo parece una muy mala idea.

Solo he trabajado con dos clientes que expresaron interés en usarlo. Una vez que quedó claro que Procourse ya no existía, ambos estaban deseosos de migrar a otra solución.

1 me gusta

Esto se reduce a que los DeVs deberían considerar incorporar este tipo de función directamente en Discourse, incluso si se convierte en una opción intercambiable mediante la línea de comandos, por si la seguridad pudiera ser una preocupación.

Que yo sepa, los desafíos son más fundamentales que eso. Tal como está, el enfoque no funciona en absoluto con multisitio. Tampoco puedes desinstalar complementos directamente si por error instalas algo que resulta ser incompatible. Se requiere acceso SSH.

He leído el problema de los sitios múltiples. Podría simplemente usar una verificación y permitirlo solo si no se trata de un sitio múltiple que utiliza Docker.

Así que sí, podría requerir algunos ajustes para lograrlo. Sin embargo, es algo en lo que deberían investigar para instalaciones de sitio único.

Incluso si se adopta como un plugin oficial para contenedores de sitio único.

Si lees más abajo en el tema, podrás ver lo mucho más difícil que se vuelve la solución básica de problemas de compatibilidad de complementos.

Simplemente algo que debe estar en la hoja de ruta. No es muy diferente, a veces, de usar una interfaz gráfica en Linux para instalar versus la línea de comandos; sin embargo, hay algunos que han logrado que esto funcione bien.

Cada vez que utilizas instalaciones no oficiales, hay riesgo de que algo se rompa. Por ejemplo, sería ideal tener la capacidad de activar o desactivar un plugin como un tema o un componente de tema.

Recientemente tuve un problema donde parece que los iconos de categoría rompieron cosas. Incluso cuando estaba en un tema básico sin otras modificaciones de CSS o componentes. Tomó un poco de tiempo rastrearlo.

Lo extraño es que funciona en nuestra instalación de prueba separada que ejecuta la última beta de Discourse.