Απαιτήσεις
Πριν ξεκινήσεις
Εγκαταστήστε το Node.js
Εγκαταστήστε το MongoDB
Εγκαταστήστε το Acme.sh και αποκτήστε ένα πιστοποιητικό Let's Encrypt (προαιρετικό)
Εγκαταστήστε και ρυθμίστε το Nginx
Εγκαταστήστε το Wiki.js
Εγκαταστήστε και ρυθμίστε το PM2 process manager
Το Wiki.js είναι μια δωρεάν και ανοιχτού κώδικα, σύγχρονη εφαρμογή wiki που βασίζεται σε Node.js, MongoDB, Git και Markdown. Ο πηγαίος κώδικας του Wiki.js φιλοξενείται δημόσια στο Github . Αυτός ο οδηγός θα σας δείξει πώς να εγκαταστήσετε το Wiki.js σε μια νέα παρουσία του FreeBSD 11 Vultr χρησιμοποιώντας τα Node.js, MongoDB, PM2, Nginx, Git και Acme.sh.
Απαιτήσεις
Οι απαιτήσεις για την εκτέλεση του Wiki.js είναι οι εξής:
- Node.js έκδοση 6.11.1 ή μεταγενέστερη
- MongoDB έκδοση 3.2 ή μεταγενέστερη
- Έκδοση Git 2.7.4 ή μεταγενέστερη
- Ένας διακομιστής ιστού όπως Nginx, Apache, IIS, Caddy ή H2O. Αυτός ο οδηγός θα χρησιμοποιεί το Nginx.
- Ένα αποθετήριο συμβατό με το Git (δημόσιο ή ιδιωτικό) Αυτό είναι προαιρετικό
- Τουλάχιστον 512 MB RAM. Συνιστάται ιδιαίτερα η χρήση μηχανής με τουλάχιστον 1 GB μνήμης RAM.
- Όνομα τομέα με ρύθμιση
A
/ AAAA
εγγραφές. Σε αυτόν τον οδηγό θα χρησιμοποιήσουμε wiki.example.com
ως παράδειγμα τομέα.
Πριν ξεκινήσεις
Ελέγξτε την έκδοση του FreeBSD.
uname -ro
# FreeBSD 11.2-RELEASE
Βεβαιωθείτε ότι το σύστημά σας FreeBSD είναι ενημερωμένο.
freebsd-update fetch install
pkg update && pkg upgrade -y
Εγκατάσταση sudo
, vim
, unzip
, wget
, git
, bash
και socat
τα πακέτα αν δεν είναι παρούσα στο σύστημά σας.
pkg install -y sudo vim unzip wget git bash socat
Δημιουργήστε έναν νέο λογαριασμό χρήστη με το όνομα χρήστη που προτιμάτε (θα χρησιμοποιήσουμε 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
ομάδας να εκτελέσουν οποιαδήποτε εντολή.
# Uncomment by removing the hash (#) sign
%wheel ALL=(ALL) ALL
Τώρα, μεταβείτε στον νέο χρήστη που δημιουργήσατε.
su - johndoe
ΣΗΜΕΙΩΣΗ: Αντικαταστήστε το johndoe
με το όνομα χρήστη σας.
Ρυθμίστε τη ζώνη ώρας.
sudo tzsetup
Εγκαταστήστε το Node.js
Το Wiki.js απαιτεί Node.js 6.11.1 ή νεότερη έκδοση, επομένως θα χρειαστεί πρώτα να εγκαταστήσουμε την κατάλληλη έκδοση του Node.js.
Εγκαταστήστε το Node.js και το NPM.
sudo pkg install -y node8 npm-node8
Ελέγξτε τις εκδόσεις.
node -v && npm -v
# v8.12.0
# 6.4.1
Εγκαταστήστε το MongoDB
Το Wiki.js χρησιμοποιεί το MongoDB ως μηχανή βάσης δεδομένων.
Εγκαταστήστε το MongoDB.
sudo pkg install -y mongodb36
Ελέγξτε την έκδοση.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.6
# db version v3.6.6
Ενεργοποιήστε και ξεκινήστε το MongoDB.
sudo sysrc mongod_enable=yes
sudo service mongod start
Εγκαταστήστε το Acme.sh και αποκτήστε ένα πιστοποιητικό Let's Encrypt ( προαιρετικό )
Η ασφάλεια του wiki σας με HTTPS δεν είναι απαραίτητη, αλλά είναι μια καλή πρακτική για να εξασφαλίσετε την επισκεψιμότητα του ιστότοπού σας. Για να αποκτήσουμε ένα πιστοποιητικό SSL από το Let's Encrypt θα χρησιμοποιήσουμε το πρόγραμμα-πελάτη Acme.sh. Το Acme.sh είναι ένα καθαρό λογισμικό κελύφους unix για τη λήψη πιστοποιητικών SSL από την Let's Encrypt με μηδενικές εξαρτήσεις. Αυτό το καθιστά πολύ ελαφρύ σε σύγκριση με ορισμένους άλλους πελάτες πρωτοκόλλου Acme που απαιτούν πολλές εξαρτήσεις για να εκτελεστούν με επιτυχία.
Κατεβάστε και εγκαταστήστε το 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 ~
Ελέγξτε την acme.sh
έκδοση.
/etc/letsencrypt/acme.sh --version
# v2.8.0
Λάβετε πιστοποιητικά RSA και ECDSA για wiki.example.com
.
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d wiki.example.com --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d wiki.example.com --ocsp-must-staple --keylength ec-256
Αφού εκτελέσετε τις παραπάνω εντολές, τα πιστοποιητικά και τα κλειδιά σας θα βρίσκονται στους παρακάτω καταλόγους:
- RSA:
/etc/letsencrypt/wiki.example.com
- ECC/ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
ΣΗΜΕΙΩΣΗ: Μην ξεχάσετε να αντικαταστήσετε wiki.example.com
το όνομα τομέα σας.
Αφού λάβουμε πιστοποιητικά από το Let's Encrypt, πρέπει να ρυθμίσουμε το Nginx για να τα εκμεταλλευτούμε.
Το Wiki.js μπορεί να εκτελεστεί χωρίς πραγματικό διακομιστή ιστού, ωστόσο συνιστάται ιδιαίτερα να τοποθετήσετε έναν τυπικό διακομιστή ιστού μπροστά του. Αυτό διασφαλίζει ότι μπορείτε να χρησιμοποιήσετε λειτουργίες όπως SSL, πολλαπλούς ιστότοπους, προσωρινή αποθήκευση και άλλα. Θα χρησιμοποιήσουμε το Nginx σε αυτό το σεμινάριο, αλλά οποιοσδήποτε άλλος διακομιστής θα το κάνει, απλά πρέπει να το ρυθμίσετε σωστά.
Εγκαταστήστε το Nginx.
sudo pkg install -y nginx
Ελέγξτε την έκδοση.
nginx -v
# nginx version: nginx/1.14.0
Ενεργοποιήστε και ξεκινήστε το Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Διαμορφώστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης HTTPS (εάν χρησιμοποιείτε SSL) για την εφαρμογή Wiki.js.
Εκτελέστε sudo vim /usr/local/etc/nginx/wiki.js.conf
και συμπληρώστε το με τη βασική διαμόρφωση αντίστροφου διακομιστή μεσολάβησης παρακάτω.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name wiki.example.com;
charset utf-8;
client_max_body_size 50M;
# RSA
ssl_certificate /etc/letsencrypt/wiki.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/wiki.example.com/wiki.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/wiki.example.com.key;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream error timeout http_502 http_503 http_504;
}
}
Το μόνο πράγμα που πρέπει να αλλάξετε στις παραπάνω ρυθμίσεις είναι η server_name
οδηγία και ενδεχομένως η proxy_pass
οδηγία εάν αποφασίσετε να διαμορφώσετε κάποια άλλη θύρα εκτός από την 3000
. Το Wiki.js χρησιμοποιεί θύρα 3000
από προεπιλογή. Αποθηκεύστε το αρχείο και βγείτε με :+ W+Q
Τώρα πρέπει να συμπεριλάβουμε το wiki.js.conf
αρχείο στο κύριο nginx.conf
αρχείο.
Εκτελέστε sudo vim /usr/local/etc/nginx/nginx.conf
και προσθέστε την ακόλουθη γραμμή στο http {}
μπλοκ.
include wiki.js.conf;
Ελέγξτε τη διαμόρφωση.
sudo nginx -t
Επαναφόρτωση Nginx.
sudo service nginx reload
Εγκαταστήστε το Wiki.js
Δημιουργήστε έναν κενό ριζικό φάκελο εγγράφων όπου θα εγκατασταθεί το Wiki.js.
sudo mkdir -p /usr/local/www/wiki.example.com
Μεταβείτε στον ριζικό φάκελο του εγγράφου.
cd /usr/local/www/wiki.example.com
Αλλαγή ιδιοκτησίας /usr/local/www/wiki.example.com
φακέλου σε χρήστη johndoe
.
sudo chown -R johndoe:johndoe /usr/local/www/wiki.example.com
Από το /usr/local/www/wiki.example.com
φάκελο, εκτελέστε τις ακόλουθες εντολές για λήψη και εγκατάσταση του Wiki.js.
curl -sSo- https://wiki.js.org/install.sh | bash
VERSION=$(curl -L -s -S https://beta.requarks.io/api/version/stable)
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/wiki-js.tar.gz | tar -f - -xz -C .
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/node_modules.tar.gz | tar -f - -xz -C .
cp -n config.sample.yml config.yml
Μπορείτε να εκτελέσετε την ακόλουθη εντολή για να προβάλετε την τρέχουσα εγκατεστημένη έκδοση του Wiki.js.
node wiki --version
# 1.0.102
Μόλις ολοκληρωθεί η εγκατάσταση, θα σας ζητηθεί να εκτελέσετε τον οδηγό διαμόρφωσης.
Ξεκινήστε τον οδηγό διαμόρφωσης εκτελώντας.
node wiki configure
Αυτό θα σας ειδοποιήσει να πλοηγηθείτε για http://localhost:3000
να διαμορφώσετε το Wiki.js. Εάν έχετε Nginx μπροστά από το Wiki.js, τότε σημαίνει ότι μπορείτε να ανοίξετε το όνομα τομέα σας (π.χ. http://wiki.example.com
) αντί να μεταβείτε στο localhost.
Χρησιμοποιώντας το πρόγραμμα περιήγησής σας, μεταβείτε http://wiki.example.com
και ακολουθήστε τις οδηγίες που εμφανίζονται στην οθόνη. Όλες οι ρυθμίσεις που εισάγονται κατά τη διάρκεια του οδηγού διαμόρφωσης αποθηκεύονται στο config.yml
αρχείο. Ο οδηγός διαμόρφωσης θα ξεκινήσει αυτόματα το Wiki.js για εσάς.
Εγκαταστήστε και ρυθμίστε το PM2 process manager
Από προεπιλογή, το Wiki.js δεν θα ξεκινήσει αυτόματα μετά την επανεκκίνηση του συστήματος. Για να ξεκινήσει κατά την εκκίνηση, πρέπει να εγκαταστήσουμε και να ρυθμίσουμε το PM2 process manager.
Εγκαταστήστε το PM2 παγκοσμίως μέσω npm
.
sudo npm install -g pm2
Ελέγξτε την έκδοση.
pm2 -v
# 3.2.2
Μεταβείτε στον ριζικό φάκελο του εγγράφου σας εάν δεν είστε ήδη εκεί και σταματήστε το Wiki.js.
cd /usr/local/www/wiki.example.com
node wiki stop
Ξεκινήστε το Wiki.js μέσω PM2.
pm2 start server/index.js --name "Wiki.js"
Διαδικασία λίστας που διαχειρίζεται το PM2.
pm2 list
Πείτε στο PM2 να διαμορφωθεί ως υπηρεσία εκκίνησης εκτελώντας:
pm2 startup
Τέλος, αποθηκεύστε την τρέχουσα διαμόρφωση PM2 εκτελώντας την εντολή:
pm2 save
Η παρουσία σας στο Wiki.js εκτελείται πλέον ως διαδικασία παρασκηνίου, χρησιμοποιώντας το PM2 ως διαχειριστή διεργασιών.