Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo instalar Discourse en Debian Jessie usando Docker

Imago voragine.net

Discourse es un software de foros de segunda generación. Discourse se diferencia de los foros de primera generación en que:

  • Incorpora rigurosamente la idea de archivo: los hilos se pueden clasificar y archivar; el sistema de búsqueda es excelente y los hilos se indexan correctamente en buscadores.
  • Refuerzan la idea de comunidad en torno al foro mediante un sistema de badges. Los badge reflejan la implicación de un usuario pero también sus capacidades: cuanta más implicación, más cosas puede hacer un usuario y más ayudará a mantener la comunidad.
  • Mejora sensiblemente la experiencia de usuario: guarda el punto de lectura de cada hilo, permite edición de texto markdown/WYSIWYG simultáneamente, incrusta contenido automáticamente a partir de URL usando oEmbed y OpenGraph, editor de texto que permanece en pantalla mientras navegamos por los hilos del foro.
  • Consume recursos de hardware de manera voraz.
  • No es sólo un foro. Incorpora lista de correo, mensajes privados entre usuarios, sistema de edición wiki para determinados contenidos, integración con el sistema de comentarios de uno o varios blogs.

Discourse es un sistema potente pero pesado: es un carro de artillería. Merece la pena leer un poco antes de instalarlo para saber si le conviene a uno.

Requisitos del entorno de instalación

Discourse consume bastante recursos de hardware: necesita al menos 1GB de RAM.

Necesita tener acceso a un servicio de envío de correo. Si la maquina que se vaya a usar no tiene un servidor de correo instalado una solución rápida y fácil es usar sSMTP para enviar el correo a un mail relay que lo enviará a su destinatario final.

La instalación manual de Discourse no es trivial. Lo más sencillo es instalarlo usando Docker. Previamente hay que instalar Docker.

En algunos casos hace falta hacer una modificación en la configuración de Docker para asegurar su conexión a internet y la descarga del contenedor Discourse. Para ello se puede añadir la siguiente línea al archivo /etc/defaults/docker:

Y luego reiniciar Docker:

También es necesario tener instalado git en el sistema.

Proceso de instalación de Discourse

Descarga de Discourse

Para instalar Discourse usando un contenedor Docker, hay que descargar el contenedor y preparar el lugar donde lo alojaremos:

Configuración de Discourse

Posteriormente, hay que definir los parámetros de nuestra instalación:

Y editamos el archivo de configuración app.yml. Cada opción de configuración del archivo está bien comentada. Hay que configurar el dominio y el correo del administrador:

Hay que configurar el envío de correo. Suponiendo que el sistema funcione con sSMTP, hay que incluir los datos del mail relay. Por ejemplo, se puede usar GMail:

Por último, para un sistema Debian Jessie con 1GB de RAM optimizamos la instalación para que no tumbe el servidor. Indicamos que no utilice más del 25% de RAM y no haya más de dos conexiones simultáneas:

Iniciar Discourse

Este comando compila el contenedor de Discourse con las opciones que hemos configurado y si todo va bien iniciará el contenedor.

Para acceder a Discourse basta visitar la URL que se haya definido con la variable DISCOURSE_HOSTNAME en app.yml.

Reconfigurando Discourse

Si se cambia cualquier opción en el archivo app.yml hay que recompilar el contenedor para que tenga efecto la nueva configuración:

El comando launcher permite las siguientes acciones:

Instalar Discourse en un servidor Apache con otros sitios web

En este escenario hay que configurar Discourse como virtual host de Apache, y configurar ese virtual host para que escuche al contenedor Docker de Discourse en un puerto diferente al 80 mediante un proxy. Así se evita el conflicto de que Apache y Docker intenten usar el mismo puerto.

Configuración adicional de Discourse

En el archivo app.yml cambiamos el puerto, por ejemplo al 85.

Creación del virtual host para Discourse y configuración de Apache

Creamos un virtual host con las siguientes características:

Hay que habilitar los módulos proxy y proxy_http y reiniciar Apache:

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks