Sådan installeres NodeBB-forum på Debian 9

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 ny Debian 9 Vultr-instans, der bruger Node.js, MongoDB som database, Nginx som 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 Debian-versionen.

lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)

Sørg for, at dit system er opdateret.

apt update && apt upgrade -y

Installer nødvendige pakker.

apt install -y sudo dirmngr git build-essential apt-transport-https

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

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

BEMÆRK : Erstat johndoemed dit brugernavn.

Indstil tidszonen.

sudo dpkg-reconfigure tzdata

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 fra NodeSource-lageret.

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

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

node -v && npm -v
# v10.15.0
# 5.6.0

Installer og konfigurer MongoDB

MongoDB er standarddatabasen for NodeBB.

Installer MongoDB fra det officielle MongoDB-lager.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt install -y mongodb-org

Tjek versionen.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.00
# db version v4.0.0

Start og aktiver MongoDB.

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

Opret en MongoDB-database og bruger til NodeBB.

Opret forbindelse til MongoDB.

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 den seneste mainline-version af Nginx fra det officielle Nginx-lager.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Tjek versionen.

sudo nginx -v
# nginx version: nginx/1.15.0

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 vist 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.

acme.sh --version
# v2.7.9

Få RSA- og ECDSA-certifikater for forum.example.com.

# 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 ovenstående kommandoer, 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 i dokumentets rodmappe.

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 du kører, stop NodeBB.

./nodebb stop

Opret en ny nodebbbruger:

sudo adduser nodebb

Skift ejerskabet af /var/www/nodebbbiblioteket til nodebb.

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

Opret en nodebb.servicesystemd unit config fil. Denne enhedsfil vil håndtere opstart af NodeBB-deamon. 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.


Opsæt Cacti på Debian Jessie

Opsæt Cacti på Debian Jessie

Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed

Konfigurer iRedMail på Debian Wheezy

Konfigurer iRedMail på Debian Wheezy

Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve

Sådan konfigureres uovervågede opgraderinger på Debian 9 (Stretch)

Sådan konfigureres uovervågede opgraderinger på Debian 9 (Stretch)

Bruger du et andet system? Hvis du køber en Debian-server, bør du altid have de nyeste sikkerhedsrettelser og opdateringer, uanset om du sover eller ej

Opsæt din egen DNS-server på Debian/Ubuntu

Opsæt din egen DNS-server på Debian/Ubuntu

Denne vejledning forklarer, hvordan man opsætter en DNS-server ved hjælp af Bind9 på Debian eller Ubuntu. Gennem hele artiklen skal du erstatte dit-domænenavn.com i overensstemmelse hermed. Ved th

Kompiler og installer Nginx med PageSpeed-modulet på Debian 8

Kompiler og installer Nginx med PageSpeed-modulet på Debian 8

I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at

Sådan installeres Kanboard på Debian 9

Sådan installeres Kanboard på Debian 9

Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere

Sådan installeres Gitea på Debian 9

Sådan installeres Gitea på Debian 9

Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er

Installer Lynis på Debian 8

Installer Lynis på Debian 8

Introduktion Lynis er et gratis, open source-systemrevisionsværktøj, der bruges af mange systemadministratorer til at verificere integriteten og hærde deres systemer. jeg

Sådan installeres Thelia 2.3 på Debian 9

Sådan installeres Thelia 2.3 på Debian 9

Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Sådan installeres Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Sådan installeres Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Golang er et programmeringssprog udviklet af Google. Takket være sin alsidighed, enkelhed og pålidelighed er Golang blevet en af ​​de mest populære

Nulstil MySQL Root Password på Debian/Ubuntu

Nulstil MySQL Root Password på Debian/Ubuntu

Hvis du har glemt din MySQL root-adgangskode, kan du nulstille den ved at følge trinene i denne artikel. Processen er ret enkel og fungerer på disse

Oprettelse af netværksshares ved hjælp af Samba på Debian

Oprettelse af netværksshares ved hjælp af Samba på Debian

Der er tidspunkter, hvor vi skal dele filer, der skal kunne ses af Windows-klienter. Da Fuse-baserede systemer kun virker på Linux, må du godt introducere

Opsætning af Counter Strike: Source på Debian

Opsætning af Counter Strike: Source på Debian

I denne vejledning vil vi opsætte en Counter Strike: Source-spilserver på Debian 7. Disse kommandoer blev testet på Debian 7, men de burde også virke o

Sådan installeres Unturned 2.2.5 på Debian 8

Sådan installeres Unturned 2.2.5 på Debian 8

I denne vejledning lærer du, hvordan du opsætter en Unturned 2.2.5-server på en Vultr VPS, der kører Debian 8. Bemærk: Dette er en redigeret version af Unturned, der ikke

Sådan installeres Cachet på Debian 8

Sådan installeres Cachet på Debian 8

I denne vejledning lærer du, hvordan du installerer Cachet på Debian 8. Cachet er et kraftfuldt open source-statussidesystem. Installation Denne vejledning er i gang

Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Introduktion I denne skrive-up, gå godt igennem, hvordan du sikkerhedskopierer flere MySQL- eller MariaDB-databaser, der sidder på den samme maskine ved hjælp af et brugerdefineret bash-script

Opsætning af Chroot på Debian

Opsætning af Chroot på Debian

Denne artikel vil lære dig, hvordan du opsætter et chroot-fængsel på Debian. Jeg går ud fra, at du bruger Debian 7.x. Hvis du kører Debian 6 eller 8, kan dette virke, men

Sådan installeres Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Sådan installeres Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Bruger du et andet system? Reader Self 3.5 er en enkel og fleksibel, gratis og open source, selvhostet RSS-læser og Google Reader-alternativ. Læser Sel

Sådan installeres Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Sådan installeres Backdrop CMS 1.8.0 på en Debian 9 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

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