GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Discourse Forum con Nginx en Ubuntu 16.04

Discourse es un software gratuito y de código abierto para crear una comunidad de foros de Internet y una lista de correo. Fue creado en 2013 y escrito en los lenguajes de programación Ruby y Javascript. Muchas organizaciones han utilizado el software de foros de debate, incluidas Codeacademy, Udacity, Twitter Developers y Docker Community Forum.

En este tutorial, le mostraremos paso a paso cómo instalar y configurar Discourse Forum con el servidor web Nginx en Ubuntu 16.04. Específicamente, le mostraremos cómo instalar el software del foro de Discourse, configurar Nginx como el proxy inverso para la aplicación Discourse y proteger el software del foro de Discourse mediante SSL gratuito de Letsencrypt.

Lo que haremos

  1. Instalar Docker en Ubuntu 16.04
  2. Instalar y configurar el software Discourse Forum
  3. Generar SSL Letsencrypt en Ubuntu 16.04
  4. Instalar y configurar Nginx como proxy inverso para Discourse
  5. Instalador web de Discourse
  6. Configuración adicional del discurso

Requisitos

  • Ubuntu 16.04
  • Privilegios de raíz
  • Cuenta SMTP:Mailgun, SendGrid, Mailjet, etc.

Paso 1:instalar Docker en Ubuntu 16.04

El software Discourse está escrito en Ruby y Javascript, utilizando PostgreSQL como base de datos principal y Redis como caché y para datos transitorios. Instalaremos Discourse en el contenedor Docker.

El proceso de instalación se realizará sobre Ubuntu 16.04. Entonces, para empezar, instale Docker usando el siguiente comando.

wget -qO- https://get.docker.com/ | sh

Una vez completada la instalación, verifique el servicio docker y asegúrese de que ya se esté ejecutando en el sistema.

systemctl status docker

Y también asegúrese de que Docker esté en la aplicación de arranque de inicio.

systemctl is-enabled docker

Paso 2:instalar y configurar el foro de discurso

En este paso, instalaremos y configuraremos el software Discourse. Descargaremos el script de composición del docker del discurso, lo configuraremos de acuerdo con nuestros requisitos y luego crearemos un nuevo contenedor Docker para el software del foro del discurso.

Cree un nuevo directorio '/var/discourse' y clone la secuencia de comandos del instalador.

mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Ahora vaya al directorio 'discurso' y copie una muestra del archivo docker-compose.

cd /var/discourse
cp samples/standalone.yml containers/app.yml

Edite el archivo 'app.yml' usando el editor vim.

vim containers/app.yml

Configurar el mapeo de puertos Docker

De manera predeterminada, todas las solicitudes HTTP y HTTPS serán manejadas por el proxy de Docker. Y para esta guía, usaremos Nginx para este propósito:todo HTTP y HTTPS serán manejados por el servidor web de Nginx.

Por lo tanto, debemos cambiar la configuración de asignación de puertos de la ventana acoplable. El contenedor de Discourse solo tendrá la conexión HTTP y el host abrirá el nuevo puerto '2045' y se asignará al puerto del contenedor 80.

Descomente la línea HTTPS y cambie la línea HTTP con el nuevo puerto '2045'.

expose:
  - "2045:80"   # http
#  - "443:443" # https

Configuración del nombre de dominio de Discourse

Escriba su propio nombre de dominio para el discurso instalado en la línea 'DISCOURSE_HOSTNAME' como se muestra a continuación.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'

Y escriba su dirección de correo electrónico en la línea 'DISCOURSE_DEVELOPER_EMAIL'.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

Configuración SMTP

Esta es la configuración más importante para Discourse Software. Asegúrese de tener la cuenta SMTP para la instalación de Discourse; puede comprar o probar una cuenta SMTP de nivel gratuito de Mailgun, Mailjet o SendGrid.

En este tutorial, usaremos la cuenta SMTP de nivel gratuito de Mailgun. Descomente la configuración de SMTP y escriba su cuenta como se muestra a continuación.

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: [email protected]
  DISCOURSE_SMTP_PASSWORD: mypassword

Guardar y salir.

A continuación, cree una nueva imagen de Discourse Docker basada en la configuración de la plantilla app.yml.

sudo ./launcher bootstrap app

Después de eso, inicie/inicie el nuevo contenedor Discourse usando el siguiente comando.

sudo ./launcher start app

El contenedor de Discourse debería estar en funcionamiento; verifíquelo con el comando docker.

docker ps -a

Verifique el puerto abierto del host usando netstat y asegúrese de que el nuevo puerto proxy docker 2045 esté en la lista.

netstat -plntu

El software Discourse Forum se instaló en el contenedor docker en el host Ubuntu 16.04.

Paso 3:generar SSL Letsencrypt en Ubuntu 16.04

El foro de Discourse se ejecutará bajo la conexión segura HTTP y será manejado por el servidor web Nginx. Usaremos SSL gratuito de Letsencrypt para esta guía, y necesitamos instalar el cliente de letsencrypt en el servidor.

Instale letsencrypt con el siguiente comando apt.

sudo apt install letsencrypt -y

Ahora genere nuevos certificados SSL usando el comando letsencrypt.

letsencrypt certonly

Escriba su dirección de correo electrónico para renovar la notificación y seleccione 'Aceptar'.

Para los TOS (Términos de servicio) de Letsencrypt, elija 'Acepto'.

Ahora escriba su nombre de dominio de discurso 'discourse.hakase-labs.me'.

Y cuando esté completo, obtendrá el siguiente resultado

Se han generado nuevos certificados SSL de letsencrypt en el directorio '/etc/letsencrypt/live'.

Paso 4:instale y configure Nginx como proxy inverso para el contenedor de Discourse

En este paso, instalaremos el servidor web Nginx y lo configuraremos como proxy inverso para el contenedor Discourse que se ejecuta en el puerto 2045.

Instale Nginx con el siguiente comando apt.

sudo apt install nginx -y

Ahora inicie Nginx y permita que se inicie en el momento del arranque con el comando systemctl.

systemctl start nginx
systemctl enable nginx

Nginx se ha instalado y se está ejecutando en el puerto HTTP 80. Puede verificar esto usando netstat.

netstat -plntu

El servidor web Nginx se ha instalado en el servidor Ubuntu 16.04.

A continuación, debemos crear un nuevo archivo de host virtual para el contenedor Discourse. Vaya al directorio de configuración de nginx y cree un nuevo archivo de 'discurso' usando el editor vim.

cd /etc/nginx/
vim sites-available/discourse

Ahora, pegue la siguiente configuración de host virtual Discourse nginx.

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.me;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.me;

    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.me/privkey.pem;
    include /etc/nginx/snippets/ssl.conf;
 
    location / {
        proxy_pass http://discourse.hakase-labs.me:2045/;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect http://discourse.hakase-labs.me:2045/ https://discourse.hakase-labs.me;
    }
}

Guardar y salir.

Nota:

  • Todas las solicitudes HTTP se redirigirán automáticamente a la conexión HTTPS.
  • Cambie la configuración de SSL con su propio directorio de ruta.
  • Hay una configuración SSL adicional.

Ahora cree un nuevo archivo de configuración SSL adicional 'ssl.conf'.

vim snippets/ssl.conf

Pegue la siguiente configuración en el archivo.

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Guardar y salir.

Y ahora active el host virtual del discurso usando el comando 'ln -s', como se muestra a continuación.

ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/

Pruebe la configuración y asegúrese de que no haya ningún error, luego reinicie el servicio.

nginx -t
systemctl restart nginx

Se ha completado la instalación y configuración de Nginx como proxy inverso para el contenedor Discourse.

Paso 5:instalador web de Discourse

Abra su navegador web y visite la URL del discurso.

http://discourse.hakase-labs.me

Y será redirigido a la conexión segura HTTP. Haga clic en el botón 'Registrarse' para crear un nuevo usuario administrador.

Ahora escriba su usuario y contraseña de administrador y luego haga clic en 'Registrarse'.

Y recibirá un nuevo correo electrónico de confirmación sobre su activación de usuario administrador.

A continuación se muestra un mensaje de correo electrónico de muestra para la confirmación de la cuenta de Discourse. Haga clic en el enlace para confirmar y activar la cuenta de administrador.

Y debería obtener la página de discurso como se muestra a continuación. Haga clic en el botón 'Haga clic aquí para activar su cuenta'.

Ahora puede configurar su propio foro de Discourse. Haga clic en el botón 'Siguiente' y deberá configurar Discourse Forum con 13 pasos. O puede configurarlo más tarde haciendo clic en 'Quizás más tarde'.

A continuación se muestra el Discourse Forum instalado en el servidor web Nginx y HTTPS en Ubuntu 16.04.

El siguiente es mi panel de administración de Discourse.

Discourse Forum se instaló con Nginx como proxy inverso en el servidor Ubuntu 16.04.

Paso 6 - Configuración adicional del discurso

Al instalar Discourse, es posible que encuentre un problema en el que no reciba una confirmación por correo electrónico para la activación del usuario administrador.

Para solucionar el problema, asegúrese de tener la cuenta SMTP correcta en la aplicación de configuración.yml. O puede activar la cuenta de administrador manualmente desde su servidor.

Para activar su cuenta de administrador manualmente, vaya al directorio '/var/discourse'.

cd /var/discourse

Ahora acceda al contenedor de discursos con el siguiente comando.

./launcher enter app

Y active el primer usuario administrador usando el comando Rails como se muestra a continuación.

rieles c
u =Usuario.último
u.admin =verdadero
u.activar
u.guardar

Y ahora puede iniciar sesión en el foro de Discourse con su nombre de usuario y contraseña.

Referencias

  • https://meta.discourse.org/
  • https://github.com/discourse/discourse/tree/master/docs

Ubuntu
  1. Cómo instalar Docker en Ubuntu 22.04

  2. Cómo instalar WordPress con Nginx en Ubuntu 18.04

  3. Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04

  4. Cómo instalar Discourse Forum con Nginx en CentOS 7

  5. Cómo instalar Discourse en Ubuntu 20.04

Cómo instalar Discourse Forum con Docker en CentOS 8

Cómo instalar Nginx con ModSecurity en Ubuntu 15.04

Cómo instalar Sentry con Docker en Ubuntu 20.04

Cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx

Cómo instalar Mailtrain en Ubuntu 18.04 con Docker

Cómo instalar Talkyard Forum con Nginx en Ubuntu 18.04