GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar NodeBB Forum con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

NodeBB es un software de foro moderno impulsado por Node.js que utiliza MongoDB/Redis como plataformas de base de datos. Utiliza sockets web para interacciones instantáneas y notificaciones en tiempo real.

En este tutorial, aprenderemos cómo instalar el foro NodeBB en un servidor basado en Ubuntu 20.04.

Requisitos

  • Un servidor basado en Ubuntu 20.04 con un usuario no root que tenga privilegios sudo.

  • Mínimo 2 GB de RAM. Si su servidor tiene solo 1 GB de RAM, es mejor habilitar una partición de intercambio.

  • Asegúrate de que todo esté actualizado.

    $ sudo apt update && sudo apt upgrade
    
  • Pocos paquetes esenciales. Algunos de estos ya estarán en su servidor.

    $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
    

Paso 1:configurar el cortafuegos

El primer paso es configurar el cortafuegos. Ubuntu viene con ufw (cortafuegos sin complicaciones) de forma predeterminada.

Compruebe si el cortafuegos se está ejecutando.

$ sudo ufw status

Deberías obtener el siguiente resultado.

Status: inactive

Permita el puerto SSH para que el cortafuegos no interrumpa la conexión actual al habilitarlo.

$ sudo ufw allow OpenSSH

Permitir 27017 puerto para el servidor MongoDB y 4567 puerto para ejecutar el foro NodeBB. Permitir HTTP y HTTPS puertos también.

$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443

Habilite el cortafuegos.

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Vuelva a comprobar el estado del cortafuegos.

$ sudo ufw status

Debería ver un resultado similar.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
4567                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)
4567 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Paso 2:instalar Node.js

Instalaremos la versión LTS de Node.js aquí. Ejecute los siguientes comandos para instalar Node.js.

$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs

Compruebe si Node está correctamente instalado.

$ node --version

Debería ver un resultado similar.

v12.18.3

Compruebe también npm.

$ npm --version
6.14.6

Paso 3 - Instalar MongoDB

MongoDB es la base de datos predeterminada para NodeBB. También puede usar Redis en lugar de MongoDB. Cubriremos ambas bases de datos en nuestro tutorial.

El repositorio de MongoDB para Ubuntu 20.04 aún no está listo y Ubuntu tiene una versión muy antigua. Para nuestro propósito, usaremos el repositorio MongoDB para 18.04, que funciona bien. Puede actualizar la lista de paquetes con el repositorio más reciente una vez que esté disponible el soporte oficial.

Importe la clave pública para MongoDB.

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

Añadir repositorio MongoDB.

$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

Actualice la base de datos de paquetes local.

$ sudo apt update

Instale MongoDB.

$ sudo apt install mongodb-org

Verifique la instalación de MongoDB.

$ mongod --version
db version v4.2.8
...

Inicie el servicio MongoDB.

$ sudo systemctl start mongod

Habilite el servicio MongoDB.

$ sudo systemctl enable mongod

Verifique el estado del servicio MongoDB.

$ sudo systemctl status mongod

Paso 4 - Configuración de MongoDB

La administración de Mongo se realiza a través del shell de MongoDB. La instalación predeterminada de MongoDB escucha en el puerto 27017.

Acceda al shell de MongoDB.

$ mongo

Cambiar al admin incorporado base de datos.

> use admin

Cree un usuario administrativo. No es lo mismo que el usuario administrador de NodeBB.

> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )

Cambia el marcador de posición “yourpassword” a su propia contraseña.

Agregue una nueva base de datos para NodeBB.

> use nodebb

A continuación, cree el nodebb usuario para administrar el nodebb base de datos.

> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

El readwrite El permiso permite que NodeBB almacene y recupere datos de nodebb base de datos. El clustermonitor El permiso permite a NodeBB acceso de solo lectura a las estadísticas de la base de datos que son visibles a través de su panel de administración.

Salga del shell de Mongo.

> quit()

Abra el archivo de configuración de MongoDB para editarlo.

$ sudo nano /etc/mongod.conf

Agregue la siguiente línea al final del archivo.

security:
  authorization: enabled

Reinicie MongoDB y verifique el usuario administrativo creado anteriormente.

$ sudo systemctl restart mongod
$ mongo -u admin -p yourpassword --authenticationDatabase=admin

Debería ver el aviso de Mongo si todo se configuró correctamente.

Paso 5:instalar Git

Antes de proceder a instalar NodeBB, necesitamos instalar Git.

Ejecute el siguiente comando para instalar Git.

$ sudo apt install git

Ejecute los siguientes comandos para realizar la configuración inicial de Git.

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Paso 6:Instalar NodeBB

No es recomendable ejecutar NodeBB como usuario root.

Cree un usuario sin privilegios.

$ sudo adduser nodebb

Establezca una contraseña de su elección y pase por otras opciones.

Cree el directorio donde vivirá su foro NodeBB.

$ sudo mkdir /var/www/nodebb

Cambie la propiedad de la carpeta al usuario recién creado.

$ sudo chown -R nodebb:nodebb /var/www/nodebb

Inicie sesión en el usuario recién creado.

$ su nodebb

Cambie al directorio de instalación de NodeBB.

$ cd /var/www/nodebb

Para instalar NodeBB, primero necesitamos clonar su repositorio Github.

Clone NodeBB al /var/www/nodebb directorio. El punto al final del comando se refiere al directorio actual.

$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .

Aquí hemos clonado la v1.14.2 de NodeBB, que era la última versión estable al momento de escribir el tutorial. Puede encontrar la rama estable más reciente en la página Última versión de NodeBB.

NodeBB se envía con una utilidad de línea de comandos. Use el siguiente comando para instalar NodeBB.

$ ./nodebb setup

Puede pulsar Intro para elegir el valor predeterminado.

Por el valor de URL utilizada para acceder a este NodeBB elija la URL final en la que desea acceder al foro. Si accederá al foro a través de la IP de su servidor, ingréselo o ingrese el dominio completo del foro. Aquí ingresaremos http://forum.example.com .

Siga eligiendo valores predeterminados hasta que se le solicite nombre de usuario de MongoDB que es cuando ingresas a nodebb y la contraseña que eligió anteriormente para ese nombre de usuario al configurar MongoDB. Tu base de datos nodebb debe ser elegido. También se le pedirá que cree un usuario administrador y sus detalles.

Una vez completada la configuración, ejecute el siguiente comando para iniciar NodeBB.

$ ./nodebb start

Su foro ahora está funcionando. Debería poder acceder a él a través de http://<yourserverip>:4567 .

Es posible que vea un mensaje de error que dice Parece que se perdió su conexión con NodeBB, espere mientras intentamos volver a conectarnos. Aparece porque elegimos la URL predeterminada para NodeBB http://forum.example.com y no http://<yourserverip . Pero si ingresa la dirección IP durante la configuración, ya no recibirá el error, pero deberá volver a configurarla más tarde después de elegir un dominio para su foro.

Salga del usuario de NodeBB.

$ exit

Paso 7:instalar Nginx

Ubuntu 20.04 por defecto lleva la última versión estable de Nginx. Lo instalaremos.

$ sudo apt install nginx

Compruebe si está instalado correctamente.

$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

Inicie y habilite Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Abra la dirección IP de su servidor en su navegador web. Debería ver la siguiente página, lo que significa que su servidor está en funcionamiento.

Paso 8:configurar Nginx

Ejecute el siguiente comando para agregar un archivo de configuración para su sitio.

$ sudo nano /etc/nginx/sites-available/nodebb.conf

Pegue el siguiente código en el editor.

server {
    listen 80;

    server_name forum.example.com;
    
    access_log /var/log/nginx/forum.example.com.access.log;
    error_log /var/log/nginx/forum.example.com.error.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:4567;
        proxy_redirect off;

        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Presiona Ctrl + X para salir del editor e ingresar Y cuando se le solicite.

Una vez que haya terminado, verifique que la configuración de Nginx sea correcta.

$ sudo nginx -t

Vuelva a cargar el servicio Nginx para habilitar la configuración.

$ sudo systemctl reload nginx

Visita http://forum.example.com en su navegador para abrir el foro de NodeBB.

Paso 9:Ejecute NodeBB como servicio del sistema

El servicio NodeBB no se ejecutará después de reiniciar el sistema. Para evitar iniciar NodeBB cada vez, debemos instalarlo como un servicio del sistema.

Primero detenga el servicio de NodeBB.

$ ./nodebb stop

Ejecute el siguiente comando para crear y editar nodebb.service archivo de configuración de la unidad systemd.

$ sudo nano /etc/systemd/system/nodebb.service

Pegue el siguiente código en el editor.

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

Aquí hemos elegido el nombre de usuario como nodebb que creamos en el Paso 6 y la ruta que elegimos para instalar NodeBB en él.

Habilite el servicio NodeBB.

$ sudo systemctl enable nodebb

Inicie el servicio NodeBB.

$ sudo systemctl start nodebb

Consulta el estado del servicio.

$ sudo systemctl status nodebb

Paso 10:obtener un certificado SSL de Let's Encrypt

Asegurar su foro NodeBB con HTTPS es un paso necesario para asegurar el tráfico de su sitio. Para este tutorial, usaremos el cliente Certbot para instalar SSL.

Para eso primero, instale la herramienta Certbot.

$ sudo apt install certbot python3-certbot-nginx

Generar los certificados.

$ sudo certbot --nginx -d forum.example.com

Si es la primera vez que ejecuta Certbot en su sistema, se le pedirá una dirección de correo electrónico y que acepte los términos del servicio. También se le preguntará si acepta compartir datos con la fundación EFF a lo que puede negarse. Después de hacerlo, Certbot se comunicará con los servidores de Let's Encrypt y ejecutará un desafío para verificar sus dominios.

Si tiene éxito, se le preguntará cómo manejar los redireccionamientos HTTPS.

Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Selecciona Secure elección y presione enter. Esto garantizará que todas las solicitudes al dominio http se redireccionen correctamente a la versión https. A continuación, se crearán sus certificados y sus archivos de configuración de Nginx se actualizarán con la configuración de SSL.

Sus certificados están listos y puede abrir su sitio ahora yendo a https://forum.example.com

Paso 11:verificar la renovación automática de SSL

Este es el último paso antes de finalizar este tutorial.

Verifique el proceso de renovación haciendo un simulacro del proceso de renovación.

$ sudo certbot renew --dry-run

Si no obtiene errores, significa que está configurado. Certbot renovará automáticamente sus certificados por usted. Se le enviará un correo electrónico advirtiéndole sobre la caducidad del certificado.

Conclusión

Eso es todo en este tutorial. La configuración de su foro NodeBB está completa. Si tiene alguna pregunta, publíquela en los comentarios a continuación.


Ubuntu
  1. Asegure Nginx con Lets Encrypt en Ubuntu 20.04

  2. Cómo instalar Nextcloud con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  3. Cómo instalar Magento 2 con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  4. Cómo instalar Shopware con NGINX y Lets encrypt en Ubuntu 18.04 LTS

  5. Instale Automad CMS con Nginx y Lets Encrypt SSL en Ubuntu 18.04

Cómo instalar MediaWiki con Nginx y Lets Encrypt SSL en Ubuntu 20.04

Cómo instalar Gitea con Nginx y Lets Encrypt SSL gratis en Ubuntu 20.04

Cómo instalar Let's Encrypt SSL con Nginx en Ubuntu 16.04 LTS

Cómo instalar Let's Encrypt SSL para Nginx en Ubuntu 18.04 LTS

Cómo instalar Nginx con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Apache con Let's Encrypt SSL en Ubuntu 20.04 LTS