NodeBB Installation · 12 min read · Oct 14, 2025
Cómo instalar el foro NodeBB en Ubuntu 22.04

NodeBB es un software de foro moderno impulsado por el marco Node.js. Utiliza MongoDB, PostgreSQL o Redis para almacenar datos. Utiliza sockets web para notificaciones en tiempo real e interacciones instantáneas. Tiene características modernas como integración de redes sociales, soporte para plugins, capacidad de respuesta móvil y APIs REST completas de lectura/escritura.
NodeBB está disponible tanto como un proyecto de autoalojamiento de código abierto como un servicio en la nube. En este tutorial, aprenderás cómo instalar el foro NodeBB utilizando Nginx en un servidor Ubuntu 22.04. Ubuntu 22.04 no admite oficialmente MongoDB; por lo tanto, utilizaremos PostgreSQL para almacenar datos.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04 con un mínimo de 1GB de RAM.
- Un usuario no root con privilegios sudo.
- El Firewall sin complicaciones (UFW) está habilitado y en funcionamiento.
- Un nombre de dominio completamente calificado (FQDN) que apunte al servidor como
forum.example.com. - Todo está actualizado.
$ sudo apt update && sudo apt upgrade
Paso 1 - Configurar el Firewall
Antes de instalar cualquier paquete, el primer paso es configurar el firewall para permitir conexiones HTTP y HTTPS.
Verifica el estado del firewall.
$ sudo ufw status
Deberías ver algo como lo siguiente.
Estado: activo
Para Acción Desde
-- ------ ----
OpenSSH PERMITIR En cualquier lugar
OpenSSH (v6) PERMITIR En cualquier lugar (v6)
Permitir los puertos HTTP y HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Verifica el estado nuevamente para confirmar.
$ sudo ufw status
Estado: activo
Para Acción Desde
-- ------ ----
OpenSSH PERMITIR En cualquier lugar
80/tcp PERMITIR En cualquier lugar
443 PERMITIR En cualquier lugar
OpenSSH (v6) PERMITIR En cualquier lugar (v6)
80/tcp (v6) PERMITIR En cualquier lugar (v6)
443 (v6) PERMITIR En cualquier lugar (v6)
Paso 2 - Instalar PostgreSQL
El primer paso para instalar PostgreSQL es agregar su clave GPG.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Agrega el repositorio APT a tu lista de fuentes.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Actualiza el repositorio del sistema.
$ sudo apt update
Ahora, puedes instalar PostgreSQL.
$ sudo apt install postgresql postgresql-contrib
Verifica el estado del servicio PostgreSQL.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Cargado: cargado (/lib/systemd/system/postgresql.service; habilitado; ajuste de proveedor: habilitado)
Activo: activo (salido) desde sáb 2022-09-10 06:25:11 UTC; hace 13s
Proceso: 12083 ExecStart=/bin/true (código=salido, estado=0/SUCCESS)
Main PID: 12083 (código=salido, estado=0/SUCCESS)
CPU: 1ms
Sep 10 06:25:11 nodebb systemd[1]: Iniciando PostgreSQL RDBMS...
Sep 10 06:25:11 nodebb systemd[1]: Finalizado PostgreSQL RDBMS.
Paso 3 - Configurar PostgreSQL
Necesitamos establecer una contraseña para el usuario administrativo predeterminado de Postgres postgres. Primero, inicia sesión en el Shell de Postgres.
$ sudo -u postgres psql
Ingresa el siguiente comando para cambiar la contraseña.
postgres=# \password postgres
Se te pedirá una nueva contraseña.
Ingresa nueva contraseña para el usuario "postgres":
Ingresa de nuevo:
Crea un nuevo usuario para NodeBB.
postgres=# CREATE ROLE nbbuser WITH LOGIN ENCRYPTED PASSWORD 'YourNodeBBPassword';
Crea una nueva base de datos para NodeBB.
postgres=# CREATE DATABASE nodebbdb OWNER nbbuser;
Escribe \q para salir del shell.
postgres=# \q
Paso 4 - Instalar Node.js
Dado que el foro NodeBB está escrito utilizando el marco Node.js, necesitamos instalarlo para que funcione.
Emite los siguientes comandos para instalar la versión LTS (v16.x) de Node.js.
$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ sudo apt install nodejs
Verifica la instalación de Node.js y NPM.
$ node -v
v16.17.0
$ npm -v
8.15.0
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 se recomienda ejecutar NodeBB como usuario root. Crea un usuario del sistema sin privilegios y sin contraseña.
$ sudo adduser nodebb --disabled-password
Sigue saltando todas las demás opciones.
Crea el directorio donde vivirá tu foro NodeBB.
$ sudo mkdir /var/www/html/nodebb -p
Cambia la propiedad de la carpeta al usuario recién creado.
$ sudo chown -R nodebb:nodebb /var/www/html/nodebb
Inicia sesión en el usuario recién creado.
$ sudo su - nodebb
Cambia al directorio de instalación de NodeBB.
$ cd /var/www/html/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 v2.x https://github.com/NodeBB/NodeBB.git .
Aquí hemos clonado la rama v2.x de NodeBB que alberga la última versión estable de NodeBB. Puedes encontrar la última rama estable en la página de Últimas Ramas 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.
2022-09-10T10:10:27.957Z [2633] - info: Configuración de NodeBB activada a través de la línea de comandos
¡Bienvenido a NodeBB v2.5.2!
Esto parece ser una nueva instalación, así que tendrás que responder algunas preguntas sobre tu entorno antes de que podamos proceder.
Presiona enter para aceptar la configuración predeterminada (mostrada entre corchetes).
URL utilizada para acceder a este NodeBB (http://localhost:4567) https://forum.example.com
Por favor, ingresa un secreto de NodeBB (44fd62bc-5047-4414-a4ca-83105740b624)
¿Te gustaría enviar el uso anónimo de plugins a nbbpm? (sí) no
¿Qué base de datos utilizar? (mongo) postgres
2022-09-10T10:10:43.237Z [2633] - info:
Ahora configurando la base de datos postgres:
IP o dirección del host de tu instancia de PostgreSQL (127.0.0.1)
Puerto del host de tu instancia de PostgreSQL (5432)
Nombre de usuario de PostgreSQL nbbuser
Contraseña de tu base de datos PostgreSQL
Nombre de la base de datos de PostgreSQL (nodebb) nodebbdb
Habilitar SSL para el acceso a la base de datos PostgreSQL (falso)
........
Para el valor de la 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 https://forum.example.com. Elige no como respuesta a la pregunta sobre enviar el uso anónimo de plugins. Escribe postgres como el tipo de base de datos.
Luego elige la IP del Host y el puerto predeterminados presionando enter e ingresa tu nombre de usuario de PostgreSQL que es cuando ingresas nbbuser y la contraseña que elegiste anteriormente para ese nombre de usuario mientras configurabas MongoDB. Tu base de datos nodebbdb debería ser elegida.
También se te pedirá que crees un usuario administrador y sus detalles.
.....
2022-09-10T10:11:14.121Z [2633] - advertencia: No se han detectado administradores, ejecutando la configuración inicial del usuario
Nombre de usuario del administrador navjot
Dirección de correo electrónico del administrador [email protected]
Contraseña
Confirmar contraseña
.....
....
2022-09-10T10:14:28.160Z [2633] - info: [build] Compilación de activos exitosa. Completado en 118.777seg.
=================================================================================================================================================================
Configuración de NodeBB completada. Ejecuta "./nodebb start" para iniciar manualmente tu servidor NodeBB.
Una vez que la configuración esté completa, ejecuta el siguiente comando para iniciar NodeBB.
$ ./nodebb start
Iniciando NodeBB
"./nodebb stop" para detener el servidor NodeBB
"./nodebb log" para ver la salida del servidor
"./nodebb help" para más comandos
Sal del usuario de NodeBB.
$ exit
Paso 7 - 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. Cambia al directorio de NodeBB y luego ejecuta el comando directamente usando el comando sudo -u.
$ cd /var/www/html/nodebb
$ sudo -u nodebb ./nodebb stop
Ejecuta el siguiente comando para crear y editar el archivo de configuración de unidad nodebb.service de systemd.
$ 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 postgresql.service
[Service]
Type=simple
User=nodebb
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/html/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
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 ella.
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
? nodebb.service - NodeBB
Cargado: cargado (/etc/systemd/system/nodebb.service; habilitado; ajuste de proveedor: habilitado)
Activo: activo (ejecutándose) desde dom 2022-09-11 21:41:07 UTC; hace 2s
Docs: https://docs.nodebb.org
Main PID: 26844 (node)
Tasks: 18 (límite: 2237)
Memoria: 94.1M
CPU: 2.114s
CGroup: /system.slice/nodebb.service
??26844 node loader.js --no-silent --no-daemon
??26855 /usr/bin/node /var/www/html/nodebb/app.js
Sep 11 21:41:07 forum systemd[1]: Iniciado NodeBB.
Sep 11 21:41:07 forum nodebb[26844]: NodeBB v2.5.2 Copyright (C) 2013-2022 NodeBB Inc.
Sep 11 21:41:07 forum nodebb[26844]: Este programa viene con ABSOLUTAMENTE NINGUNA GARANTÍA.
Sep 11 21:41:07 forum nodebb[26844]: Este es software libre, y eres bienvenido a redistribuirlo bajo ciertas condiciones.
Sep 11 21:41:07 forum nodebb[26844]: Para la licencia completa, visita: http://www.gnu.org/copyleft/gpl.html
Sep 11 21:41:07 forum nodebb[26844]: Clustering habilitado: Iniciando 1 proceso(s).
Sep 11 21:41:08 forum nodebb[26855]: 2022-09-11T21:41:08.002Z [4567/26855] - info: Inicializando NodeBB v2.5.2 https://forum.example.com
Paso 8 - Instalar Nginx
Ubuntu 22.04 viene con una versión más antigua de Nginx. Para instalar la última versión, necesitas descargar el repositorio oficial de Nginx.
Importa la clave de firma de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Agrega el repositorio para la versión estable de Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Actualiza los repositorios del sistema.
$ sudo apt update
Instala Nginx.
$ sudo apt install nginx
Verifica la instalación.
$ nginx -v
nginx version: nginx/1.22.0
Inicia el servidor Nginx.
$ sudo systemctl start nginx
Paso 9 - Instalar SSL
Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot utilizando el repositorio de Ubuntu o obtener la última versión utilizando la herramienta Snapd. Usaremos la versión de Snapd.
Ubuntu 22.04 viene con Snapd instalado por defecto. Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd esté actualizada.
$ sudo snap install core
$ sudo snap refresh core
Instala Certbot.
$ sudo snap install --classic certbot
Usa el siguiente comando para asegurarte de que el comando Certbot pueda ejecutarse creando un enlace simbólico al directorio /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Ejecuta el siguiente comando para generar un certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d forum.example.com
El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/forum.example.com en tu servidor.
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Para verificar si la renovación de SSL está funcionando bien, haz una prueba del proceso.
$ sudo certbot renew --dry-run
Si no ves errores, estás listo. Tu certificado se renovará automáticamente.
Paso 10 - Configurar Nginx
Abre el archivo /etc/nginx/nginx.conf para editarlo.
$ sudo nano /etc/nginx/nginx.conf
Agrega la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.
Crea y abre el archivo /etc/nginx/conf.d/nodebb.conf para editarlo.
$ sudo nano /etc/nginx/conf.d/nodebb.conf
Pega el siguiente código en él. Reemplaza forum.example.com con tu nombre de dominio. Asegúrate de que el valor de client_max_body_size esté configurado en 25MB para establecer el tamaño de carga para el foro.
server {
listen 80 default_server;
server_name forum.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name forum.example.com;
http2_push_preload on; # Habilitar HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/forum.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/forum.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/forum.example.com/chain.pem;
ssl_session_timeout 1d;
# Habilitar versiones TLS (TLSv1.3 es requerido para el próximo HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Habilitar 0-RTT de TLSv1.3. Usa $ssl_early_data al hacer proxy inverso para
# prevenir ataques de repetición.
#
# @ver: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# obtener registros OCSP de la URL en ssl_certificate y almacenarlos en caché
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
client_max_body_size 25M;
gzip on;
gzip_min_length 1000;
gzip_proxied off;
gzip_types text/plain application/xml text/javascript application/javascript application/x-javascript text/css application/json;
add_header X-Early-Data $tls1_3_early_data;
location / {
# Soporte para Socket.IO
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
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 X-NginX-Proxy true;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:4567; # sin barra diagonal al final
proxy_redirect off;
}
location @nodebb {
proxy_pass http://127.0.0.1:4567;
}
location ~ ^/assets/(.*) {
root /var/www/html/nodebb/;
try_files /build/public/$1 /public/$1 @nodebb;
}
}
# Este bloque es útil para depurar TLS v1.3. Siéntete libre de eliminar esto
# y usar la variable `$ssl_early_data` expuesta por NGINX directamente si así lo deseas.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.
Verifica tu configuración de Nginx.
$ sudo nginx -t
Reinicia el servidor Nginx.
$ sudo systemctl restart nginx
Paso 11 - Acceder y Configurar el Foro
Puedes acceder al foro visitando la URL https://forum.example.com en tu navegador. Obtendrás la siguiente página.

Haz clic en la página de inicio de sesión e ingresa las credenciales de administrador que creaste en el paso 6.

Estarás conectado. A continuación, haz clic en el ícono más a la derecha en la parte superior de la barra de menú para acceder al panel de administración.
A partir de aquí, puedes gestionar el foro. Amplíalo instalando temas y plugins.

Después de instalar cualquier tema y plugin, debes reconstruir y reiniciar el foro utilizando el botón en la esquina superior derecha del panel de administración como se muestra aquí.
Asegúrate de configurar tu servicio de correo electrónico yendo a Panel de control >> Configuración >> Correo para que los usuarios de tu foro puedan recibir correos electrónicos. Selecciona la siguiente configuración para asegurar la entrega óptima de correos electrónicos.

Desplázate hacia abajo en la página y selecciona un correo personalizado del menú desplegable o usa Correo personalizado si tu servicio SMTP no está en la lista. Para nuestro tutorial, estamos utilizando el servicio SES.

Haz clic en el ícono de guardar en la esquina inferior derecha para guardar la configuración.
Desplázate hacia abajo en la página para enviar un correo electrónico de prueba. Por defecto, enviará una plantilla de correo electrónico prohibido. Puedes seleccionar cualquier otra plantilla de correo para probar. Enviaremos el correo de bienvenida.

Recibirás un correo electrónico de prueba como se muestra a continuación confirmando la configuración.

Conclusión
Esto concluye nuestro tutorial sobre la instalación del foro NodeBB utilizando la base de datos PostgreSQL y Nginx en un servidor Ubuntu 22.04. Si tienes alguna pregunta, publícalas en los comentarios a continuación.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.