Como instalar o fórum NodeBB no Fedora 28

O NodeBB é um fórum baseado no Node.js. Ele utiliza soquetes da web para interações instantâneas e notificações em tempo real. O código fonte do NodeBB está hospedado publicamente no Github . Este guia o guiará pelo processo de instalação do NodeBB em uma nova instância do Fedora 28 Vultr usando o Node.js, o MongoDB como banco de dados, o Nginx como proxy reverso e o Acme.sh para certificados SSL.

Exigências

O NodeBB requer a instalação do seguinte software:

  • Git
  • Node.js versão 6.9.0 ou posterior
  • MongoDB versão 2.6 ou posterior
  • Nginx
  • Mínimo de 1024 MB de RAM
  • Nome de domínio com A/ AAAAregistros configurados

Antes de você começar

Verifique a versão do Fedora.

cat /etc/fedora-release
# Fedora release 28 (Twenty Eight)

Crie uma nova conta de usuário não raiz com sudoacesso e mude para ela.

useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe

NOTA : Substitua johndoepelo seu nome de usuário.

Configure o fuso horário.

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Verifique se o seu sistema está atualizado.

sudo dnf check-upgrade || sudo dnf upgrade -y

Instale os pacotes necessários.

sudo dnf install -y git wget vim gcc-c++ make

Para simplificar, desative o SELinux e o Firewall.

sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld

Instale o Node.js

O NodeBB é controlado pelo Node.js e, portanto, precisa ser instalado. A instalação da versão LTS atual do Node.js é recomendada.

Instale o Node.js.

sudo dnf install -y nodejs

Verifique a instalação do Node.js e do npm.

node -v && npm -v
# v8.11.3
# 5.6.0

Instale e configure o MongoDB

MongoDB é o banco de dados padrão para o NodeBB.

Instale o MongoDB.

sudo dnf install -y mongodb mongodb-server

Verifique a versão.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

Habilite e inicie o serviço MongoDB.

sudo systemctl enable mongod.service
sudo systemctl start mongod.service

Crie um banco de dados e usuário do MongoDB para o NodeBB.

Primeiro, conecte-se ao servidor MongoDB.

mongo

Alterne para o adminbanco de dados interno.

> use admin

Crie um usuário administrativo.

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

NOTA: Substitua o espaço reservado <Enter a secure password>por sua própria senha selecionada.

Adicione um novo banco de dados chamado nodebb.

> use nodebb

O banco de dados será criado e o contexto mudado para nodebb. Em seguida, crie o nodebbusuário com os privilégios apropriados.

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

NOTA: Substitua o espaço reservado <Enter a secure password>por sua própria senha selecionada.

Saia do shell Mongo.

> quit()

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

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

Instale e configure o Nginx

Instale o Nginx.

sudo dnf install -y nginx

Verifique a versão.

sudo nginx -v
# nginx version: nginx/1.12.1

Habilite e inicie o Nginx.

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

Por padrão, o NodeBB é executado na porta 4567. Para evitar a digitação http://example.com:4567, configuraremos o Nginx como um proxy reverso para o aplicativo NodeBB. Toda solicitação na porta 80ou 443( se o SSL for usado ) será encaminhada para a porta 4567.

Execute sudo vim /etc/nginx/conf.d/nodebb.confe preencha-o com a configuração básica de proxy reverso abaixo.

server {

  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  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_hide_header X-Powered-By;
    proxy_set_header X-Nginx-Proxy true;

    proxy_pass http://127.0.0.1:4567;
    proxy_redirect off;

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

}

Na configuração acima, atualize a server_namediretiva com seu domínio / nome de host.

Verifique a configuração.

sudo nginx -t

Recarregue o Nginx.

sudo systemctl reload nginx.service

Instale o cliente Acme.sh e obtenha um certificado Let's Encrypt (opcional)

Proteger seu fórum com HTTPS não é necessário, mas protegerá o tráfego do seu site. O Acme.sh é um software shell unix puro para obter certificados SSL do Let's Encrypt com zero dependências.

Baixe e instale o Acme.sh.

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc

Verifique a versão.

/etc/letsencrypt/acme.sh --version
# v2.7.9

Obtenha certificados RSA e ECDSA para o forum.example.comdomínio / nome do host.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256

Depois de executar os comandos acima, seus certificados e chaves estarão nos seguintes diretórios:

  • RSA: /etc/letsencrypt/forum.example.com
  • ECC / ECDSA: /etc/letsencrypt/forum.example.com_ecc

Após obter os certificados do Let's Encrypt, precisamos configurar o Nginx para usá-los.

Execute sudo vim /etc/nginx/conf.d/nodebb.confnovamente e configure o Nginx como um proxy reverso HTTPS.

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  # RSA
  ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.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;

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

}

Verifique a configuração.

sudo nginx -t

Recarregue o Nginx.

sudo systemctl reload nginx.service

Instale o NodeBB

Crie um diretório raiz do documento.

sudo mkdir -p /var/www/nodebb

Altere a propriedade do /var/www/nodebbdiretório para johndoe.

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

Navegue para a pasta raiz do documento.

cd /var/www/nodebb

Clone o NodeBB mais recente na pasta raiz do documento.

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

Execute o comando NodeBB setup e responda a cada pergunta quando solicitado.

./nodebb setup

Após a conclusão da instalação do NodeBB, execute ./nodebb startpara iniciar manualmente o servidor NodeBB.

./nodebb start

Após este comando, você poderá acessar seu fórum no seu navegador da web.

Execute o NodeBB como um serviço do sistema

Quando iniciado via ./nodebb start, o NodeBB não será iniciado automaticamente novamente quando o sistema reiniciar. Para evitar isso, precisaremos configurar o NodeBB como um serviço do sistema.

Se estiver em execução, pare o NodeBB.

./nodebb stop

Crie um novo nodebbusuário.

sudo useradd nodebb

Mude a propriedade do /var/www/nodebbdiretório para nodebbusuário.

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

Crie o nodebb.servicearquivo de configuração da unidade systemd. Este arquivo de unidade tratará da inicialização do deamon do NodeBB. Execute sudo vim /etc/systemd/system/nodebb.servicee preencha o arquivo com o seguinte conteúdo.

[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: Defina os caminhos de nome de usuário e diretório de acordo com os nomes escolhidos.

Ative nodebb.servicena reinicialização e inicie imediatamente nodebb.service.

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

Verifique o nodebb.servicestatus.

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

É isso aí. Sua instância do NodeBB está agora em funcionamento.



Leave a Comment

Como ativar o TLS 1.3 no Apache no Fedora 30

Como ativar o TLS 1.3 no Apache no Fedora 30

Usando um sistema diferente? O TLS 1.3 é uma versão do protocolo TLS (Transport Layer Security) publicada em 2018 como um padrão proposto no RFC 8446

Como instalar o osTicket no Fedora 30

Como instalar o osTicket no Fedora 30

Usando um sistema diferente? o osTicket é um sistema de bilheteria de suporte ao cliente de código aberto. O código fonte do osTicket está hospedado publicamente no Github. Neste tutorial

Como instalar o WonderCMS no Fedora 29

Como instalar o WonderCMS no Fedora 29

Usando um sistema diferente? O WonderCMS é um CMS de arquivo simples, rápido e pequeno, de código aberto, escrito em PHP. O código fonte do WonderCMS está hospedado no Github. Este guia irá

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL

Como instalar o MyBB no Fedora 28

Como instalar o MyBB no Fedora 28

Usando um sistema diferente? O MyBB é um programa de fórum gratuito, de código aberto, intuitivo e extensível. O código fonte do MyBB está hospedado no GitHub. Este guia mostrará

Como instalar o Reader Self 3.5 RSS Reader em um FPS 26 LAMP VPS

Como instalar o Reader Self 3.5 RSS Reader em um FPS 26 LAMP VPS

Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel

Como instalar o RainLoop Webmail no Fedora 28

Como instalar o RainLoop Webmail no Fedora 28

Usando um sistema diferente? O RainLoop é um cliente de email simples, moderno e rápido baseado na Web. O código-fonte do RainLoop está hospedado no GitHub. Este guia irá mostrar-lhe como

Como instalar o Gitea no Fedora 29

Como instalar o Gitea no Fedora 29

Usando um sistema diferente? O Gitea é um sistema de controle de versão auto-hospedado alternativo, de código aberto, desenvolvido com o Git. Gitea está escrito em Golang e é

Como instalar a pasta 2.1 em um VPS FAMP 26 LAMP

Como instalar a pasta 2.1 em um VPS FAMP 26 LAMP

Usando um sistema diferente? O Paste 2.1 é um aplicativo pastebin simples e flexível, gratuito e de código aberto para armazenar código, texto e muito mais. Foi inicial

Como instalar o ProcessWire CMS 3.0 em um VPS FAMP 26 LAMP

Como instalar o ProcessWire CMS 3.0 em um VPS FAMP 26 LAMP

Usando um sistema diferente? O ProcessWire CMS 3.0 é um CMS (Content Management System) simples, flexível e poderoso, de código aberto e gratuito. ProcessWire CMS 3.

Como instalar o Omeka Classic 2.4 CMS no Fedora 26 LAMP VPS

Como instalar o Omeka Classic 2.4 CMS no Fedora 26 LAMP VPS

Usando um sistema diferente? Omeka Classic 2.4 CMS é uma plataforma de publicação digital de código aberto e gratuita e um Sistema de gerenciamento de conteúdo (CMS) para compartilhamento de documentos

Como instalar o MODX Revolution em um LAMP VPS do Fedora 26

Como instalar o MODX Revolution em um LAMP VPS do Fedora 26

Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto

Como instalar o álbum de fotos do Lychee 3.1 em um VPS FAMP 26 LAMP

Como instalar o álbum de fotos do Lychee 3.1 em um VPS FAMP 26 LAMP

Usando um sistema diferente? O Lychee 3.1 Photo Album é uma ferramenta de gerenciamento de fotos simples e flexível, gratuita e de código aberto, executada em um servidor VPS. Instala

Instale o HTMLDoc no Fedora 29

Instale o HTMLDoc no Fedora 29

Usando um sistema diferente? O HTMLDoc analisará dinamicamente documentos Postscript (PDF 1.6) a partir de Hipertexto gravado corretamente (HTML 3.2). Isso permitirá que você t

Como compilar o Nginx da fonte no Fedora 25

Como compilar o Nginx da fonte no Fedora 25

Usando um sistema diferente? O NGINX pode ser usado como servidor HTTP / HTTPS, servidor proxy reverso, servidor proxy de correio, balanceador de carga, terminador TLS ou cache

Como instalar o ImpressPages CMS 5.0 em um VPS FAMP 26 LAMP

Como instalar o ImpressPages CMS 5.0 em um VPS FAMP 26 LAMP

Usando um sistema diferente? O ImpressPages CMS 5.0 é um sistema de gerenciamento de conteúdo (CMS) simples e eficaz, gratuito e de código aberto, fácil de usar e baseado em MVC

Como instalar o Pagekit 1.0 CMS em um LAMP VPS do Fedora 26

Como instalar o Pagekit 1.0 CMS em um LAMP VPS do Fedora 26

Usando um sistema diferente? O Pagekit 1.0 CMS é um sistema de gerenciamento de conteúdo (CMS) bonito, modular, extensível e leve, gratuito e de código aberto com

Como instalar o Matomo Analytics no Fedora 28

Como instalar o Matomo Analytics no Fedora 28

Usando um sistema diferente? O Matomo (anteriormente Piwik) é uma plataforma de análise de código aberto, uma alternativa aberta ao Google Analytics. Fonte Matomo está hospedado o

Como implantar o Ghost no Fedora 25

Como implantar o Ghost no Fedora 25

Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que está ganhando popularidade entre desenvolvedores e usuários comuns desde seu lançamento em 2013. Eu

Como instalar o Couch CMS 2.0 em um LAMP VPS do Fedora 26

Como instalar o Couch CMS 2.0 em um LAMP VPS do Fedora 26

Usando um sistema diferente? O Couch CMS é um sistema de gerenciamento de conteúdo (CMS) simples e flexível, gratuito e de código aberto que permite que os web designers

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.