Πώς να εγκαταστήσετε το NodeBB Forum στο Ubuntu 18.04 LTS

Το NodeBB είναι ένα φόρουμ που βασίζεται στο Node.js. Χρησιμοποιεί υποδοχές Ιστού για άμεσες αλληλεπιδράσεις και ειδοποιήσεις σε πραγματικό χρόνο. Ο πηγαίος κώδικας NodeBB φιλοξενείται δημόσια στο Github . Αυτός ο οδηγός θα σας καθοδηγήσει στη διαδικασία εγκατάστασης του NodeBB σε μια νέα παρουσία του Ubuntu 18.04 LTS Vultr χρησιμοποιώντας Node.js, MongoDB ως βάση δεδομένων, Nginx ως αντίστροφο διακομιστή μεσολάβησης και Acme.sh για πιστοποιητικά SSL.

Απαιτήσεις

Το NodeBB απαιτεί την εγκατάσταση του παρακάτω λογισμικού:

  • Git
  • Node.js έκδοση 6.9.0 ή μεταγενέστερη
  • MongoDB έκδοση 2.6 ή μεταγενέστερη
  • Nginx
  • Ελάχιστη μνήμη RAM 1024MB
  • Όνομα τομέα με ρύθμιση A/ AAAAεγγραφές

Πριν ξεκινήσεις

Ελέγξτε την έκδοση του Ubuntu.

lsb_release -ds
# Ubuntu 18.04 LTS

Δημιουργήστε έναν νέο non-rootλογαριασμό χρήστη με sudoπρόσβαση και μεταβείτε σε αυτόν.

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

ΣΗΜΕΙΩΣΗ : Αντικαταστήστε το johndoeμε το όνομα χρήστη σας.

Ρυθμίστε τη ζώνη ώρας.

sudo dpkg-reconfigure tzdata

Βεβαιωθείτε ότι το σύστημά σας είναι ενημερωμένο.

sudo apt update && sudo apt upgrade -y

Εγκαταστήστε τα απαραίτητα πακέτα.

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

Εγκαταστήστε το Node.js

Το NodeBB οδηγείται από το Node.js και επομένως πρέπει να εγκατασταθεί. Συνιστάται η εγκατάσταση της τρέχουσας έκδοσης LTS του Node.js.

Εγκαταστήστε το Node.js από το αποθετήριο NodeSource.

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

Επαληθεύστε την εγκατάσταση των Node.js και npm.

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

Εγκαταστήστε και διαμορφώστε το MongoDB

Το MongoDB είναι η προεπιλεγμένη βάση δεδομένων για το NodeBB.

Εγκαταστήστε το MongoDB.

sudo apt install -y mongodb

Ελέγξτε την έκδοση.

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

Δημιουργήστε μια βάση δεδομένων MongoDB και έναν χρήστη για το NodeBB.

Συνδεθείτε πρώτα στον διακομιστή MongoDB.

mongo

Μετάβαση στην ενσωματωμένη adminβάση δεδομένων.

> use admin

Δημιουργήστε έναν διαχειριστή χρήστη.

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

ΣΗΜΕΙΩΣΗ: Αντικαταστήστε το σύμβολο κράτησης θέσης <Enter a secure password>με τον δικό σας κωδικό πρόσβασης που έχετε επιλέξει.

Προσθέστε μια νέα βάση δεδομένων που ονομάζεται nodebb.

> use nodebb

Η βάση δεδομένων θα δημιουργηθεί και το περιβάλλον θα αλλάξει σε nodebb. Στη συνέχεια, δημιουργήστε τον nodebbχρήστη με τα κατάλληλα δικαιώματα.

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

ΣΗΜΕΙΩΣΗ: Και πάλι, αντικαταστήστε το σύμβολο κράτησης θέσης <Enter a secure password>με τον δικό σας κωδικό πρόσβασης που έχετε επιλέξει.

Βγείτε από το κέλυφος Mongo.

> quit()

Επανεκκινήστε το MongoDB και βεβαιωθείτε ότι ο διαχειριστής χρήστης που δημιουργήθηκε νωρίτερα μπορεί να συνδεθεί.

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

Εγκαταστήστε και ρυθμίστε το Nginx

Εγκαταστήστε την πιο πρόσφατη κύρια έκδοση του Nginx από το επίσημο αποθετήριο Nginx.

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/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Ελέγξτε την έκδοση.

sudo nginx -v
# nginx version: nginx/1.15.0

Ενεργοποιήστε και ξεκινήστε το Nginx.

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

Το NodeBB εκτελείται από προεπιλογή στη θύρα 4567. Για να μην χρειαστεί να πληκτρολογήσετε http://example.com:4567, θα διαμορφώσουμε το Nginx ως αντίστροφο διακομιστή μεσολάβησης για την εφαρμογή NodeBB. Κάθε αίτημα στη θύρα 80ή 443(εάν χρησιμοποιείται SSL) θα προωθείται στη θύρα 4567.

Εκτελέστε sudo vim /etc/nginx/conf.d/nodebb.confκαι συμπληρώστε το με τη βασική διαμόρφωση αντίστροφου διακομιστή μεσολάβησης παρακάτω.

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

}

Σημείωση: Ενημερώστε την server_nameοδηγία με τον τομέα/όνομα κεντρικού υπολογιστή σας.

Ελέγξτε τη διαμόρφωση.

sudo nginx -t

Επαναφόρτωση Nginx.

sudo systemctl reload nginx.service

Εγκαταστήστε το πρόγραμμα-πελάτη Acme.sh και αποκτήστε ένα πιστοποιητικό Let's Encrypt (προαιρετικό)

Η ασφάλεια του φόρουμ σας με HTTPS δεν είναι απαραίτητη, αλλά θα εξασφαλίσει την επισκεψιμότητα του ιστότοπού σας. Το Acme.sh είναι ένα καθαρό λογισμικό κελύφους unix για τη λήψη πιστοποιητικών SSL από την Let's Encrypt με μηδενικές εξαρτήσεις.

Κατεβάστε και εγκαταστήστε το 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 your_email@example.com
cd ~
source ~/.bashrc

Ελέγξτε την έκδοση.

acme.sh --version
# v2.7.9

Λάβετε πιστοποιητικά RSA και ECDSA για 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 your_email@example.com --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 your_email@example.com --ocsp-must-staple --keylength ec-256

Αφού εκτελέσετε τις παραπάνω εντολές, τα πιστοποιητικά και τα κλειδιά σας θα βρίσκονται στους παρακάτω καταλόγους:

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

Αφού λάβουμε πιστοποιητικά από το Let's Encrypt, πρέπει να ρυθμίσουμε το Nginx για να τα χρησιμοποιήσουμε.

Εκτελέστε sudo vim /etc/nginx/conf.d/nodebb.confξανά και διαμορφώστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης 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";
  }

}

Ελέγξτε τη διαμόρφωση.

sudo nginx -t

Επαναφόρτωση Nginx.

sudo systemctl reload nginx.service

Εγκαταστήστε το NodeBB

Δημιουργήστε έναν ριζικό κατάλογο εγγράφων.

sudo mkdir -p /var/www/nodebb

Αλλάξτε την ιδιοκτησία του /var/www/nodebbκαταλόγου σε johndoe.

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

Μεταβείτε στον ριζικό φάκελο του εγγράφου.

cd /var/www/nodebb

Κλωνοποιήστε την πιο πρόσφατη έκδοση του NodeBB στον ριζικό φάκελο του εγγράφου.

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

Εκτελέστε την εντολή ρύθμισης NodeBB και απαντήστε σε κάθε ερώτηση όταν σας ζητηθεί.

./nodebb setup

Αφού ολοκληρωθεί η ρύθμιση του NodeBB, εκτελέστε ./nodebb startτη μη αυτόματη εκκίνηση του διακομιστή NodeBB.

./nodebb start

Μετά από αυτήν την εντολή, θα μπορείτε να αποκτήσετε πρόσβαση στο φόρουμ σας στο πρόγραμμα περιήγησής σας.

Εκτελέστε το NodeBB ως υπηρεσία συστήματος

Κατά την εκκίνηση μέσω ./nodebb start, το NodeBB δεν θα επανεκκινηθεί ξανά αυτόματα κατά την επανεκκίνηση του συστήματος. Για να αποφευχθεί αυτό, θα χρειαστεί να ρυθμίσουμε το NodeBB ως υπηρεσία συστήματος.

Εάν εκτελείται, σταματήστε το NodeBB.

./nodebb stop

Δημιουργήστε έναν νέο μη προνομιούχο nodebbχρήστη.

sudo adduser nodebb

Αλλάξτε την ιδιοκτησία του /var/www/nodebbκαταλόγου σε nodebbχρήστη.

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

Δημιουργήστε το nodebb.serviceαρχείο διαμόρφωσης μονάδας systemd. Αυτό το αρχείο μονάδας θα χειριστεί την εκκίνηση του δαίμονα NodeBB. Εκτελέστε sudo vim /etc/systemd/system/nodebb.serviceκαι συμπληρώστε το αρχείο με το ακόλουθο περιεχόμενο:

[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

ΣΗΜΕΙΩΣΗ: Ορίστε το όνομα χρήστη και τις διαδρομές καταλόγου σύμφωνα με τα ονόματα που έχετε επιλέξει.

Ενεργοποιήστε nodebb.serviceκατά την επανεκκίνηση και ξεκινήστε αμέσως nodebb.service.

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

Ελέγξτε την nodebb.serviceκατάσταση.

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

Αυτό είναι. Η παρουσία σας NodeBB είναι τώρα σε λειτουργία.

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα