Πώς να εγκαταστήσετε το φόρουμ NodeBB στο FreeBSD 12

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

Απαιτήσεις

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

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

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

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

uname -ro
# FreeBSD 12.0-RELEASE

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

freebsd-update fetch install
pkg update && pkg upgrade -y

Εγκαταστήστε τα απαραίτητα πακέτα εάν δεν υπάρχουν στο σύστημά σας.

pkg install -y sudo vim unzip wget git bash socat gcc8 pkgconf vips

Δημιουργήστε έναν νέο λογαριασμό χρήστη με το όνομα χρήστη που προτιμάτε (θα χρησιμοποιήσουμε johndoe).

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Εκτελέστε την visudoεντολή και αποσχολιάστε τη %wheel ALL=(ALL) ALLγραμμή, για να επιτρέψετε στα μέλη της wheelομάδας να εκτελέσουν οποιαδήποτε εντολή.

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Τώρα, μεταβείτε στον νέο χρήστη που δημιουργήσατε με su.

su - johndoe

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

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

sudo tzsetup

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

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

Εγκαταστήστε τα Node.js και npm.

sudo pkg install -y node10 npm-node10

Ελέγξτε τις εκδόσεις.

node -v && npm -v
# v10.15.3
# 6.9.0

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

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

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

sudo pkg install -y mongodb40

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

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

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

sudo sysrc mongod_enable=yes
sudo service mongod start

Δημιουργήστε μια βάση δεδομένων και έναν χρήστη για το 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 service mongod restart
mongo -u admin -p your_password --authenticationDatabase=admin

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

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

sudo pkg install -y nginx

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

nginx -v
# nginx version: nginx/1.14.2

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

sudo sysrc nginx_enable=yes
sudo service nginx start

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

Εκτελέστε sudo vim /usr/local/etc/nginx/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οδηγία με τον τομέα/όνομα κεντρικού υπολογιστή σας.

Αποθηκεύστε το αρχείο και βγείτε με :+ W+ Q.

Τώρα πρέπει να συμπεριλάβουμε nodebb.confστο κύριο nginx.confαρχείο.

Εκτελέστε sudo vim /usr/local/etc/nginx/nginx.confκαι προσθέστε την ακόλουθη γραμμή στο http {}μπλοκ.

include nodebb.conf;

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

sudo nginx -t

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

sudo service nginx reload

Εγκαταστήστε το πρόγραμμα-πελάτη 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 ~

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

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

Λάβετε πιστοποιητικά 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 service nginx reload" --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 service nginx reload"  --keylength ec-256

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

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

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

Εκτελέστε sudo vim /usr/local/etc/nginx/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 service nginx reload

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

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

sudo mkdir -p /usr/local/www/nodebb

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

sudo chown -R johndoe:johndoe /usr/local/www/nodebb

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

cd /usr/local/www/nodebb

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

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

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

./nodebb setup

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

./nodebb start

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

Εκτελέστε το NodeBB με PM2

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

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

./nodebb stop

Εγκαταστήστε το PM2 παγκοσμίως.

sudo npm install pm2 -g

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

pm2 -v
# 3.5.0

Μεταβείτε στη ρίζα του εγγράφου NodeBB.

cd /usr/local/www/nodebb

Εκκινήστε το NodeBB μέσω PM2.

pm2 start app.js

Καταχωρίστε τη διαδικασία NodeBB.

pm2 ls

Εντοπίστε το διαθέσιμο αρχικό σύστημα.

pm2 startup

Αντιγράψτε και επικολλήστε την έξοδο αυτής της εντολής στο CLI για να ρυθμίσετε το άγκιστρο εκκίνησης.

Αποθηκεύστε τη λίστα διαδικασιών σας.

pm2 save

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

BSD, Εφαρμογές διακομιστή, Κοινωνικά

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

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. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα