NodeBB instalación · 8 min read · Sep 09, 2025

Cómo instalar NodeBB con MongoDB y Nginx Proxy en AlmaLinux 9

NodeBB es un software de foro de código abierto basado en Node.js que proporciona una solución moderna y receptiva para comunidades en línea. Ejecutándose en Ubuntu Linux, NodeBB aprovecha la robustez y flexibilidad del sistema operativo para ofrecer un alto rendimiento y escalabilidad. Utiliza una combinación de MongoDB y Redis para la gestión de bases de datos, lo que le permite manejar grandes volúmenes de contenido generado por los usuarios de manera eficiente.

NodeBB es conocido por sus notificaciones en tiempo real, integración fluida con varias plataformas de redes sociales y un extenso ecosistema de complementos, lo que permite a los administradores personalizar sus foros para satisfacer necesidades específicas. Además, su diseño móvil primero garantiza una experiencia de usuario consistente y atractiva en todos los dispositivos. La estabilidad y las características de seguridad de Ubuntu complementan a NodeBB, lo que lo convierte en una opción ideal para alojar y gestionar comunidades en línea dinámicas.

Esta guía proporcionará instrucciones paso a paso para instalar NodeBB en un servidor Alma Linux 9. Utilizarás MongoDB como base de datos, Nginx como proxy inverso y luego asegurarás NodeBB con HTTPS a través de Certbot y Letsencrypt.

Requisitos previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un servidor Alma Linux 9
  • Un usuario no root con privilegios de administrador
  • Un nombre de dominio apuntado a la dirección IP del servidor
  • Un SELinux con estado permisivo y habilitado

Instalar dependencias

NodeBB es un software de foro de código abierto basado en Node.js. Para instalar NodeBB, debes asegurarte de que los siguientes paquetes estén instalados, incluyendo:

  • Herramientas del sistema como “Development Tools”, Git e ImageMagick
  • Node.js 18 o superior y NPM (Node Package Manager)
  • Servidor de base de datos NoSQL MongoDB
  • Servidor web Nginx como proxy inverso

En esta sección, instalarás esas dependencias en el servidor Alma Linux 9.

Primero, ejecuta el siguiente comando para habilitar el repositorio CRB (CodeReadyBuild) de Alma Linux e instalar el repositorio EPEL.

sudo crb enable  
sudo dnf install epel-release -y

Luego crea un nuevo archivo de repositorio ‘ /etc/yum.repos.d/mongodb-org-7.0.repo ‘ con el editor ‘ nano ‘.

sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo

Ingresa la siguiente configuración en el archivo:

[mongodb-org-7.0]  
name=Repositorio de MongoDB  
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://pgp.mongodb.com/server-7.0.asc

Guarda el archivo y sal del editor cuando termines.

Ahora ejecuta el siguiente comando para habilitar el repositorio de Node.js 18 para AlmaLinux.

sudo dnf module enable nodejs:18 -y

install deps

A continuación, ejecuta el siguiente comando ‘ dnf ‘ para instalar los ‘ Development Tools ‘, el servidor MongoDB, Node.js, NPM, Git e ImageMagick.

sudo dnf group install "Development Tools" -y  
sudo dnf install nodejs npm git ImageMagick mongodb-org -y

installing packages

Después de que la instalación haya finalizado, inicia y habilita el servicio ‘ mongod ‘ con el siguiente comando.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

Puedes ver a continuación que el servidor MongoDB está en funcionamiento y habilitado.

enable mongodb

Por último, verifica la versión de Node.js con el siguiente comando. Deberías ver que Node.js 18 está instalado en el servidor Alma Linux.

node --version  
npm --version

Configurando el servidor y la base de datos MongoDB para NodeBB

Con las dependencias instaladas, asegurarás el servidor MongoDB habilitando la autenticación por contraseña y configurando la contraseña de administrador de MongoDB. Después de eso, también crearás una nueva base de datos MongoDB y un usuario para la instalación de NodeBB.

Inicia sesión en el servidor MongoDB con el comando ‘ mongosh ‘ a continuación.

mongosh

login mongodb

Una vez que hayas iniciado sesión, cambia a la base de datos ‘ admin ‘ y ejecuta la consulta a continuación para configurar una contraseña de administrador para MongoDB. Asegúrate de cambiar ‘ MongoDBAdminPass ‘ por tu combinación de contraseña.

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

Ahora ejecuta las siguientes consultas para crear una nueva base de datos y un usuario ‘ nodebb ‘ con la contraseña ‘NodeBBPassword’. Puedes ajustar los siguientes detalles de la base de datos según sea necesario.

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

Escribe ‘ quit() ‘ para salir del servidor MongoDB.

create admin user and setup database

Después de haber configurado la contraseña de administrador para MongoDB, habilitemos la autenticación de MongoDB.

Abre el archivo de configuración predeterminado de MongoDB ‘ /etc/mongod.conf ‘ con el editor ‘ nano ‘.

sudo nano /etc/mongod.conf

Para habilitar la autenticación de MongoDB, descomenta la línea ‘ security ‘ y agrega ‘ authorization: enabled ‘ como sigue:

security:  
 authorization: enabled

Guarda y cierra el archivo cuando termines.

Ahora ejecuta el siguiente comando ‘ systemctl ‘ para reiniciar el servidor MongoDB y aplicar tus cambios. La autenticación de MongoDB debería estar habilitada ahora.

sudo systemctl restart mongod

Para verificar la configuración, ejecuta el comando ‘ mongosh ‘ a continuación para iniciar sesión en MongoDB usando el usuario ‘ nodebb ‘. Ingresa la contraseña para el usuario ‘ nodebb ‘.

mongosh "mongodb://127.0.0.1:27017" --username nodebb --authenticationDatabase nodebb

Instalando NodeBB

Ahora que has configurado el servidor MongoDB, estás listo para instalar NodeBB en el servidor Alma Linux.

Agrega un nuevo usuario y grupo del sistema ‘ nodebb ‘ con el siguiente comando.

sudo adduser -r -M -d /opt/nodebb -U nodebb

Descarga el código fuente de NodeBB en el directorio ‘ /opt/nodebb ‘ y cambia la propiedad al usuario ‘ nodebb ‘.

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb  
sudo chown -R nodebb:nodebb /opt/nodebb

Ve al directorio ‘ /opt/nodebb ‘ y ejecuta el script de configuración de NodeBB como sigue:

cd /opt/nodebb  
sudo su -s /bin/bash -c "./nodebb setup" nodebb

Aquí, se te preguntará sobre algunas configuraciones de NodeBB:

  • Ingresa tu nombre de dominio para NodeBB, como https://forum.howtoforge.local.
  • Presiona ENTER en la configuración secreta de NodeBB. Déjalo como predeterminado.
  • Ingresa no para deshabilitar el acceso anónimo a NodeBB.
  • Selecciona MongoDB como la base de datos.
  • Ingresa los detalles de tu base de datos MongoDB en el formato como mongodb://nodebb:[email protected]:27017/nodebb.
  • Ingresa el nuevo usuario administrador y la dirección de correo electrónico para NodeBB.
  • Ingresa la contraseña para tu usuario administrador de NodeBB y repítela.

Después de que el proceso haya finalizado, verás una salida como esta:

login to mongodb

Ahora puedes iniciar o detener NodeBB manualmente ejecutando el script ‘ nodebb ‘ como sigue:

sudo su -s /bin/bash -c "./nodebb start" nodebb  
sudo su -s /bin/bash -c "./nodebb stop" nodebb

nodebb start and stop

Ejecutando NodeBB como un servicio systemd

Para gestionar NodeBB más fácilmente, puedes controlar el proceso de NodeBB utilizando la utilidad ‘ systemctl ‘. Para hacer esto, necesitas crear un nuevo archivo de servicio systemd para ejecutar NodeBB.

Crea un nuevo archivo de servicio systemd ‘ /etc/systemd/system/nodebb.service ‘ con el editor ‘ nano ‘.

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

Ingresa la siguiente configuración para ejecutar NodeBB como un servicio systemd.

[Unit]  
Description=NodeBB  
Documentation=https://docs.nodebb.org  
After=system.slice multi-user.target mongod.service  
  
[Service]  
Type=simple  
User=nodebb  
  
StandardError=syslog  
SyslogIdentifier=nodebb  
  
Environment=NODE_ENV=production  
WorkingDirectory=/opt/nodebb  
ExecStart=/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

Guarda el archivo y sal del editor.

Recarga el administrador de systemd con el comando ‘ systemctl ‘ a continuación.

sudo systemctl daemon-reload

Por último, inicia y habilita el servicio ‘ nodebb ‘, y luego verifica para asegurarte de que el servicio esté en funcionamiento:

sudo systemctl enable --now nodebb  
sudo systemctl status nodebb

Puedes ver a continuación que NodeBB está funcionando en segundo plano como un servicio systemd.

setup nodebb systemd

Configurando Nginx como un proxy inverso

Ahora que NodeBB está funcionando en segundo plano como un servicio, instalemos Nginx y creemos un nuevo bloque de servidor que se utilizará como un proxy inverso para NodeBB.

Primero, ejecuta el comando ‘ dnf ‘ a continuación para instalar el servidor web Nginx.

sudo dnf install nginx -y

install nginx

Ahora crea una nueva configuración de Nginx ‘ /etc/nginx/conf.d/nodebb.conf ‘ con el editor ‘ nano ‘.

sudo nano /etc/nginx/conf.d/nodebb.conf

Ingresa la siguiente configuración y asegúrate de cambiar el parámetro ‘ server_name ‘ con tu nombre de dominio.

server {  
listen 80;  
  
server_name forum.howtoforge.local;  
  
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 para Socket.IO  
proxy_http_version 1.1;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
}  
}

Cuando termines, guarda el archivo y sal del editor.

A continuación, ejecuta el comando a continuación para verificar la sintaxis de Nginx. Si es exitoso, tendrás una salida ‘ syntax is ok - test is successful ‘.

sudo nginx -t

setup vhost

Por último, ejecuta el comando ‘ systemctl ‘ a continuación para iniciar, habilitar y verificar el servidor web Nginx.

sudo systemctl enable --now nginx  
sudo systemctl status nginx

Puedes ver a continuación que el servidor web Nginx está en funcionamiento.

check nginx

Asegurando NodeBB con HTTPS

En este punto, tu instalación de NodeBB está lista. Pero si estás en el nombre de dominio público, debes asegurar NodeBB con HTTPS. En esta sección, configurarás HTTPS para NodeBB con Certbot y Letsencrypt.

Instala Certbot y el complemento Certbot Nginx con el siguiente comando:

sudo dnf install certbot python3-certbot-nginx -y

Ahora ejecuta el comando ‘ certbot ‘ a continuación para asegurar tu instalación de NodeBB con HTTPS. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico en este comando.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d forum.howtoforge.local

Después de que el proceso haya finalizado, tus certificados SSL/TLS estarán disponibles en el directorio ‘ /etc/letsencrypt/live/domain.com ‘ y tu instalación de NodeBB debería estar asegurada con HTTPS.

Accediendo a NodeBB

Abre tu navegador web y visita el nombre de dominio de NodeBB, como https://forum.howtoforge.local. Si tu instalación es exitosa, verás la siguiente página de inicio de NodeBB.

nodebb

Conclusión

¡Felicidades! Has terminado la instalación de NodeBB en el servidor Alma Linux 9. Tienes el foro NodeBB en funcionamiento con el servidor MongoDB y Nginx como proxy inverso. También aseguraste la instalación de NodeBB con HTTPS a través de Certbot y Letsencrypt.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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