Instalação de Software · 12 min read · Oct 14, 2025
Como Instalar o Fórum NodeBB no Ubuntu 22.04

NodeBB é um software de fórum moderno alimentado pelo framework Node.js. Ele usa MongoDB, PostgreSQL ou Redis para armazenar dados. Utiliza web sockets para notificações em tempo real e interações instantâneas. Possui recursos modernos como integração com redes sociais, suporte a plugins, responsividade móvel e APIs REST completas de leitura/escrita.
NodeBB está disponível tanto como um projeto de auto-hospedagem de código aberto quanto como um serviço em nuvem. Neste tutorial, você aprenderá como instalar o fórum NodeBB usando Nginx em um servidor Ubuntu 22.04. O Ubuntu 22.04 não suporta oficialmente o MongoDB; portanto, usaremos o PostgreSQL para armazenar dados.
Pré-requisitos
- Um servidor rodando Ubuntu 22.04 com um mínimo de 1GB de RAM.
- Um usuário não-root com privilégios sudo.
- O Firewall descomplicado (UFW) está habilitado e em execução.
- Um nome de domínio totalmente qualificado (FQDN) apontando para o servidor, como
forum.example.com. - Tudo está atualizado.
$ sudo apt update && sudo apt upgrade
Passo 1 - Configurar o Firewall
Antes de instalar qualquer pacote, o primeiro passo é configurar o firewall para permitir conexões HTTP e HTTPS.
Verifique o status do firewall.
$ sudo ufw statusVocê deve ver algo como o seguinte.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)Permita as portas HTTP e HTTPS.
$ sudo ufw allow http
$ sudo ufw allow httpsVerifique o status novamente para confirmar.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)Passo 2 - Instalar PostgreSQL
O primeiro passo para instalar o PostgreSQL é adicionar sua chave GPG.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/nullAdicione o repositório APT à sua lista de fontes.
$ 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'Atualize o repositório do sistema.
$ sudo apt updateAgora, você pode instalar o PostgreSQL.
$ sudo apt install postgresql postgresql-contribVerifique o status do serviço PostgreSQL.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2022-09-10 06:25:11 UTC; 13s ago
Process: 12083 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 12083 (code=exited, status=0/SUCCESS)
CPU: 1ms
Sep 10 06:25:11 nodebb systemd[1]: Starting PostgreSQL RDBMS...
Sep 10 06:25:11 nodebb systemd[1]: Finished PostgreSQL RDBMS.Passo 3 - Configurar PostgreSQL
Precisamos definir uma senha para o usuário administrativo padrão do Postgres postgres. Primeiro, faça login no Shell do Postgres.
$ sudo -u postgres psqlDigite o seguinte comando para alterar a senha.
postgres=# \password postgresVocê será solicitado a inserir uma nova senha.
Enter new password for user "postgres":
Enter it again:Crie um novo usuário para o NodeBB.
postgres=# CREATE ROLE nbbuser WITH LOGIN ENCRYPTED PASSWORD 'YourNodeBBPassword';Crie um novo banco de dados para o NodeBB.
postgres=# CREATE DATABASE nodebbdb OWNER nbbuser;Digite \q para sair do shell.
postgres=# \qPasso 4 - Instalar Node.js
Como o fórum NodeBB é escrito usando o framework Node.js, precisamos instalá-lo para que funcione.
Emita os seguintes comandos para instalar a versão LTS (v16.x) do Node.js.
$ curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
$ sudo apt install nodejsVerifique a instalação do Node.js e NPM.
$ node -v
v16.17.0
$ npm -v
8.15.0Passo 5 - Instalar Git
Antes de prosseguirmos para instalar o NodeBB, precisamos instalar o Git. Execute o seguinte comando para instalar o Git.
$ sudo apt install gitExecute os seguintes comandos para realizar a configuração inicial do Git.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"Passo 6 - Instalar NodeBB
Não é aconselhável executar o NodeBB como usuário root. Crie um usuário de sistema sem privilégios e sem senha.
$ sudo adduser nodebb --disabled-passwordPule todas as outras opções.
Crie o diretório onde seu fórum NodeBB ficará.
$ sudo mkdir /var/www/html/nodebb -pAltere a propriedade da pasta para o usuário recém-criado.
$ sudo chown -R nodebb:nodebb /var/www/html/nodebbFaça login no usuário recém-criado.
$ sudo su - nodebbMude para o diretório de instalação do NodeBB.
$ cd /var/www/html/nodebbPara instalar o NodeBB, primeiro, precisamos clonar seu repositório do GitHub.
Clone o NodeBB para o diretório /var/www/nodebb. O ponto no final do comando refere-se ao diretório atual.
$ git clone -b v2.x https://github.com/NodeBB/NodeBB.git .Aqui clonamos o branch v2.x do NodeBB, que abriga a versão estável mais recente do NodeBB. Você pode encontrar o branch estável mais recente na página de Branches Mais Recentes do NodeBB.
O NodeBB vem com uma utilidade de linha de comando. Use o seguinte comando para instalar o NodeBB.
$ ./nodebb setupVocê pode pressionar enter para escolher o valor padrão.
2022-09-10T10:10:27.957Z [2633] - info: NodeBB Setup Triggered via Command Line
Welcome to NodeBB v2.5.2!
This looks like a new installation, so you'll have to answer a few questions about your environment before we can proceed.
Press enter to accept the default setting (shown in brackets).
URL used to access this NodeBB (http://localhost:4567) https://forum.example.com
Please enter a NodeBB secret (44fd62bc-5047-4414-a4ca-83105740b624)
Would you like to submit anonymous plugin usage to nbbpm? (yes) no
Which database to use (mongo) postgres
2022-09-10T10:10:43.237Z [2633] - info:
Now configuring postgres database:
Host IP or address of your PostgreSQL instance (127.0.0.1)
Host port of your PostgreSQL instance (5432)
PostgreSQL username nbbuser
Password of your PostgreSQL database
PostgreSQL database name (nodebb) nodebbdb
Enable SSL for PostgreSQL database access (false)
........Para o valor da URL usada para acessar este NodeBB, escolha a URL final que você deseja acessar o fórum. Se você acessar o fórum pelo IP do seu servidor, insira isso ou insira o domínio completo do fórum. Aqui, vamos inserir https://forum.example.com. Escolha não como resposta à pergunta sobre enviar o uso anônimo de plugins. Digite postgres como o tipo de banco de dados.
Em seguida, escolha o IP e a porta padrão pressionando enter e insira seu nome de usuário do PostgreSQL, que é quando você insere nbbuser e a senha que você escolheu anteriormente para esse nome de usuário ao configurar o MongoDB. Seu banco de dados nodebbdb deve ser escolhido.
Você também será solicitado a criar um usuário administrador e seus detalhes.
.....
2022-09-10T10:11:14.121Z [2633] - warn: No administrators have been detected, running initial user setup
Administrator username navjot
Administrator email address [email protected]
Password
Confirm Password
.....
....
2022-09-10T10:14:28.160Z [2633] - info: [build] Asset compilation successful. Completed in 118.777sec.
=================================================================================================================================================================
NodeBB Setup Completed. Run "./nodebb start" to manually start your NodeBB server.Uma vez que a configuração esteja completa, execute o seguinte comando para iniciar o NodeBB.
$ ./nodebb start
Starting NodeBB
"./nodebb stop" to stop the NodeBB server
"./nodebb log" to view server output
"./nodebb help" for more commandsSaia do usuário NodeBB.
$ exitPasso 7 - Executar o NodeBB como um Serviço do Sistema
O serviço NodeBB não será executado após uma reinicialização do sistema. Para evitar iniciar o NodeBB toda vez, precisamos instalá-lo como um Serviço do Sistema.
Pare o serviço NodeBB primeiro. Mude para o diretório do NodeBB e, em seguida, execute o comando diretamente usando o comando sudo -u.
$ cd /var/www/html/nodebb
$ sudo -u nodebb ./nodebb stopExecute o seguinte comando para criar e editar o arquivo de configuração da unidade nodebb.service do systemd.
$ sudo nano /etc/systemd/system/nodebb.serviceCole o seguinte código no 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.targetAqui escolhemos o nome de usuário como nodebb, que criamos no Passo 6, e o caminho que escolhemos para instalar o NodeBB.
Habilite o serviço NodeBB.
$ sudo systemctl enable nodebbInicie o serviço NodeBB.
$ sudo systemctl start nodebbVerifique o status do serviço.
$ sudo systemctl status nodebb
? nodebb.service - NodeBB
Loaded: loaded (/etc/systemd/system/nodebb.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-11 21:41:07 UTC; 2s ago
Docs: https://docs.nodebb.org
Main PID: 26844 (node)
Tasks: 18 (limit: 2237)
Memory: 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]: Started 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]: This program comes with ABSOLUTELY NO WARRANTY.
Sep 11 21:41:07 forum nodebb[26844]: This is free software, and you are welcome to redistribute it under certain conditions.
Sep 11 21:41:07 forum nodebb[26844]: For the full license, please visit: http://www.gnu.org/copyleft/gpl.html
Sep 11 21:41:07 forum nodebb[26844]: Clustering enabled: Spinning up 1 process(es).
Sep 11 21:41:08 forum nodebb[26855]: 2022-09-11T21:41:08.002Z [4567/26855] - info: Initializing NodeBB v2.5.2 https://forum.example.comPasso 8 - Instalar Nginx
O Ubuntu 22.04 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.
Importe a chave de assinatura do Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullAdicione o repositório para a versão estável do 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.listAtualize os repositórios do sistema.
$ sudo apt updateInstale o Nginx.
$ sudo apt install nginxVerifique a instalação.
$ nginx -v
nginx version: nginx/1.22.0Inicie o servidor Nginx.
$ sudo systemctl start nginxPasso 9 - Instalar SSL
Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.
O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.
$ sudo snap install core
$ sudo snap refresh coreInstale o Certbot.
$ sudo snap install --classic certbotUse o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbotExecute o seguinte comando para gerar um Certificado SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d forum.example.comO comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/forum.example.com em seu servidor.
Gere um certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Para verificar se a renovação do SSL está funcionando bem, faça um teste do processo.
$ sudo certbot renew --dry-runSe você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.
Passo 10 - Configurar Nginx
Abra o arquivo /etc/nginx/nginx.conf para edição.
$ sudo nano /etc/nginx/nginx.confAdicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Crie e abra o arquivo /etc/nginx/conf.d/nodebb.conf para edição.
$ sudo nano /etc/nginx/conf.d/nodebb.confCole o seguinte código nele. Substitua forum.example.com pelo seu nome de domínio. Certifique-se de que o valor de client_max_body_size esteja definido como 25MB para definir o tamanho de upload para o fórum.
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; # Enable 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;
# Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
# prevent replay attacks.
#
# @see: 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 ---
# fetch OCSP records from URL in ssl_certificate and cache them
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 / {
# Socket.IO Support
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; # no trailing slash
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;
}
}
# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the "$ssl_early_data" variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique sua configuração do Nginx.
$ sudo nginx -tReinicie o servidor Nginx.
$ sudo systemctl restart nginxPasso 11 - Acessar e Configurar o Fórum
Você pode acessar o fórum visitando a URL https://forum.example.com em seu navegador. Você verá a seguinte página.

Clique na página de login e insira as credenciais do administrador que você criou no passo 6.

Você estará logado. Em seguida, clique no ícone mais à direita na parte superior da barra de menu para acessar o painel de administração.
A partir daqui, você pode gerenciar o fórum. Expanda-o instalando temas e plugins.

Após instalar qualquer tema e plugin, você deve reconstruir e reiniciar o fórum usando o botão no canto superior direito do painel de administração, conforme mostrado aqui.
Certifique-se de configurar seu serviço de e-mail indo para Painel >> Configurações >> E-mail para que os usuários do seu fórum possam receber e-mails. Selecione as seguintes configurações para garantir as melhores configurações de entrega de e-mail.

Role para baixo na página e selecione um remetente personalizado no menu suspenso ou use Remetente personalizado se seu serviço SMTP não estiver na lista. Para nosso tutorial, estamos usando o serviço SES.

Clique no ícone de disquete para salvar as configurações no canto inferior direito.
Role para baixo até o final da página para enviar um e-mail de teste. Por padrão, ele enviará um modelo de e-mail banido. Você pode selecionar qualquer outro modelo de e-mail para testar. Enviaremos o e-mail de boas-vindas.

Você receberá um e-mail de teste conforme mostrado abaixo confirmando as configurações.

Conclusão
Isso conclui nosso tutorial sobre como instalar o fórum NodeBB usando o banco de dados PostgreSQL e Nginx em um servidor Ubuntu 22.04. Se você tiver alguma dúvida, poste nos comentários abaixo.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.