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

Cómo instalar el foro NodeBB en Ubuntu 18.04 LTS

NodeBB es un software de foro basado en Node.js construido para la web moderna. Está construido sobre una base de datos MongoDB o Redis. Utiliza sockets web para interacciones instantáneas y notificaciones en tiempo real. NodeBB tiene muchas características modernas listas para usar, como la integración de redes sociales y discusiones en streaming. Funcionalidades adicionales se habilitan a través del uso de plugins de terceros. NodeBB es un proyecto de código abierto que se puede encontrar en Github. En esta guía, te guiaremos paso a paso a través del proceso de instalación de NodeBB en el sistema operativo Ubuntu 18.04 LTS utilizando Nginx como proxy inverso, MongoDB como base de datos y acme.sh y Let’s Encrypt para HTTPS.

Requisitos

NodeBB requiere que se instale el siguiente software:

  • Node.js versión 6 o superior
  • MongoDB versión 2.6 o superior o Redis versión 2.8.9 o superior
  • Nginx versión 1.3.13 o superior
  • Git

NOTA: Instalar las dependencias de NodeBB puede requerir más de 512 megabytes de memoria del sistema. Se recomienda habilitar una partición de intercambio para compensar si tu sistema Linux tiene memoria insuficiente.

Prerrequisitos

  • Un sistema Ubuntu 18.04 en funcionamiento con al menos 1GB de RAM.
  • Nombre de dominio con registros A / AAAA configurados.
  • Un usuario no root con privilegios sudo.

Pasos iniciales

Verifica tu versión de Ubuntu:

lsb_release -ds  
# Ubuntu 18.04.1 LTS

Configura la zona horaria:

sudo dpkg-reconfigure tzdata

Actualiza los paquetes de tu sistema operativo (software). Este es un primer paso importante porque asegura que tengas las últimas actualizaciones y correcciones de seguridad para los paquetes de software predeterminados de tu sistema operativo:

sudo apt update && sudo apt upgrade -y

Instala algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo Ubuntu:

sudo apt install -y curl wget vim git unzip socat bash-completion  

Paso 1: Instalar Node.js y npm

NodeBB está construido sobre Node.js. Vamos a instalar la versión recomendada para NodeBB, que es la versión 8 ** en el momento de escribir esto. En Linux, tienes algunas opciones de instalación de Node.js: Binarios de Linux (x86/x64), Código fuente o a través de Gestores de paquetes. Usaremos la opción de Gestión de paquetes, que facilita la instalación y actualización de Node.js.

Descarga e instala la última versión de Soporte a Largo Plazo (LTS) de Node.js desde el repositorio de Nodesource:

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

Para compilar e instalar complementos nativos desde npm, también puede que necesites instalar herramientas de construcción:

sudo apt install -y build-essential

NOTA: npm se distribuye con Node.js, lo que significa que cuando descargas Node.js, automáticamente obtienes npm instalado en tu sistema.

Verifica las versiones de Node.js y npm:

node -v && npm -v  
# v10.15.1  
# 6.4.1

Npm es un proyecto separado de Node.js y tiende a actualizarse con más frecuencia. Como resultado, incluso si acabas de descargar Node.js (y por lo tanto npm), probablemente necesitarás actualizar tu npm. Afortunadamente, npm sabe cómo actualizarse a sí mismo. Para actualizar tu npm, escribe esto en tu terminal:

sudo npm install -g npm@latest

Este comando actualizará npm a la última versión estable.

Vuelve a verificar la versión de npm con:

npm -v  
# 6.7.0  

Y debería devolver los números de versión más recientes.

Paso 2: Instalar y configurar MongoDB

NodeBB necesita una base de datos para almacenar sus datos, y admite MongoDB y Redis. En este tutorial, elegimos MongoDB como motor de almacenamiento de datos. Así que, en los próximos pasos, descargaremos e instalaremos la base de datos MongoDB desde el repositorio rpm oficial de MongoDB:

Para instalar la versión estable del paquete MongoDB, emite el siguiente comando:

sudo apt install -y mongodb

Verifica la versión de MongoDB:

mongo --version | head -n 1 && mongod --version | head -n 1  

Inicia y habilita (configúralo para que se inicie al reiniciar) el servicio de MongoDB:

sudo systemctl start mongodb.service  
sudo systemctl enable mongodb.service

Verifica el estado del servidor de base de datos MongoDB ejecutando:

sudo systemctl status mongodb.service  
# active (running)

A continuación, crea una base de datos MongoDB y un usuario para NodeBB.

Conéctate primero al servidor MongoDB.

mongo

Cambia a la base de datos admin incorporada.

> use admin

Crea un usuario administrativo.

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

NOTA: Reemplaza el marcador con tu propia contraseña seleccionada.

Agrega una nueva base de datos llamada nodebb.

> use nodebb

La base de datos será creada y el contexto cambiará a nodebb. A continuación, crea el usuario nodebb con los privilegios apropiados.

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

NOTA: Nuevamente, reemplaza el marcador con tu propia contraseña seleccionada.

Sal de la shell de Mongo.

> quit()

Reinicia MongoDB y verifica que el usuario administrativo creado anteriormente pueda conectarse.

sudo systemctl restart mongodb.service  
mongo -u admin -p your_password --authenticationDatabase=admin

Si todo salió bien, tu MongoDB debería estar instalado y preparado para NodeBB. En el siguiente paso, nos ocuparemos de la instalación y configuración del servidor web.

Paso 3 - Instalar el cliente acme.sh y obtener el certificado de Let’s Encrypt (opcional)

Asegurar tu foro NodeBB con HTTPS no es necesario, pero es una buena práctica asegurar el tráfico de tu sitio. Para obtener un certificado TLS de Let’s Encrypt, utilizaremos el cliente acme.sh. Acme.sh es un software de shell puro de unix para obtener certificados TLS de Let’s Encrypt con cero dependencias.

Descarga e instala acme.sh:

sudo su - root  
git clone https://github.com/Neilpang/acme.sh.git  
cd acme.sh   
./acme.sh --install --accountemail [email protected]  
source ~/.bashrc  
cd ~

Verifica la versión de acme.sh:

acme.sh --version  
# v2.8.0

Obtén certificados RSA y ECC/ECDSA para tu dominio/nombre de host:

# RSA 2048  
acme.sh --issue --standalone -d example.com --keylength 2048  
# ECDSA  
acme.sh --issue --standalone -d example.com --keylength ec-256

Si deseas certificados falsos para pruebas, puedes agregar la bandera --staging a los comandos anteriores.

Después de ejecutar los comandos anteriores, tus certificados y claves estarán en:

  • Para RSA: directorio /home/username/example.com.
  • Para ECC/ECDSA: directorio /home/username/example.com_ecc.

Para listar tus certificados emitidos, puedes ejecutar:

acme.sh --list

Crea un directorio para almacenar tus certificados. Usaremos el directorio /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com  
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instala/copia los certificados en el directorio /etc/letsencrypt.

# RSA  
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"  
# ECC/ECDSA  
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Todos los certificados se renovarán automáticamente cada 60 días.

Después de obtener los certificados, sal del usuario root y vuelve al usuario sudo normal:

exit

Paso 4: Instalar y configurar Nginx

NodeBB puede funcionar bien con muchos servidores web. En este tutorial, seleccionamos Nginx.

Instala el paquete Nginx, emitiendo el siguiente comando:

sudo apt install -y nginx

Después de la instalación, puedes verificar la versión de Nginx ejecutando:

nginx -v  

Inicia y habilita (configúralo para que se inicie al reiniciar) el servicio de Nginx:

sudo systemctl start nginx.service  
sudo systemctl enable nginx.service

Verifica el estado del servidor web Nginx ejecutando:

sudo systemctl status nginx.service  
# active (running)

NodeBB por defecto se ejecuta en el puerto 4567. Para evitar escribir http://example.com:4567, configuraremos Nginx como un proxy inverso para la aplicación NodeBB. Cada solicitud en el puerto 80 o 443 (si se usa SSL) se redirigirá al puerto 4567.

Ejecuta sudo vim /etc/nginx/conf.d/nodebb.conf y configura Nginx como un proxy inverso HTTPS.

server {  
  listen [::]:443 ssl http2;  
  listen 443 ssl http2;  
  listen [::]:80;  
  listen 80;  
  
  server_name example.com;  
  
  client_max_body_size 50M;  
  
  # RSA  
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;  
  # ECDSA  
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;  
  
  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";   
  }  
  
}

Verifica la configuración de Nginx:

sudo nginx -t

Finalmente, para que los cambios surtan efecto, necesitamos recargar Nginx:

sudo systemctl reload nginx.service

Paso 5: Instalar y configurar NodeBB

Crea un directorio raíz de documentos donde debería residir NodeBB:

sudo mkdir -p /var/www/nodebb

Navega al directorio raíz de documentos:

cd /var/www/nodebb

Cambia la propiedad del directorio /var/www/nodebb a tu_usuario.

sudo chown -R [tu_usuario]:[tu_usuario] /var/www/nodebb

NOTA: Reemplaza tu_usuario en el comando anterior con tu usuario no root que deberías haber creado como prerrequisito para este tutorial.

Clona el último repositorio de NodeBB en la carpeta raíz de documentos:

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Inicia el script de configuración ejecutando la aplicación con la bandera setup. Responde a cada una de las preguntas:

./nodebb setup

Después de que se complete la configuración de NodeBB, ejecuta ./nodebb start para iniciar manualmente tu servidor NodeBB:

./nodebb start

Después de ejecutar este comando, deberías poder acceder a tu nuevo foro en tu navegador web:

NodeBB en el navegador

Paso 6: Ejecutar NodeBB como un servicio del sistema

Cuando se inicia a través de ./nodebb start, NodeBB no se iniciará automáticamente de nuevo cuando el sistema se reinicie. Para evitar eso, necesitaremos configurar NodeBB como un servicio del sistema.

Si está en ejecución, detén NodeBB:

./nodebb stop

Crea un nuevo usuario nodebb:

sudo useradd nodebb

Cambia la propiedad del directorio /var/www/nodebb al usuario nodebb:

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

Crea un archivo de configuración de unidad systemd nodebb.service. Este archivo de unidad manejará el inicio del demonio NodeBB. Ejecuta sudo vim /etc/systemd/system/nodebb.service y agrega el siguiente contenido:

[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

NOTA: Configura el nombre de usuario y las rutas de directorio según tus nombres elegidos.

Habilita nodebb.service al reiniciar e inicia inmediatamente nodebb.service:

sudo systemctl enable nodebb.service  
sudo systemctl start nodebb.service

Verifica el estado de nodebb.service:

sudo systemctl status nodebb.service  
sudo systemctl is-enabled nodebb.service

¡Felicidades! Has instalado y desplegado con éxito la plataforma de discusión NodeBB en el sistema Ubuntu 18.04. Deberías poder acceder a tu foro en tu dominio e interactuar con tu foro.

Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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