¿Cómo instalar Discourse localmente?

Estoy evaluando Discourse como candidato para el foro de mi proyecto.
Me ha sorprendido un poco lo complicado que resulta ejecutar realmente la pila.

En GitHub hay esta guía de instalación: requiere un servidor SMTP y un dominio.

También vi otra guía que detalla la instalación de la pila directamente en el host. Preferiría confiar en Docker para configurar todas estas dependencias :slight_smile:
Lo que también me confundió es que la primera guía hace mucho hincapié en que necesito un servidor SMTP y DNS, mientras que esta no menciona nada de eso.

Me pareció que, dado que todo está empaquetado en contenedores Docker, debería poder ejecutar simplemente algún Docker Compose para tener los contenedores de Discourse y la base de datos (según veo, es PostgreSQL) en ejecución (y posiblemente otros contenedores, como caché, si Discourse lo requiere). Luego, en producción, probablemente lo alojaría en Kubernetes (parece no ser tan fácil, según he leído en algún hilo).

¿Me estoy perdiendo algo?

1 me gusta

y sin Docker (en caso de interés o si lo anterior te parece demasiado lento):

2 Me gusta

¿Deseas una instalación de desarrollo o una de producción? Si es la segunda, consulta Instalación estándar oficial de Discourse. Ejecutarlo en k8s es posible, pero no es sencillo, ya que necesitas usar ./launcher para construir el contenedor. Además, realizar una actualización completa sin tiempo de inactividad requiere varios pasos que no son inmediatamente obvios. Si quieres que sea fácil, simplemente crea una máquina virtual (un poco más sencillo si ejecuta Ubuntu o Debian).

Sí, necesitas poder enviar correos electrónicos para producción. Para desarrollo, por supuesto, no es necesario.

1 me gusta

@merefield Gracias por el enlace de Docker. Funciona y se parece bastante a lo que imaginaba que sería el proceso. Aunque es un poco extraño que todo esté empaquetado en un solo contenedor. Y sí, es lento.

Lo que me sorprendió es que, al hacer git clone de discourse y luego cd discourse, mi shell se vuelve realmente lenta; es la primera vez que veo algo así :slight_smile:. Este repositorio debe contener muchos archivos, o algo así, aunque no estoy seguro de por qué eso afectaría a mi shell.

@pfaffman También me gustaría probar la instalación más cercana a la de producción, para tener una idea de cómo es el proceso. No tengo problema con instalarlo en una máquina virtual. Sin embargo, ¿qué hay del servidor SMTP y del dominio? La guía es muy estricta al respecto y dice que DEBO tenerlos.

Y eso también estaría bien, pero es que no entiendo completamente algunas cosas:

  • ¿Por qué se necesita realmente el dominio? ¿Por qué localhost no es suficiente?
  • ¿El servidor de correo debe apuntar al mismo dominio que el que uso para Discourse?
  • La guía también habla de subdominios: ¿por qué un subdominio? Es decir, estoy configurando una máquina virtual en Azure y esta tiene un DNS asignado (como myvm.westeurope.cloudapp.azure.com); ¿no sería suficiente con ese dominio?
1 me gusta

Es para producción y requiere HTTPS, por lo que necesitas un nombre de dominio. El de Azure funcionará.

No es necesario que uses el mismo nombre de dominio para el servidor de correo que para el nombre del host. Hace un tiempo, modifiqué discourse-setup para que solicitara la dirección de correo electrónico de notificaciones.

Subdominio significa simplemente que no uses x.com, sino y.x.com. Es una práctica bastante establecida.

Hola Marcin,

Tengo la misma preocupación que tú respecto a los nombres de dominio para Discourse. ¿POR QUÉ LOCALHOST NO ES SUFICIENTE?

Acabo de instalar Discourse para que mi equipo lo use, pero no funciona sin DNS. Intentamos agregar un recurso DNS con localhost al archivo hosts de nuestro servidor para resolverlo, pero no tuvimos éxito.

¿Alguien ha intentado ejecutar Discourse sin un dominio público?

No. Si deseas ejecutar una instalación de desarrollo, no necesitas un nombre de host, pero solo funciona para localhost. Si quieres que tu equipo lo utilice, necesitas un nombre de host. Si tienes un equipo, seguro que tienes un nombre de dominio. Simplemente crea un subdominio de lo que use tu empresa, paga 12 dólares por un nombre de host o prueba la versión de prueba gratuita.

Bueno, para nosotros no queremos que el debate sea público; queremos un foro de discusión interno. Estoy de acuerdo con los demás: localhost falla, la instalación falla cuando solo estás intentando hacer una prueba. Es realmente desalentador, y los scripts extraños en lugar del comando bien conocido y estándar docker-compose up -d --build son, cuando menos, alarmantes. No sé si quiero usar este producto porque se toma demasiado en serio… o al menos alguien que escribió el lanzador sí.

1 me gusta

O quizás se escribió antes de que docker-compose fuera una utilidad viable, y aún funciona en miles de sitios; un cambio podría correr el riesgo de romperlos todos por un caso marginal.

Si el servidor tiene acceso al mundo exterior, no es tan difícil deshabilitar lo relacionado con HTTPS, aunque no lo he hecho en un buen tiempo.

1 me gusta

@pfaffman Eso es exactamente lo que sucedió cuando se lanzó docker-compose en 2015. Fue recibido con un escepticismo saludable.

Mi organización no tiene servidores públicos. ¿Puedo obtener Discourse, que, francamente, es la mejor solución disponible sin un .com?

Necesitas un nombre de dominio, pero no es necesario que esté en una dirección IP pública. Si tu servidor puede acceder a Internet (para descargar Discourse y sus componentes), puedes desactivar la configuración de Let’s Encrypt y debería funcionar. Creo que solo necesitas eliminar las plantillas de SSL y Let’s Encrypt en el archivo YAML, pero no podrás usar discourse-setup. Copia la muestra de instalación independiente y edítala manualmente.

Aún necesitas un servidor de correo.

Ojalá pudiera hacerlo fácilmente en Mac M1

2 Me gusta

Tengo Discourse ejecutándose en modo de desarrollo en mi M1 Pro localmente sin problemas.

3 Me gusta

Es necesario por varias razones. Aunque puedes obtener un dominio gratis en FreeNom, sin embargo, ha habido mucha controversia sobre cómo FreeNom maneja los datos y la información del usuario, así que ten cuidado si eliges esa ruta.

2 Me gusta