Gran proyecto de migración del foro vBulletin

Hola,

Estoy en proceso de encontrar un futuro para un foro vBulletin 4 enorme (más de 12 millones de publicaciones, 100 000 usuarios).

Actualmente estoy estudiando Discourse como opción, pero me surgen varias preguntas y no parece que encuentre respuestas satisfactorias en esta etapa, así que tal vez podría entenderlo mejor haciendo las preguntas directamente.

Este foro pertenece a una empresa y, a pesar de que no genera ingresos, sigue siendo un lugar importante para su comunidad.

1/ No entiendo la filosofía detrás del “contenedor único lo hace todo”. Para mí, Docker se trata de la separación de microservicios e interconectarlos a través de la red de Docker. Estoy acostumbrado a ejecutar proyectos mult Contenedor (hasta 10/12 contenedores con redis, postgresql y demás) utilizando solo herramientas de Docker.
Leí el tema aquí: Can Discourse ship frequent Docker images that do not need to be bootstrapped? pero no estoy seguro de la justificación. Cuando veo todos los archivos exec en los archivos compose disponibles, creo que hay un malentendido entre lo que se supone que debe hacer un archivo compose y lo que se supone que debe hacer un Dockerfile.
Las actualizaciones de código deberían activar nuevas compilaciones de imágenes de Docker que se descargarían y luego se ejecutarían con compose y variables de entorno.
Veo que alguien empezó a hacer eso en un proyecto de GitHub, pero asumo que no está soportado oficialmente.
¿Puede alguien darme una explicación clara del “por qué” de la filosofía actual y si hay algún plan para ejecutarlo como tantos proyectos existen en Internet en 2023?

2/ La empresa propietaria del proyecto utiliza Google Workspace para los correos electrónicos. He utilizado la configuración de retransmisión SMTP de Google para otros proyectos y no planeo usar nada más para poder trabajar. He leído cosas diferentes sobre esto en este foro. ¿Hay una forma clara de asegurarse de que funcionará o hay alguna posibilidad de que no funcione (lo que sería un obstáculo insuperable para nosotros)?

3/ Vi que hay scripts para ejecutar migraciones desde vBulletin (aquí: Migrate a vBulletin 4 forum to Discourse), pero esto da instrucciones contradictorias, como usar la guía, pero personalizando el contenedor con archivos Gem. ¿Qué impacto tiene esto en la mantenibilidad o el soporte? ¿Sigue siendo compatible la imagen en caso de que algo salga mal?

4/ Integración con otras herramientas (principalmente Discord). En esta etapa, el foro vBulletin tiene su propia base de datos de usuarios. ¿Hay alguna forma de pasar “sin problemas” de usuarios de la base de datos local a usuarios de Discord, por ejemplo, donde podríamos emparejar usuarios con su inicio de sesión de Discord en algún momento?

5/ ¿Hay una guía sencilla para temas que permita una transición fluida, ya que tengo muchos usuarios que se perderán y me gustaría generar el mínimo ruido posible de la migración?

Volveré con probablemente otro grupo de preguntas, pero estas son las principales que tengo hasta ahora.

Gracias a todos los que respondan a esto :slight_smile: todos los aportes son muy apreciados.

Eso es para personas que no saben lo que es la administración de sistemas y que necesitan ayuda para que funcione. Para un foro grande, querrás al menos una instalación de 2 contenedores, o quizás RDS y Elasticache en lugar de crear los tuyos propios.

Si quieres lanzar con un Dockerfile, necesitarás usar el lanzador para construir tu contenedor y encontrar una manera de gestionar las migraciones de la base de datos y precompilar los activos.

Si sabes cómo usar Google para el correo electrónico transaccional, está bien. La mayoría de la gente no lo sabe y no queremos enseñarles.

Una migración a gran escala para un foro antiguo normalmente necesita mucha personalización. Si ejecutar tu migración en una instancia de desarrollo o en una instancia de producción dentro de docker es una cuestión de gustos. Solía hacerlo en una instancia de desarrollo, pero hoy en día ejecuto todas mis migraciones en docker. Descubrir cómo instalar todas las piezas puede ser frustrante.

¿Te refieres a “discord” o “Discourse”? ¿O quizás quieres Configure Discord Login for Discourse?

Hagas lo que hagas, a la gente le disgustan los cambios. No creo que intentar que Discourse sea como vBulletin ayude. Si quieres que tu foro se comporte como vBulletin, entonces sigue usándolo. Hay muchos temas que hacen muchas cosas. Realmente no hay una guía excepto Search results for '#theme-component' - Discourse Meta. Puedes buscar allí.

Una cosa que creo que alguien pasó por alto es que, aunque la primera vez que ejecutas el script tardará días, las ejecuciones posteriores son más rápidas porque omiten los datos ya importados, por lo que la ejecución final no llevará demasiado tiempo.

1 me gusta

Bienvenido :wave:

Solo responderé a esto ya que no soy competente en los otros campos. Hablo sobre la transición fluida más adelante en mi publicación.

En cuanto a la personalización, puedes editar el CSS desde un editor incorporado, así como añadir Javascript y usar la API de JS específica de Discourse. Visualmente, si algo no te gusta, simplemente ocúltalo o cámbialo.

La guía oficial de temas está aquí: Developing Discourse Themes & Theme Components.

Es posible que no esté completamente actualizada, ya que actualmente estamos actualizando algunas cosas de JS a largo plazo.

Aproximadamente el 100% de los temas, componentes de temas y plugins publicados aquí son de código abierto, por lo que siempre puedes echar un vistazo a su código para crear tus propias soluciones.

Un tema es básicamente una apariencia con o sin funciones adicionales.
Un componente de tema generalmente agrega funciones.
Un plugin agrega funciones más profundas del lado del servidor.

Para mis propias comunidades, intento usar solo personalizaciones oficiales u otras de autores o empresas confiables y bien establecidas como pavilion. Y también personales, por supuesto, ya que puedo mantenerlas yo mismo.

Los temas y componentes de temas se pueden agregar y eliminar en tiempo de ejecución, mientras que la instalación y desinstalación de un plugin requiere una reconstrucción de la aplicación desde la línea de comandos (10-15 minutos de inactividad).


En cuanto a una transición fluida para una comunidad que alivie la confusión o el enfado de los usuarios, eso a veces es complicado. Obviamente, una puntuación de felicidad del 100% es casi imposible.
Además, algunas comunidades son definitivamente más conservadoras o ruidosas que otras y reaccionarán en consecuencia.

Desde la perspectiva del usuario, diría que las críticas más recurrentes que se han hecho son:

  • No más paginación
    Se reemplaza con una línea de tiempo interactiva. Ambas tienen sus pros y sus contras. Ocasionalmente he oído a gente que no se adapta a este cambio.
    Mi propia experiencia de 3 migraciones de foros pequeños y medianos es que nadie en mis comunidades tuvo una experiencia negativa con la línea de tiempo.

  • La interfaz es complicada
    La interfaz tiene más elementos que en el pasado, ya que se agregaron funciones con el tiempo. El menú de notificaciones ha crecido, se introdujo la barra lateral y se agregó una función de chat (que puede no ser necesaria si tienes un servidor de Discord).
    Somos muy conscientes de la complejidad de la interfaz y definitivamente nos gustaría tener partes más simplificadas.
    Definitivamente hay una curva de aprendizaje con Discourse. Si bien es un foro que tiene las mismas características que cualquier otro software de foro (publicar temas, publicar respuestas/MP, eso es todo…), diverge de aquí en términos de interfaz y funciones adicionales. Diría que la mayoría de la gente no tiene ningún problema particular con eso, pero la comunidad de este foro podría estar sesgada ya que la mayoría de la gente aquí conoce Discourse.
    Cuando te acostumbras a la interfaz, ya no ves ruido y te centras en las funciones que realmente utilizas, pero entiendo que esa no es exactamente tu preocupación aquí, ya que te centras en la migración/transición.

Hay dos herramientas incorporadas que ayudan a las personas a comprender la interfaz y las funciones.

  1. @discobot. Es un usuario bot interactivo con el que podemos interactuar y nos enseña a usar algunas funciones de discusión.

  2. Consejos para nuevos usuarios. Cuando te registras, aparecerán tooltips en la interfaz para explicar diferentes partes. Puedes deshabilitarlo en cualquier momento desde cualquier tooltip y volver a activarlo desde tus preferencias de usuario.

Desde la perspectiva del administrador, sería:

  • Hay demasiadas configuraciones
    Sí, hay muchas opciones en Discourse. Configurar cuidadosamente el foro llevará horas y probablemente requerirá ajustes hasta estar satisfecho. Lo bueno es que cuando se hace, rara vez vuelves a retocar la configuración.
    Sabemos que muchas configuraciones pueden ser intimidantes y a veces dificultan encontrar algo. Hay margen de mejora.

Finalmente, puedes usar el sandbox de usuario en try.discourse.org.
No hay sandbox para administradores. Cuando quiero experimentar con cosas a nivel de administrador, normalmente configuro un servidor Hetzner de bajas especificaciones (facturado por horas) en el que instalo Discourse durante unas horas o días.

3 Me gusta