Requisits
Abans que comencis
Instal·leu Node.js
Instal·leu MongoDB
Instal·leu Acme.sh i obteniu un certificat Let's Encrypt (opcional)
Instal·leu i configureu Nginx
Instal·leu Wiki.js
Instal·leu i configureu el gestor de processos PM2
Wiki.js és una aplicació wiki moderna de codi obert i gratuïta construïda a Node.js, MongoDB, Git i Markdown. El codi font de Wiki.js està allotjat públicament a Github . Aquesta guia us mostrarà com instal·lar Wiki.js en una nova instància de FreeBSD 11 Vultr utilitzant Node.js, MongoDB, PM2, Nginx, Git i Acme.sh.
Requisits
Els requisits per executar Wiki.js són els següents:
- Node.js versió 6.11.1 o posterior
- MongoDB versió 3.2 o posterior
- Git versió 2.7.4 o posterior
- Un servidor web com Nginx, Apache, IIS, Caddy o H2O. Aquesta guia utilitzarà Nginx.
- Un dipòsit compatible amb Git (públic o privat) Això és opcional
- Un mínim de 512 MB de RAM. És molt recomanable utilitzar una màquina amb almenys 1 GB de RAM.
- Nom de domini amb
A/ AAAAregistres configurats. En aquesta guia utilitzarem wiki.example.comcom a exemple el domini.
Abans que comencis
Comproveu la versió de FreeBSD.
uname -ro
# FreeBSD 11.2-RELEASE
Assegureu-vos que el vostre sistema FreeBSD estigui actualitzat.
freebsd-update fetch install
pkg update && pkg upgrade -y
Instal·lar sudo, vim, unzip, wget, git, bashi socatcerts programes que no són presents en el sistema.
pkg install -y sudo vim unzip wget git bash socat
Creeu un compte d'usuari nou amb el vostre nom d'usuari preferit (farem servir 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!
Executeu l' visudoordre i descomenteu la %wheel ALL=(ALL) ALLlínia, per permetre que els membres del wheelgrup executin qualsevol ordre.
# Uncomment by removing the hash (#) sign
%wheel ALL=(ALL) ALL
Ara, canvieu al vostre nou usuari creat.
su - johndoe
NOTA: Substituïu-lo johndoepel vostre nom d'usuari.
Configura la zona horària.
sudo tzsetup
Instal·leu Node.js
Wiki.js requereix Node.js 6.11.1 o posterior, de manera que primer haurem d'instal·lar la versió adequada de Node.js.
Instal·leu Node.js i NPM.
sudo pkg install -y node8 npm-node8
Comproveu les versions.
node -v && npm -v
# v8.12.0
# 6.4.1
Instal·leu MongoDB
Wiki.js utilitza MongoDB com a motor de base de dades.
Instal·leu MongoDB.
sudo pkg install -y mongodb36
Comproveu la versió.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.6
# db version v3.6.6
Activeu i inicieu MongoDB.
sudo sysrc mongod_enable=yes
sudo service mongod start
Instal·leu Acme.sh i obteniu un certificat Let's Encrypt ( opcional )
Protegir el vostre wiki amb HTTPS no és necessari, però és una bona pràctica per assegurar el trànsit del vostre lloc. Per obtenir un certificat SSL de Let's Encrypt utilitzarem el client Acme.sh. Acme.sh és un programari shell Unix pur per obtenir certificats SSL de Let's Encrypt amb zero dependències. Això fa que sigui molt lleuger en comparació amb altres clients de protocol Acme que requereixen moltes dependències per funcionar amb èxit.
Baixeu i instal·leu 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 ~
Comproveu la acme.shversió.
/etc/letsencrypt/acme.sh --version
# v2.8.0
Obteniu els certificats RSA i ECDSA per a 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
Després d'executar les ordres anteriors, els vostres certificats i claus estaran als directoris següents:
- RSA:
/etc/letsencrypt/wiki.example.com
- ECC/ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
NOTE: Don't forget to replace wiki.example.com with your domain name.
After obtaining certificates from Let's Encrypt, we need to configure Nginx to take advantage of them.
Wiki.js can run without any actual web server, however it is highly recommended to put a standard web server in front of it. This ensures you can use features like SSL, multiple websites, caching and others. We will use Nginx in this tutorial, but any other server will do, you just need to configure it properly.
Install Nginx.
sudo pkg install -y nginx
Check the version.
nginx -v
# nginx version: nginx/1.14.0
Enable and start Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Configure Nginx as a HTTPS (if you use SSL) reverse proxy for the Wiki.js application.
Run sudo vim /usr/local/etc/nginx/wiki.js.conf and populate it with the basic reverse proxy configuration below.
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;
}
}
L'únic que heu de canviar a la configuració anterior és la server_namedirectiva, i potencialment la proxy_passdirectiva si decidiu configurar algun port diferent de 3000. Wiki.js utilitza port 3000per defecte. Deseu el fitxer i sortiu amb :+ W+Q
Ara hem d'incloure el wiki.js.conffitxer al nginx.conffitxer principal .
Executeu sudo vim /usr/local/etc/nginx/nginx.confi afegiu la línia següent al http {}bloc.
include wiki.js.conf;
Comproveu la configuració.
sudo nginx -t
Torna a carregar Nginx.
sudo service nginx reload
Instal·leu Wiki.js
Creeu una carpeta arrel del document buida on s'instal·larà Wiki.js.
sudo mkdir -p /usr/local/www/wiki.example.com
Navegueu a la carpeta arrel del document.
cd /usr/local/www/wiki.example.com
Canvia la propietat de la /usr/local/www/wiki.example.comcarpeta a usuari johndoe.
sudo chown -R johndoe:johndoe /usr/local/www/wiki.example.com
Des de la /usr/local/www/wiki.example.comcarpeta, executeu les ordres següents per descarregar i instal·lar 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
Podeu executar l'ordre següent per veure la versió instal·lada actualment de Wiki.js.
node wiki --version
# 1.0.102
Un cop finalitzada la instal·lació, se us demanarà que executeu l'assistent de configuració.
Inicieu l'assistent de configuració executant-lo.
node wiki configure
Això us avisarà per navegar http://localhost:3000per configurar Wiki.js. Si teniu Nginx davant de Wiki.js, vol dir que podeu obrir el vostre nom de domini (p http://wiki.example.com. ex. ) en lloc d'anar a localhost.
Amb el vostre navegador web, navegueu http://wiki.example.comi seguiu les instruccions que apareixen a la pantalla. Tots els paràmetres introduïts durant l'assistent de configuració es guarden al config.ymlfitxer. L'assistent de configuració iniciarà automàticament el Wiki.js.
Instal·leu i configureu el gestor de processos PM2
Per defecte, Wiki.js no s'iniciarà automàticament després d'un reinici del sistema. Per tal que s'iniciï a l'arrencada, hem d'instal·lar i configurar el gestor de processos PM2.
Instal·leu PM2 globalment mitjançant npm.
sudo npm install -g pm2
Comproveu la versió.
pm2 -v
# 3.2.2
Navegueu a la carpeta arrel del vostre document si encara no hi sou i atureu Wiki.js.
cd /usr/local/www/wiki.example.com
node wiki stop
Inicieu Wiki.js mitjançant PM2.
pm2 start server/index.js --name "Wiki.js"
Procés de llista gestionat per PM2.
pm2 list
Digueu a PM2 que es configure com a servei d'inici executant:
pm2 startup
Finalment, deseu la configuració actual de PM2 executant l'ordre:
pm2 save
La vostra instància de Wiki.js ara s'executa com a procés en segon pla, utilitzant PM2 com a gestor de processos.