NodeBB instalación · 10 min read · Oct 19, 2025

Cómo instalar el foro NodeBB con Nginx y SSL de Let's Encrypt 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 a instalar el foro NodeBB en un servidor basado en Ubuntu 20.04.

Prerrequisitos

  • Un servidor basado en Ubuntu 20.04 con un usuario no root que tenga privilegios de sudo.
  • Mínimo 2GB de RAM. Si tu servidor solo tiene 1GB de RAM, es mejor habilitar una partición de intercambio.
  • Asegúrate de que todo esté actualizado. shell $ sudo apt update && sudo apt upgrade
  • Algunos paquetes esenciales. Algunos de estos ya estarán en tu servidor. shell $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release

Paso 1 - Configurar el Firewall

El primer paso es configurar el firewall. Ubuntu viene con ufw (Uncomplicated Firewall) por defecto.

Verifica si el firewall está en funcionamiento.

$ sudo ufw status

Deberías obtener la siguiente salida.

Status: inactive

Permite el puerto SSH para que el firewall no interrumpa la conexión actual al habilitarlo.

$ sudo ufw allow OpenSSH

Permite el puerto 27017 para el servidor MongoDB y el puerto 4567 para ejecutar el foro NodeBB. También permite los puertos HTTP y HTTPS.

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

Habilita el Firewall.

$ sudo ufw enable
El comando puede interrumpir las conexiones ssh existentes. ¿Proceder con la operación (y|n)? y
El firewall está activo y habilitado al inicio del sistema

Verifica el estado del firewall nuevamente.

$ sudo ufw status

Deberías ver una salida 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í. Ejecuta los siguientes comandos para instalar Node.js.

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

Verifica si Node está correctamente instalado.

$ node --version

Deberías ver una salida similar.

v12.18.3

Verifica npm también.

$ npm --version
6.14.6

Paso 3 - Instalar MongoDB

MongoDB es la base de datos predeterminada para NodeBB. También puedes 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 en sí lleva una versión muy antigua. Para nuestro propósito, utilizaremos el repositorio de MongoDB para 18.04 que funciona perfectamente. Puedes actualizar la lista de paquetes con el último repositorio una vez que el soporte oficial esté disponible.

Importa la clave pública para MongoDB.

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

Agrega el repositorio de 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

Actualiza la base de datos de paquetes local.

$ sudo apt update

Instala MongoDB.

$ sudo apt install mongodb-org

Verifica la instalación de MongoDB.

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

Inicia el servicio de MongoDB.

$ sudo systemctl start mongod

Habilita el servicio de MongoDB.

$ sudo systemctl enable mongod

Verifica el estado del servicio de MongoDB.

$ sudo systemctl status mongod

Paso 4 - Configurando MongoDB

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

Accede a la shell de MongoDB.

$ mongo

Cambia a la base de datos admin incorporada.

> use admin

Crea un usuario administrativo. Este no es el mismo que el usuario administrador de NodeBB.

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

Cambia el marcador de posición “tucontraseña” por tu propia contraseña.

Agrega una nueva base de datos para NodeBB.

> use nodebb

A continuación, crea el usuario nodebb para gestionar la base de datos nodebb.

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

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

Sal de la shell de Mongo.

> quit()

Abre el archivo de configuración de MongoDB para editar.

$ sudo nano /etc/mongod.conf

Agrega la siguiente línea al final del archivo.

security:
  authorization: enabled

Reinicia MongoDB y verifica el usuario administrativo creado anteriormente.

$ sudo systemctl restart mongod
$ mongo -u admin -p tucontraseña --authenticationDatabase=admin

Deberías ver el aviso de Mongo si todo fue configurado correctamente.

Paso 5 - Instalar Git

Antes de proceder a instalar NodeBB, necesitamos instalar Git.

Ejecuta el siguiente comando para instalar Git.

$ sudo apt install git

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

$ git config --global user.name "Tu Nombre"
$ git config --global user.email "[email protected]"

Paso 6 - Instalar NodeBB

No es recomendable ejecutar NodeBB como usuario root.

Crea un usuario sin privilegios.

$ sudo adduser nodebb

Establece una contraseña de tu elección y omite las otras opciones.

Crea el directorio donde vivirá tu foro NodeBB.

$ sudo mkdir /var/www/nodebb

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

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

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

$ su nodebb

Cambia al directorio de instalación de NodeBB.

$ cd /var/www/nodebb

Para instalar NodeBB, primero necesitamos clonar su repositorio de Github.

Clona NodeBB en el directorio /var/www/nodebb. 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 en el momento de escribir el tutorial. Puedes encontrar la última rama estable en la página de Últimas versiones de NodeBB.

NodeBB viene con una utilidad de línea de comandos. Usa el siguiente comando para instalar NodeBB.

$ ./nodebb setup

Puedes presionar enter para elegir el valor predeterminado.

Para el valor de URL utilizada para acceder a este NodeBB, elige la URL final a la que deseas acceder al foro. Si accederás al foro a través de la IP de tu servidor, ingresa eso o ingresa el dominio completo del foro. Aquí ingresaremos http://forum.example.com.

Sigue eligiendo valores predeterminados hasta que se te pida el nombre de usuario de MongoDB, que es cuando ingresas nodebb y la contraseña que elegiste anteriormente para ese nombre de usuario al configurar MongoDB. Tu base de datos nodebb debería ser elegida. También se te pedirá que crees un usuario administrador y sus detalles.

Una vez que la configuración esté completa, ejecuta el siguiente comando para iniciar NodeBB.

$ ./nodebb start

Tu foro ahora está en funcionamiento. Deberías poder acceder a él a través de http://:4567.

Página de inicio predeterminada de NodeBB

Es posible que veas un mensaje de error que dice Parece que se perdió la conexión con NodeBB, por favor espera mientras intentamos reconectar. Esto aparece porque elegimos la URL predeterminada para NodeBB http://forum.example.com y no http://. Pero si ingresas la dirección IP durante la configuración, ya no recibirás el error, pero necesitarás configurar nuevamente después de elegir un dominio para tu foro.

Sal del usuario NodeBB.

$ exit

Paso 7 - Instalar Nginx

Ubuntu 20.04 por defecto lleva la última versión estable de Nginx. Vamos a instalar eso.

$ sudo apt install nginx

Verifica si está instalado correctamente.

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

Inicia y habilita Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

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

Página predeterminada de Nginx

Paso 8 - Configurar Nginx

Ejecuta el siguiente comando para agregar un archivo de configuración para tu sitio.

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

Pega 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;

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

Presiona Ctrl + X para salir del editor y presiona Y cuando se te pida.

Una vez que hayas terminado, verifica que la configuración de Nginx sea correcta.

$ sudo nginx -t

Recarga el servicio de Nginx para habilitar la configuración.

$ sudo systemctl reload nginx

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

Página de inicio del foro NodeBB

Paso 9 - Ejecutar NodeBB como un servicio del sistema

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

Detén el servicio NodeBB primero.

$ ./nodebb stop

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

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

Pega 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.

Habilita el servicio NodeBB.

$ sudo systemctl enable nodebb

Inicia el servicio NodeBB.

$ sudo systemctl start nodebb

Verifica el estado del servicio.

$ sudo systemctl status nodebb

Paso 10 - Obtener un certificado SSL de Let’s Encrypt

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

Para eso, primero, instala la herramienta Certbot.

$ sudo apt install certbot python3-certbot-nginx

Genera los certificados.

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

Si es la primera vez que ejecutas Certbot en tu sistema, se te pedirá una dirección de correo electrónico y que aceptes los términos del servicio. También se te preguntará si aceptas compartir datos con la fundación EFF, a lo que puedes decir que no. Después de hacer esto, Certbot se comunicará con los servidores de Let’s Encrypt y ejecutará un desafío para verificar tus dominios.

Si eso es exitoso, se te preguntará cómo manejar las redirecciones HTTPS.

Por favor elige si el acceso HTTPS es requerido u opcional.
-------------------------------------------------------------------------------
1: Fácil - Permitir tanto el acceso HTTP como HTTPS a estos sitios
2: Seguro - Hacer que todas las solicitudes se redirijan a un acceso HTTPS seguro
-------------------------------------------------------------------------------
Selecciona el número apropiado [1-2] y luego [enter] (presiona 'c' para cancelar):

Selecciona la opción Seguro y presiona enter. Esto asegurará que todas las solicitudes al dominio http se redirijan correctamente a la versión https. Tus certificados serán creados y tus archivos de configuración de Nginx se actualizarán con configuraciones SSL.

Tus certificados están listos y ahora puedes abrir tu sitio yendo a https://forum.example.com

Paso 11 - Verificar la renovación automática de SSL

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

Verifica el proceso de renovación haciendo una prueba del proceso de renovación.

$ sudo certbot renew --dry-run

Si no obtienes errores, significa que estás listo. Certbot renovará automáticamente tus certificados. Se te enviará un correo electrónico advirtiéndote sobre la expiración del certificado.

Conclusión

Eso es todo para este tutorial. Tu configuración del foro NodeBB está completa. Si tienes alguna pregunta, publícalas en los comentarios a continuación.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.