Cómo instalar el foro Discourse con Docker en CentOS 8

Discourse es una plataforma gratuita y de código abierto construida para la próxima década de Internet. Es un moderno software de foro que puede utilizarse como lista de correo, foro de discusión, sala de chat de larga duración y mucho más. Utiliza Ruby on Rails para el backend, Ember.js para el frontend, PostgreSQL como almacén de datos y Redis como servidor de caché. Es sencillo, eficiente, apto para móviles, personalizable, y hace que la discusión en línea sea fácil y divertida.

En este tutorial, te mostraremos cómo instalar el foro Discourse utilizando Docker en un servidor CentOS 8.

Requisitos previos

  • Un servidor con CentOS 8.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada el servidor.

Instalar Docker

En primer lugar, tendrás que instalar Docker en tu servidor. Por defecto, Docker no está disponible en el repositorio estándar de CentOS 8. Así que tendrás que añadir el repo oficial de Docker a tu sistema. Puedes añadirlo con el siguiente comando:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Una vez creado el repo, instala Docker ejecutando el siguiente comando:

dnf install docker-ce --nobest

Después de instalar Docker, inicia el servicio Docker y permite que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start docker
systemctl enable docker

Ahora puedes verificar la versión de Docker con el siguiente comando:

docker --version

Deberías ver la siguiente salida:

Docker version 20.10.1, build 831ebea

Instalar Discourse

Primero, crea un directorio para Discourse con el siguiente comando:

mkdir /opt/discourse

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

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

A continuación, cambia el directorio a Discourse e instala Discourse con el siguiente comando:

cd /opt/discourse
./discourse-setup

Se te pedirá que proporciones tu FQDN como se muestra a continuación:

which: no docker.io in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
which: no docker.io in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
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.example.com]: discourse.linuxbuz.com

Proporciona tu nombre de dominio válido y pulsa Intro. Se te pedirá que proporciones tu dirección de correo electrónico válida y tu contraseña:

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]: yourpassword
Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]: [email protected]

Does this look right?

Proporciona todos los datos y pulsa Intro. Tendrás que verificar toda la configuración como se muestra a continuación:

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

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

Si todo está bien, pulsa Intro para iniciar la instalación. Una vez completada la instalación, deberías obtener el siguiente resultado:

+ /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=yourpassword -e [email protected] -h centos8-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:e0:37:60:d3:09 local_discourse/app /sbin/boot
ab3bdf3c169d47d9ff06052f48ff078d46393f1152b651b9fd3354594cc38714

Ahora puedes verificar el contenedor de Discourse en ejecución con el siguiente comando:

docker ps

Deberías ver la siguiente salida:

CONTAINER ID   IMAGE                 COMMAND        CREATED          STATUS          PORTS                                      NAMES
ab3bdf3c169d   local_discourse/app   "/sbin/boot"   22 seconds ago   Up 21 seconds   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app

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 pantalla de configuración de Discourse:

Instalación del discurso con éxito

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

Registrar cuenta de administrador

Proporciona tu correo electrónico, nombre de usuario y contraseña y haz clic en el botón Registrar. Deberías recibir un correo electrónico para activar tu cuenta.

Confirmar correo electrónico

Conclusión

Enhorabuena! has instalado con éxito el software de foro Discourse en CentOS 8. Ahora puedes explorar Discourse para obtener más funciones y desplegarlo en el entorno de producción. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...