¿Cómo puedo incluir Discourse en mi stack de desarrollo local?

Mi organización ejecuta una aplicación web y un foro, además de otras aplicaciones como Bitwarden. He containerizado todo para lograr paridad entre desarrollo y producción y una configuración de desarrollo sencilla usando Docker Compose. Utilizamos un archivo compose muy similar para ejecutarlo en producción y funciona muy bien para nuestro caso de uso básico.

Me gustaría migrar nuestro foro a Discourse, pero tengo dificultades para entender cómo mantener la paridad entre desarrollo y producción y una configuración de desarrollo sencilla.

La documentación sugiere que, aunque Discourse utiliza Docker para instalar y ejecutar, no encaja realmente en el paradigma de contenedores como otros contenedores de Docker: no puedes agregarlo a una pila de compose/swarm/kubernetes y ejecutarlo, conectándolo a contenedores de base de datos y Redis como harías con otro contenedor de aplicación. Además, se desalienta fuertemente el uso de soluciones o sugerencias alternativas para evitar dividir a la comunidad, así que no estoy aquí para cuestionar este enfoque.

He aceptado que, en lugar de ejecutar y gestionar Discourse como lo hago con el resto de mi pila, tendré que ejecutar una máquina virtual dedicada en producción y gestionarla de manera diferente. Pero me interesa saber cómo abordar mis objetivos subyacentes: una configuración de desarrollo sencilla que tenga una paridad decente con la producción.

Como contexto, mi configuración actual de desarrollo es “instalar Docker, clonar este repositorio y ejecutar docker-compose up”. Si he entendido correctamente según la guía de instalación local, ahora necesitaremos 9 dependencias del sistema (Ruby, PostgreSQL, etc.) antes de clonar y configurar manualmente Discourse en sí. En mi opinión, una de las ventajas de Docker (y Docker Compose) es que no necesitas tener cosas como PostgreSQL y Redis ejecutándose en tu sistema (y los problemas asociados con su configuración cuando los desarrolladores usan Windows); simplemente puedes ejecutar una pila y los procesos están aislados en contenedores desechables. ¿Existe alguna forma de mantener esa ventaja?

La otra desventaja es que, como somos un pequeño equipo de voluntarios, la mayoría de los demás desarrolladores usan Windows 10 Home, que, hasta donde sé, no soporta WSL, lo que significa que no podrán seguir las instrucciones de instalación para Windows de todos modos (Docker sí funciona en Windows 10 Home).

Bueno, la buena noticia es que, la mayoría de las veces, ¡no deberías tener que hacerlo!

A menos que estés desarrollando integraciones específicas para el foro o creando temas para el propio foro, el sitio de Discourse puede funcionar de forma independiente, fuera del resto de tu pila tecnológica.

Existen opciones para realizar una instalación de desarrollo basada en Docker en Linux y WSL; no recomendamos hacerlo en macOS debido a problemas de rendimiento del sistema de archivos.

1 me gusta

En realidad, es bastante crítico porque quiero usar Discourse como sistema de inicio de sesión para mis aplicaciones. Sin ello, los usuarios no podrán iniciar sesión localmente.

En ese caso, te recomendaría implementar SSO con un sitio de staging en vivo.

Configura una segunda copia de Discourse en un hosting similar, otorga permisos de administrador a todos y crea los secretos del proveedor de SSO para localhost:3000, localhost:4000, localhost:4001, *.cluster.local, etc., según sea necesario.

Cualquier miembro de tu equipo de desarrollo podrá generar cargas de autenticación desde este sitio, por lo que es importante documentarlo y utilizar tu sitio de producción real para la autenticación real.

2 Me gusta