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

Cómo instalar NodeBB con Nginx Proxy en Debian 12

NodeBB es un software de foro de código abierto escrito en JavaScript y Node.js. Utiliza MongoDB como base de datos predeterminada. NodeBB ofrece múltiples características, como notificaciones en tiempo real a través de web socket, integración con redes sociales y también APIs REST completas.

Esta guía te mostrará cómo instalar NodeBB en un servidor Debian 12 con MongoDB como base de datos y Nginx como proxy inverso.

Prerrequisitos

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

  • Un servidor Debian 12.
  • Un usuario no root con privilegios sudo.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalando Dependencias

Para comenzar el proceso, instalarás las dependencias para NodeBB. Esto incluye Node.js, NPM (Node.js Package Manager) y el servidor web Nginx desde el repositorio de Debian. En cuanto a MongoDB, lo instalarás a través del repositorio oficial de MongoDB.

Primero, ejecuta el siguiente comando para instalar los paquetes gnupg y curl en tu sistema Debian.

sudo apt install gnupg curl -y

Agrega la clave GPG y el repositorio de MongoDB con el siguiente comando:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \  
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \  
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Ahora actualiza el índice de paquetes de Debian e instala MongoDB, Node.js, NPM, Nginx y Git. Ingresa Y para confirmar la instalación.

sudo apt update  
sudo apt install mongodb-org nodejs npm git nginx

install dependencies

Después de que la instalación esté completa, recarga el administrador de systemd con lo siguiente:

sudo systemctl daemon-reload

Ahora ejecuta el comando a continuación para iniciar, habilitar y verificar el estado del servicio de MongoDB.

sudo systemctl enable --now mongod  
sudo systemctl status mongod

La siguiente salida confirma que MongoDB está en funcionamiento.

check mongodb

A continuación, verifica el estado del servicio de Nginx con el siguiente comando. Deberías ver que Nginx está habilitado y en funcionamiento en tu sistema.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

check nginx

Por último, verifica la versión de Node.js y NPM con lo siguiente:

sudo node -v  
sudo npm -v

Puedes ver a continuación que Node.js 18 y NPM 9 están instalados.

check node.js and npm

Configurando el servidor MongoDB

En esta sección, habilitarás la autenticación de MongoDB, crearás un nuevo usuario administrador para MongoDB y luego crearás una nueva base de datos y usuario para la instalación de NodeBB.

Inicia sesión en el servidor MongoDB con el siguiente comando.

mongosh

Ejecuta la siguiente consulta para cambiar a la base de datos ‘admin’ y crear un nuevo usuario administrador ‘ admin ‘ para MongoDB. Asegúrate de cambiar la contraseña ‘ MongoDBAdminPass ‘ por la nueva contraseña.

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

A continuación, crea una nueva base de datos y usuario ‘ nodebb ‘ con la contraseña ‘ NodeBBPassword ‘. Esta base de datos y usuario se utilizarán para la instalación de NodeBB.

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

Ahora escribe ‘ quit() ‘ para salir de MongoDB.

setup mongodb admin and create new database and user

A continuación, abre la configuración de MongoDB ‘ /etc/mongod.conf ‘ con el editor nano.

sudo nano /etc/mongod.conf

Habilita la autenticación de MongoDB agregando la siguiente configuración.

security:  
 authorization: enabled

Guarda y cierra el archivo cuando termines.

Ahora ejecuta el comando a continuación para reiniciar el servicio de MongoDB y aplicar tus nuevos cambios. Después de que se ejecute el comando, la autenticación de MongoDB estará habilitada.

sudo systemctl restart mongod

Para asegurarte de que tu configuración de MongoDB sea exitosa, inicia sesión en MongoDB con el usuario ‘ nodebb ‘ en la base de datos ‘ nodebb ‘. Ingresa tu contraseña cuando se te pida.

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

Después de iniciar sesión, ejecuta la consulta a continuación para verificar tu conexión y salir de MongoDB.

db.runCommand( { connectionStatus: 1, showPrivileges: false } )  
quit()

En la siguiente salida, puedes ver que te has autenticado como ‘ nodebb ‘ en la base de datos ‘ nodebb ‘.

check mongodb user connection

Instalando NodeBB

Con la configuración de MongoDB terminada, descargarás e instalarás NodeBB. Crearás un usuario dedicado para NodeBB, descargarás e instalarás las dependencias de NodeBB y luego configurarás un archivo de servicio para tu instalación de NodeBB.

Agrega un nuevo usuario del sistema ‘ nodebb ‘ con el directorio de inicio predeterminado ‘ /opt/nodebb ‘ usando el siguiente comando.

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

Ahora descarga la fuente de NodeBB v3 en el directorio ‘ /opt/nodebb ‘ usando git y cambia la propiedad del directorio ‘ /opt/nodebb ‘ 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 configura tu instalación de NodeBB con el siguiente comando.

cd /opt/nodebb  
sudo su -s /bin/bash -c "./nodebb setup" nodebb
  • Ingresa tu nombre de dominio para NodeBB.
  • Deja el secreto de NodeBB como predeterminado y presiona ENTER.
  • Escribe no para deshabilitar el uso del plugin anónimo.
  • Selecciona la base de datos como MongoDB.
  • Ingresa la base de datos de MongoDB con la cadena de url: mongodb://nodebb: [email protected]:27017/nodebb.
  • Ingresa tu usuario administrador y dirección de correo electrónico para NodeBB.
  • Ingresa tu contraseña y repítela.

Después de que el proceso esté completo, verás una salida ‘ NodeBB Setup Completed ‘. También puedes ver el comando para ejecutar NodeBB.

setup complete

A continuación, ejecuta el comando a continuación para iniciar o detener NodeBB. Puedes usar esto cuando necesites iniciar o detener NodeBB manualmente.

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

start and stop nodebb

Para facilitar la gestión de NodeBB, crearás un nuevo archivo de servicio systemd para NodeBB. Con esto, tu instalación de NodeBB se ejecutará en segundo plano y podrás gestionarla con el comando systemctl.

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

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

Inserta la siguiente configuración en el archivo:

[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=/usr/bin/env node loader.js --no-silent --no-daemon  
Restart=always  
  
[Install]  
WantedBy=multi-user.target

Guarda y cierra el archivo.

Ahora ejecuta el comando a continuación para recargar el administrador de systemd y aplicar el nuevo archivo de servicio de NodeBB.

sudo systemctl daemon-reload

Después de eso, inicia y habilita el servicio ‘ nodebb ‘ con el siguiente comando systemctl.

sudo systemctl start nodebb  
sudo systemctl enable nodebb

Verifica el servicio ‘ nodebb ‘ con lo siguiente para asegurarte de que el servicio esté en funcionamiento.

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

En este punto, NodeBB está funcionando en segundo plano en el puerto ‘4567’. Ahora crearás un nuevo bloque de servidor Nginx que se utilizará como un proxy inverso para tu foro NodeBB. Asegúrate de que tu nombre de dominio esté apuntando a la dirección IP de tu servidor.

Crea una nueva configuración de bloque de servidor Nginx ‘ /etc/nginx/sites-available/nodebb ‘ con el editor nano.

sudo nano /etc/nginx/sites-available/nodebb

Agrega la siguiente configuración para configurar Nginx como un proxy inverso para NodeBB. 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.

Ahora activa el archivo de bloque de servidor ‘nodebb’ y prueba tu sintaxis de Nginx con lo siguiente:

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/  
sudo nginx -t

Si tienes la sintaxis de Nginx correcta, verás una salida ‘syntax is ok - test is successful’.

setup nginx

Por último, ejecuta el comando a continuación para reiniciar el servicio de Nginx y aplicar tus cambios.

sudo systemctl restart nginx

Asegurando NodeBB con HTTPS

En esta guía, asegurarás NodeBB con HTTPS a través de Certbot y Letsencrypt. Si estás utilizando un dominio local, puedes omitir esto o también puedes generar certificados autofirmados.

Instala Certbot y el plugin Certbot Nginx con el siguiente comando apt. Escribe Y para proceder con la instalación.

sudo apt install certbot python3-certbot-nginx

Ahora ejecuta el comando certbot a continuación para generar los certificados SSL para tu nombre de dominio NodeBB. Asegúrate de cambiar tanto la dirección de correo electrónico como el nombre de dominio con tu información.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d forum.hwdomain.i

Después de completar el proceso, tu instalación de NodeBB debería estar asegurada automáticamente con HTTPS. Tus certificados SSL/TLS estarán disponibles en el directorio ‘ /etc/letsencrypt/live/domain.com ‘.

Accediendo a NodeBB

Visita https://forum.howtoforge.local/ usando tu navegador web y verás la página de índice predeterminada de NodeBB como la siguiente:

homepage

Desde la página de inicio, haz clic en el menú Iniciar sesión y se te mostrará la página de inicio de sesión de NodeBB. Ingresa tu usuario administrador y contraseña, y luego haz clic en Iniciar sesión.

login page

Si es exitoso, verás el siguiente panel de usuario.

user dashboard

Haz clic en el menú Administrador para acceder al panel de administración de NodeBB como el siguiente:

admin dashboard

Conclusión

¡Felicidades! Ahora has instalado NodeBB en el servidor Debian 12. Tienes NodeBB funcionando con la base de datos MongoDB y el proxy inverso Nginx. También aseguraste 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.