Cómo instalar el foro Discourse en Ubuntu 20.04 LTS

Discourse es una plataforma de discusión gratuita y de código abierto diseñada para crear foros de discusión y listas de correo comunitarias para tu equipo. Está escrita en Ember.js y Ruby on Rails, y utiliza PostgreSQL como base de datos. Es una moderna solución de foros que potencia los debates en miles de sitios para impulsar la participación de los usuarios. Puedes crear preguntas e ideas personalizadas, e integrarlo con servicios populares.

Discourse ofrece un amplio conjunto de funciones, como el bloqueo de spam, las notificaciones dinámicas, el inicio de sesión social, la autenticación de dos factores, la completa API, la potente moderación, el diseño móvil incorporado y muchas más.

En este tutorial, aprenderemos a instalar el foro Discourse con Docker en Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Un nombre de dominio válido apuntado con tu servidor.
  • Un servidor de correo SMTP. Si no tienes un servidor de correo, puedes utilizar el servidor SMTP de Gmail.
  • Una contraseña de root configurada en tu servidor.

Instalar Docker

En primer lugar, tendrás que instalar Docker en tu sistema. Por defecto, la última versión de Docker está disponible en el repositorio por defecto de Ubuntu 20.04. Puedes instalarlo ejecutando el siguiente comando:

apt-get install docker.io -y

Una vez instalado Docker, inicia el servicio Docker y habilítalo para que se inicie al reiniciar con el siguiente comando:

systemctl start docker
systemctl enable docker

Una vez que hayas terminado, puedes pasar al siguiente paso.

Descarga Discourse

Antes de empezar, crea un directorio para Discourse. Puedes crearlo con el siguiente comando:

mkdir /opt/discourse

A continuación, descarga la última versión de Discourse desde el repositorio Git Hub con el siguiente comando:

git clone https://github.com/discourse/discourse_docker.git /opt/discourse

A continuación, instala también el paquete net-tools en tu sistema. Puedes instalarlo con el siguiente comando:

apt-get install net-tools -y

Una vez completada la instalación, puedes pasar al siguiente paso.

Instalar y configurar Discourse

Ahora, cambia el directorio a /opt/discourse y ejecuta el script de configuración de Discourse con el siguiente comando:

cd /opt/discourse
./discourse-setup

Se te pedirá que proporciones el nombre de host de tu sistema como se muestra a continuación:

Ports 80 and 443 are free for use
'samples/standalone.yml' -> 'containers/app.yml'
Found 4GB of memory and 2 physical CPU cores
setting db_shared_buffers = 1024MB
setting UNICORN_WORKERS = 4
containers/app.yml memory parameters updated.

Hostname for your Discourse? [discourse.linuxbuz.com]: discourse.linuxbuz.com

Proporciona tu nombre de dominio completo válido y pulsa Intro. Se te pedirá que proporciones una dirección de correo electrónico para la cuenta de administrador, el servidor SMTP, el nombre de usuario SMTP, la contraseña SMTP y la dirección de correo electrónico para Let’s Encrypt, como se muestra a continuación:

Checking your domain name . . .
Connection to discourse.linuxbuz.com succeeded.
Email address for admin account(s)? [[email protected],[email protected]]: [email protected]
SMTP server address? [smtp.example.com]: smtp.gmail.com
SMTP port? [587]: 
SMTP user name? [[email protected]]: [email protected]
SMTP password? [pa$$word]: [email protected]
Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]: hitjet[email protected]

Proporciona todos los datos y pulsa Intro. Deberías ver el siguiente resultado:

Does this look right?

Hostname      : discourse.linuxbuz.com
Email         : [email protected]
SMTP address  : smtp.gmail.com
SMTP port     : 587
SMTP username : [email protected]
SMTP password : asdfgsd
Let's Encrypt : [email protected]

ENTER to continue, 'n' to try again, Ctrl+C to exit: 

Pulsa Intro para iniciar la instalación. Una vez completada la instalación, deberías ver la siguiente salida:

Enabling Let's Encrypt
web.ssl.template.yml enabled
letsencrypt.ssl.template.yml enabled

Configuration file at  updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=discourse.linuxbuz.com -e [email protected] -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e [email protected] -e DISCOURSE_SMTP_PASSWORD=asdfgsd -e [email protected] -h ubuntu2004-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:43:15:82:15:a7 local_discourse/app /sbin/boot
7e303b07344c3643846a03d5c2f758ec67a6aa94b2a6a399bcb2766ccd02b3c2

El script de instalación anterior generará un archivo de configuración llamado app.yml dentro del directorio discourse/containers. Si quieres hacer algún cambio de configuración, sólo tienes que editar tu archivo /opt/discourse/containers/app.yml y ejecutar ./launcher rebuild app para aplicar los cambios.

Accede a la interfaz web de Discourse

Ahora, abre tu navegador web y escribe la URL https://discourse.linuxbuz.com. Serás redirigido a la página de registro de Discourse:

Discurso instalado

Haz clic en el botón de Registro. Deberías ver la siguiente página:

Obtener una cuenta de Discourse

Proporciona el nombre de usuario y la contraseña de tu cuenta de administrador y haz clic en el botón Registrar. Deberías ver la siguiente página:

Confirmar correo electrónico

Deberías recibir un correo electrónico para activar tu cuenta.

Conclusión

Enhorabuena! has instalado con éxito el foro Discourse con Docker en el servidor Ubuntu 20.04. Espero que ahora puedas desplegar fácilmente tu propio foro de discusión online con Discourse. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...