Instalar Discourse en Debian, Ubuntu y derivados.
En el anterior articulo, vimos como instalar el sistema de foros «Discourse» en CentOS y derivados.
En este articulo aprenderemos a instalarlo en un servidor con Debian, Ubuntu y derivados, pero antes ampliamos algunas características:
- Es fácil de usar.
- Diseño móvil incorporado, ademas de aplicaciones para Android e iOS.
- Herramientas modernas para el manejo del foro, ademas cuenta con muchos complementos.
- Conversaciones públicas publicitarias privadas.
- Búsqueda de discusiones.
- Personalizable: HTML y CSS.
- Notificaciones y respuestas por correo electrónico.
- Diversos métodos de autenticación, como redes sociales, inicio de sesión único o oAuth 2.0.
- Emojis y distintivos.
- Se integra con WordPress, Google Analytics, Zendesk, Patreon, Slack, Matomo y más.
- Webhooks y API’s integrales basadas en JSON para una mayor integración.
- Permite votar por tus favoritos.
- Admite la asignación de temas.
- Actualización con un clic, con soporte rápido y preciso.
- etc…
Los requisitos para una correcta instalación, son:
- Servidor dedicado o en su defecto un VPS.
- Debian, Ubuntu (versión minimal) o cualquiera de sus derivados.
- Acceso a consola SSH.
Una cumplidos los requisitos comenzamos con la instalación.
Instalar Discourse en Debian y Ubuntu
wget -qO- https://get.docker.com/ | sh
sudo apt install git apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" sudo apt update sudo apt install docker-ce
Ya tenemos instalado el Docker, comprobamos su estado.
sudo systemctl status docker
Continuamos con la instalación de Discourse.
sudo mkdir /var/discourse sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse cd /var/discourse
Ejecutamos el instalador.
sudo ./discourse-setup
Comenzara a validar el sistema y te hará una serie de preguntas (datos del server, etc…) que deberás responder con datos reales, entonces automáticamente se creara el archivo de configuración «app.yml».
ejemplo…
Hostname for your Discourse? [discourse.example.com]: foro.miweb.com
Email address for admin account(s)? [admin@example.com]: admin@miweb.com
SMTP server address? [smtp.example.com]: smtp.miweb.com
SMTP port? [587]: 587
SMTP user name? [user@example.com]: admin@miweb.com
SMTP password? []: password
Let’s Encrypt account email? (ENTER to skip) [secur@example.com]:
Una vez que se genere el archivo de configuración, comenzara la descarga de la imagen de Discourse. Se paciente, dependiendo de la conexión de tu servidor online o local puede tardar más o menos.
No debes tocar nada durante el proceso, una vez concluido… Discourse ya estará en funcionamiento, lo podemos verificar con:
sudo docker container ls -a
Aunque ya lo tenemos en funcionamiento, deberíamos configurar correctamente el servidor web Nginx y el proxy inverso (el servidor web esta fuera del contenedor), de manera que podamos instalar y ejecutar otros sitios web o aplicaciones en el mismo servidor.
Si no es tu caso puedes obviar las siguientes instrucciones.
Detenemos el contenedor con el siguiente comando.
sudo ./launcher stop app
Modificamos el archivo de configuración «app.yml» para que no escuche el puerto 80.
sudo nano containers/app.yml
Debemos cambiar las templates, copia y pega lo siguiente…
templates: - "templates/cron.template.yml" - "templates/postgres.template.yml" - "templates/redis.template.yml" - "templates/sshd.template.yml" - "templates/web.template.yml" - "templates/web.ratelimited.template.yml" - "templates/web.socketed.template.yml"
Comenta los puertos en «expose».
Guarda el archivo y cierra el editor.
Continuamos…
sudo nano /etc/nginx/conf.d/discourse.conf
Agrega lo siguiente (con tus datos):
server { listen 80; server_name forum.miweb.com; location / { proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Guarda el archivo y cierra el editor.
Verifica su correcto funcionamiento e inicia Nginx de nuevo.
sudo nginx -t
sudo systemctl start nginx
Reconstruimos el contenedor para que se apliquen los cambios y reiniciamos de nuevo Nginx.
sudo ./launcher rebuild app sudo systemctl restart nginx
El tutorial «Como instalar Discourse en CentOS» concluye.
Ya lo tenemos instalado.
Accede con Url que definiste anteriormente desde tu navegador web preferido, y configuras el foro según tus preferencias.