NodeBB instalação · 10 min read · Oct 19, 2025

Como instalar o Fórum NodeBB com Nginx e SSL Let's Encrypt no Ubuntu 20.04 LTS

NodeBB é um software de fórum moderno alimentado por Node.js que usa MongoDB/Redis como plataformas de banco de dados. Ele utiliza web sockets para interações instantâneas e notificações em tempo real.

Neste tutorial, aprenderemos como instalar o fórum NodeBB em um servidor baseado em Ubuntu 20.04.

Pré-requisitos

  • Um servidor baseado em Ubuntu 20.04 com um usuário não-root com privilégios sudo.
  • Mínimo de 2GB de RAM. Se o seu servidor tiver apenas 1GB de RAM, é melhor habilitar uma partição swap.
  • Certifique-se de que tudo está atualizado. shell $ sudo apt update && sudo apt upgrade
  • Alguns pacotes essenciais. Alguns desses já estarão no seu servidor. shell $ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release

Passo 1 - Configurar o Firewall

O primeiro passo é configurar o firewall. O Ubuntu vem com ufw (Uncomplicated Firewall) por padrão.

Verifique se o firewall está em execução.

$ sudo ufw status

Você deve obter a seguinte saída.

Status: inactive

Permita a porta SSH para que o firewall não interrompa a conexão atual ao habilitá-lo.

$ sudo ufw allow OpenSSH

Permita a porta 27017 para o servidor MongoDB e a porta 4567 para executar o fórum NodeBB. Permita também as portas HTTP e HTTPS.

$ sudo ufw allow 27017
$ sudo ufw allow 4567
$ sudo ufw allow 80
$ sudo ufw allow 443

Habilite o Firewall.

$ sudo ufw enable
Comando pode interromper conexões ssh existentes. Prosseguir com a operação (y|n)? y
Firewall está ativo e habilitado na inicialização do sistema

Verifique o status do firewall novamente.

$ sudo ufw status

Você deve ver uma saída semelhante.

Status: active

Para                         Ação      De
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
4567                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)
4567 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Passo 2 - Instalar o Node.js

Vamos instalar a versão LTS do Node.js aqui. Execute os seguintes comandos para instalar o Node.js.

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

Verifique se o Node está instalado corretamente.

$ node --version

Você deve ver uma saída semelhante.

v12.18.3

Verifique o npm também.

$ npm --version
6.14.6

Passo 3 - Instalar o MongoDB

O MongoDB é o banco de dados padrão para o NodeBB. Você também pode usar o Redis em vez do MongoDB. Vamos cobrir ambos os bancos de dados em nosso tutorial.

O repositório do MongoDB para Ubuntu 20.04 ainda não está pronto e o próprio Ubuntu carrega uma versão muito antiga. Para nosso propósito, usaremos o repositório do MongoDB para 18.04 que funciona muito bem. Você pode atualizar a lista de pacotes com o repositório mais recente assim que o suporte oficial estiver disponível.

Importe a chave pública para o MongoDB.

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

Adicione o repositório do MongoDB.

$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

Atualize o banco de dados de pacotes local.

$ sudo apt update

Instale o MongoDB.

$ sudo apt install mongodb-org

Verifique a instalação do MongoDB.

$ mongod --version
db version v4.2.8
...

Inicie o serviço MongoDB.

$ sudo systemctl start mongod

Habilite o serviço MongoDB.

$ sudo systemctl enable mongod

Verifique o status do serviço MongoDB.

$ sudo systemctl status mongod

Passo 4 - Configurando o MongoDB

A administração do Mongo é feita através do shell do MongoDB. A instalação padrão do MongoDB escuta na porta 27017.

Acesse o shell do MongoDB.

$ mongo

Mude para o banco de dados admin embutido.

> use admin

Crie um usuário administrativo. Este não é o mesmo que o usuário administrador do NodeBB.

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

Troque o espaço reservado “suaSenha” pela sua própria senha.

Adicione um novo banco de dados para o NodeBB.

> use nodebb

Em seguida, crie o usuário nodebb para gerenciar o banco de dados nodebb.

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

A permissão readwrite permite que o NodeBB armazene e recupere dados do banco de dados nodebb. A permissão clustermonitor permite que o NodeBB tenha acesso somente leitura às estatísticas do banco de dados que são visíveis através de seu painel de administração.

Saia do shell do Mongo.

> quit()

Abra o arquivo de configuração do MongoDB para edição.

$ sudo nano /etc/mongod.conf

Adicione a seguinte linha ao final do arquivo.

security:
  authorization: enabled

Reinicie o MongoDB e verifique o usuário administrativo criado anteriormente.

$ sudo systemctl restart mongod
$ mongo -u admin -p suaSenha --authenticationDatabase=admin

Você deve ver o prompt do Mongo se tudo foi configurado corretamente.

Passo 5 - Instalar o Git

Antes de prosseguirmos para instalar o NodeBB, precisamos instalar o Git.

Execute o seguinte comando para instalar o Git.

$ sudo apt install git

Execute os seguintes comandos para realizar a configuração inicial do Git.

$ git config --global user.name "Seu Nome"
$ git config --global user.email "[email protected]"

Passo 6 - Instalar o NodeBB

Não é aconselhável executar o NodeBB como usuário root.

Crie um usuário sem privilégios.

$ sudo adduser nodebb

Defina uma senha de sua escolha e pule as outras opções.

Crie o diretório onde seu fórum NodeBB ficará.

$ sudo mkdir /var/www/nodebb

Altere a propriedade da pasta para o usuário recém-criado.

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

Faça login no usuário recém-criado.

$ su nodebb

Mude para o diretório de instalação do NodeBB.

$ cd /var/www/nodebb

Para 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 v1.14.2 https://github.com/NodeBB/NodeBB.git .

Aqui clonamos a versão v1.14.2 do NodeBB, que era a versão estável mais recente no momento da redação do tutorial. Você pode encontrar o branch estável mais recente na página de Últimos Lançamentos do NodeBB.

O NodeBB vem com uma utilidade de linha de comando. Use o seguinte comando para instalar o NodeBB.

$ ./nodebb setup

Você pode pressionar enter para escolher o valor padrão.

Para o valor de URL usada para acessar este NodeBB, escolha a URL final que você deseja acessar o fórum. Se você acessar o fórum através do IP do seu servidor, insira isso ou insira o domínio completo do fórum. Aqui vamos inserir http://forum.example.com.

Continue escolhendo valores padrão até que você seja solicitado pelo nome de usuário do MongoDB, que é quando você insere nodebb e a senha que escolheu anteriormente para esse nome de usuário ao configurar o MongoDB. Seu banco de dados nodebb deve ser escolhido. Você também será solicitado a criar um usuário administrador e seus detalhes.

Uma vez que a configuração esteja completa, execute o seguinte comando para iniciar o NodeBB.

$ ./nodebb start

Seu fórum agora está em execução. Você deve ser capaz de acessá-lo através de http://:4567.

Página Inicial Padrão do NodeBB

Você pode ver uma mensagem de erro dizendo Parece que sua conexão com o NodeBB foi perdida, por favor, aguarde enquanto tentamos reconectar. Isso acontece porque escolhemos a URL padrão para o NodeBB http://forum.example.com e não http://. Mas se você inserir o endereço IP durante a configuração, não receberá mais o erro, mas precisará configurar novamente depois que escolher um domínio para seu fórum.

Saia do usuário NodeBB.

$ exit

Passo 7 - Instalar o Nginx

O Ubuntu 20.04 por padrão carrega a versão estável mais recente do Nginx. Vamos instalar isso.

$ sudo apt install nginx

Verifique se está instalado corretamente.

$ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

Inicie e habilite o Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Abra o endereço IP do seu servidor em seu navegador da web. Você deve ver a seguinte página, o que significa que seu servidor está ativo e em execução.

Página Padrão do Nginx

Passo 8 - Configurar o Nginx

Execute o seguinte comando para adicionar um arquivo de configuração para seu site.

$ sudo nano /etc/nginx/sites-available/nodebb.conf

Cole o seguinte código no editor.

server {
    listen 80;

    server_name forum.example.com;
    
    access_log /var/log/nginx/forum.example.com.access.log;
    error_log /var/log/nginx/forum.example.com.error.log;

    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;

        # Suporte ao Socket.IO
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Pressione Ctrl + X para sair do editor e digite Y quando solicitado.

Uma vez que você tenha terminado, verifique se a configuração do Nginx está correta.

$ sudo nginx -t

Recarregue o serviço Nginx para habilitar a configuração.

$ sudo systemctl reload nginx

Visite http://forum.example.com em seu navegador para abrir o fórum NodeBB.

Página Inicial do Fórum NodeBB

Passo 9 - 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.

$ ./nodebb stop

Execute o seguinte comando para criar e editar o arquivo de configuração da unidade systemd nodebb.service.

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

Cole o seguinte código no editor.

[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

Aqui 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 nodebb

Inicie o serviço NodeBB.

$ sudo systemctl start nodebb

Verifique o status do serviço.

$ sudo systemctl status nodebb

Passo 10 - Obter um certificado SSL Let’s Encrypt

Proteger seu fórum NodeBB com HTTPS é um passo necessário para proteger o tráfego do seu site. Para este tutorial, usaremos o cliente Certbot para instalar o SSL.

Para isso, primeiro, instale a ferramenta Certbot.

$ sudo apt install certbot python3-certbot-nginx

Gere os certificados.

$ sudo certbot --nginx -d forum.example.com

Se esta for a primeira vez que você está executando o Certbot em seu sistema, você será solicitado a fornecer um endereço de e-mail e a concordar com os termos de serviço. Você também será perguntado se concorda em compartilhar dados com a fundação EFF, o que você pode recusar. Após fazer isso, o Certbot se comunicará com os servidores Let’s Encrypt e executará um desafio para verificar seus domínios.

Se isso for bem-sucedido, você será solicitado a como lidar com redirecionamentos HTTPS.

Por favor, escolha se o acesso HTTPS é obrigatório ou opcional.
-------------------------------------------------------------------------------
1: Fácil - Permitir acesso HTTP e HTTPS a esses sites
2: Seguro - Fazer todos os pedidos redirecionarem para acesso HTTPS seguro
-------------------------------------------------------------------------------
Selecione o número apropriado [1-2] e pressione [enter] (pressione 'c' para cancelar):

Selecione a opção Seguro e pressione enter. Isso garantirá que todos os pedidos ao domínio http sejam redirecionados corretamente para a versão https. Seus certificados serão então criados e seus arquivos de configuração do Nginx serão atualizados com as configurações SSL.

Seus certificados estão prontos e você pode abrir seu site agora indo para https://forum.example.com

Passo 11 - Verificar a Renovação Automática do SSL

Este é o último passo antes de encerrarmos este tutorial.

Verifique o processo de renovação fazendo um teste do processo de renovação.

$ sudo certbot renew --dry-run

Se você não receber erros, significa que você está pronto. O Certbot renovará automaticamente seus certificados para você. Você receberá um e-mail avisando sobre a expiração do certificado.

Conclusão

Isso é tudo para este tutorial. Sua configuração do fórum NodeBB está completa. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.