Sådan installeres NodeBB-forum på Fedora 28

NodeBB er et Node.js-baseret forum. Den bruger web-sockets til øjeblikkelige interaktioner og meddelelser i realtid. NodeBB-kildekoden er offentligt hostet på Github . Denne guide vil lede dig gennem NodeBB-installationsprocessen på en frisk Fedora 28 Vultr-instans, der bruger Node.js, MongoDB som en database, Nginx som en omvendt proxy og Acme.sh til SSL-certifikater.

Krav

NodeBB kræver, at følgende software er installeret:

  • Git
  • Node.js version 6.9.0 eller nyere
  • MongoDB version 2.6 eller nyere
  • Nginx
  • Minimum 1024MB RAM
  • Domænenavn med A/ AAAArecords opsat

Før du begynder

Tjek Fedora-versionen.

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

Opret en ny ikke-rootbrugerkonto med sudoadgang og skift til den.

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

BEMÆRK : Erstat johndoemed dit brugernavn.

Indstil tidszonen.

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

Sørg for, at dit system er opdateret.

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

Installer nødvendige pakker.

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

For nemheds skyld skal du deaktivere SELinux og Firewall.

sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld

Installer Node.js

NodeBB er drevet af Node.js, og det skal derfor installeres. Installation af den aktuelle LTS-version af Node.js anbefales.

Installer Node.js.

sudo dnf install -y nodejs

Bekræft installationen af ​​Node.js og npm.

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

Installer og konfigurer MongoDB

MongoDB er standarddatabasen for NodeBB.

Installer MongoDB.

sudo dnf install -y mongodb mongodb-server

Tjek versionen.

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

Aktiver og start MongoDB-tjenesten.

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

Opret en MongoDB-database og bruger til NodeBB.

Forbind først til MongoDB-serveren.

mongo

Skift til den indbyggede admindatabase.

> use admin

Opret en administrativ bruger.

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

BEMÆRK: Udskift pladsholderen <Enter a secure password>med din egen valgte adgangskode.

Tilføj en ny database kaldet nodebb.

> use nodebb

Databasen vil blive oprettet og kontekst skiftet til nodebb. Opret derefter nodebbbrugeren med de relevante rettigheder.

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

BEMÆRK: Igen, udskift pladsholderen <Enter a secure password>med din egen valgte adgangskode.

Forlad Mongo-skallen.

> quit()

Genstart MongoDB og bekræft, at den tidligere oprettede administrative bruger kan oprette forbindelse.

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

Installer og konfigurer Nginx

Installer Nginx.

sudo dnf install -y nginx

Tjek versionen.

sudo nginx -v
# nginx version: nginx/1.12.1

Aktiver og start Nginx.

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

NodeBB kører som standard på port 4567. For at undgå at skrive http://example.com:4567, vil vi konfigurere Nginx som en omvendt proxy for NodeBB-applikationen. Hver anmodning på port 80eller 443( hvis SSL bruges ) vil blive videresendt til port 4567.

Kør sudo vim /etc/nginx/conf.d/nodebb.confog udfyld den med den grundlæggende reverse proxy-konfiguration nedenfor.

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";
  }

}

I konfigurationen ovenfor skal du opdatere server_namedirektivet med dit domæne/værtsnavn.

Tjek konfigurationen.

sudo nginx -t

Genindlæs Nginx.

sudo systemctl reload nginx.service

Installer Acme.sh-klient og få et Let's Encrypt-certifikat (valgfrit)

Det er ikke nødvendigt at sikre dit forum med HTTPS, men det vil sikre dit websteds trafik. Acme.sh er en ren unix shell-software til at opnå SSL-certifikater fra Let's Encrypt med nul afhængigheder.

Download og installer 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

Tjek versionen.

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

Få RSA- og ECDSA-certifikater for forum.example.comdomænet/værtsnavnet.

# 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

Efter at have kørt kommandoerne ovenfor, vil dine certifikater og nøgler være i følgende mapper:

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

Efter at have fået certifikater fra Let's Encrypt, skal vi konfigurere Nginx til at bruge dem.

Kør sudo vim /etc/nginx/conf.d/nodebb.configen og konfigurer Nginx som en HTTPS omvendt proxy.

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";
  }

}

Tjek konfigurationen.

sudo nginx -t

Genindlæs Nginx.

sudo systemctl reload nginx.service

Installer NodeBB

Opret en dokumentrodmappe.

sudo mkdir -p /var/www/nodebb

Skift ejerskab af /var/www/nodebbbiblioteket til johndoe.

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

Naviger til dokumentets rodmapp.

cd /var/www/nodebb

Klon den seneste NodeBB ind i dokumentets rodmapp.

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

Kør kommandoen NodeBB setup og besvar hvert spørgsmål, når du bliver bedt om det.

./nodebb setup

Når NodeBB-opsætningen er fuldført, skal du køre for ./nodebb startat starte din NodeBB-server manuelt.

./nodebb start

Efter denne kommando vil du være i stand til at få adgang til dit forum i din webbrowser.

Kør NodeBB som en systemtjeneste

Når det startes via ./nodebb start, vil NodeBB ikke automatisk starte op igen, når systemet genstarter. For at undgå det, bliver vi nødt til at konfigurere NodeBB som en systemtjeneste.

Hvis det kører, stop NodeBB.

./nodebb stop

Opret en ny nodebbbruger.

sudo useradd nodebb

Skift ejerskabet af /var/www/nodebbmappen til nodebbbruger.

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

Opret nodebb.servicesystemd unit config-filen. Denne enhedsfil vil håndtere opstart af NodeBB-dæmonen. Kør sudo vim /etc/systemd/system/nodebb.serviceog udfyld filen med følgende indhold.

[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

BEMÆRK: Indstil brugernavn og mappestier i henhold til dine valgte navne.

Aktiver nodebb.serviceved genstart og start med det samme nodebb.service.

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

Tjek nodebb.servicestatus.

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

Det er det. Din NodeBB-instans er nu oppe og køre.


Sådan installeres BigTree CMS på en Fedora 26 LAMP VPS

Sådan installeres BigTree CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? BigTree CMS 4.2 er et hurtigt og let, gratis og open source, enterprise-grade content management system (CMS) med omfattende

Sådan installeres Koel på Fedora 28

Sådan installeres Koel på Fedora 28

Bruger du et andet system? Koel er en simpel webbaseret personlig lydstreaming-app skrevet i Vue på klientsiden og Laravel på serversiden. Koe

Sådan installeres Grav CMS på Fedora 28

Sådan installeres Grav CMS på Fedora 28

Bruger du et andet system? Grav er et open source flad-fil CMS skrevet i PHP. Grav kildekode er offentligt hostet på GitHub. Denne vejledning viser dig, hvordan t

Installation af Akaunting på Fedora 28

Installation af Akaunting på Fedora 28

Bruger du et andet system? Akaunting er en gratis open source og online regnskabssoftware designet til små virksomheder og freelancere. Den er bygget vid

Sådan installeres Tiny Tiny RSS Reader på en Fedora 26 LAMP VPS

Sådan installeres Tiny Tiny RSS Reader på en Fedora 26 LAMP VPS

Bruger du et andet system? Tiny Tiny RSS Reader er en gratis og open source selv-hostet webbaseret nyhedsfeed (RSS/Atom) læser og aggregator, designet til at allo

Sådan installeres InvoicePlane på Fedora 28

Sådan installeres InvoicePlane på Fedora 28

Bruger du et andet system? InvoicePlane er en gratis og open source faktureringsapplikation. Dens kildekode kan findes på dette Github-lager. Denne guide

Installer en Minecraft-server på Fedora 26

Installer en Minecraft-server på Fedora 26

Bruger du et andet system? I denne tutorial vil jeg guide dig gennem opsætning af en Minecraft-server på en højtydende SSD VPS hos Vultr. Du vil lære ho

Sådan kompileres Nginx fra kilden på Fedora 25

Sådan kompileres Nginx fra kilden på Fedora 25

Bruger du et andet system? NGINX kan bruges som en HTTP/HTTPS-server, omvendt proxyserver, mailproxyserver, load balancer, TLS-terminator eller cachin

Sådan installeres Pagekit 1.0 CMS på en Fedora 26 LAMP VPS

Sådan installeres Pagekit 1.0 CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? Pagekit 1.0 CMS er et smukt, modulært, udvideligt og let, gratis og open source Content Management System (CMS) med

Sådan installeres Subrion 4.1 CMS på en Fedora 26 LAMP VPS

Sådan installeres Subrion 4.1 CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? Subrion 4.1 CMS er et kraftfuldt og fleksibelt open source Content Management System (CMS), der bringer et intuitivt og klart indhold

Installer TaskServer (taskd) på Fedora 26

Installer TaskServer (taskd) på Fedora 26

Bruger du et andet system? TaskWarrior er et open source-tidsstyringsværktøj, der er en forbedring af Todo.txt-applikationen og dens kloner. På grund af th

Sådan installeres CMS Made Simple 2.2 på en Fedora 26 LAMP VPS

Sådan installeres CMS Made Simple 2.2 på en Fedora 26 LAMP VPS

Bruger du et andet system? CMS Made Simple 2.2 er et fleksibelt og udvidelsesvenligt, gratis og open source Content Management System (CMS) intelligent designet til at b.

Installerer Bro IDS på Fedora 25

Installerer Bro IDS på Fedora 25

Bruger du et andet system? Introduktion Bro er en open source netværkstrafikanalysator. Det er primært en sikkerhedsmonitor, der inspicerer al trafik på en linie

Sådan installeres X-Cart 5 på Fedora 31

Sådan installeres X-Cart 5 på Fedora 31

Bruger du et andet system? X-Cart er en ekstremt fleksibel open source e-handelsplatform med tonsvis af funktioner og integrationer. X-Cart kildekoden er vært

Sådan installeres Matomo Analytics på Fedora 28

Sådan installeres Matomo Analytics på Fedora 28

Bruger du et andet system? Matomo (tidligere Piwik) er en open source-analyseplatform, et åbent alternativ til Google Analytics. Matomo-kilden er vært o

Sådan installeres MyBB på Fedora 28

Sådan installeres MyBB på Fedora 28

Bruger du et andet system? MyBB er et gratis og open source, intuitivt og udvidelsesvenligt forumprogram. MyBB-kildekoden er hostet på GitHub. Denne guide vil sho

Sådan installeres og konfigureres TaskBoard på Fedora 30

Sådan installeres og konfigureres TaskBoard på Fedora 30

Bruger du et andet system? Introduktion TaskBoard er et gratis og open source-værktøj, der kan bruges til at holde styr på ting, der skal gøres. Det giver

Sådan installeres LimeSurvey CE på Fedora 28

Sådan installeres LimeSurvey CE på Fedora 28

Bruger du et andet system? LimeSurvey er et open source-undersøgelsesprogram skrevet i PHP. LimeSurvey-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Backdrop CMS 1.8.0 på en Fedora 26 LAMP VPS

Sådan installeres Backdrop CMS 1.8.0 på en Fedora 26 LAMP VPS

Bruger du et andet system? Backdrop CMS 1.8.0 er et enkelt og fleksibelt, mobilvenligt, gratis og open source Content Management System (CMS), der giver os mulighed for

Sådan installeres Craft CMS på Fedora 29

Sådan installeres Craft CMS på Fedora 29

Bruger du et andet system? Craft CMS er et open source CMS skrevet i PHP. Craft CMS-kildekoden er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere