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]: vyom@123 Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]: [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:
Haz clic en el botón de Registro. Deberías ver la siguiente página:
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:
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.