GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Wiki.js - Software Wiki basado en NodeJS en Debian 9

Wiki.js es una aplicación wiki moderna, potente y de código abierto basada en Node.js, Git y Markdown. Wiki.js se ejecuta en el motor increíblemente rápido de Node.js y está optimizado para conservar los recursos de la CPU. Algunas de las características de Wiki.js que vale la pena mencionar son:

  • Edición de Markdown, respaldada por Git
  • Ligero, pero extremadamente potente
  • Hermosamente diseñado para la web moderna
  • Control de acceso integrado
  • Gestión intuitiva de activos
  • Motor de búsqueda integrado

En este tutorial, lo guiaremos a través del proceso de instalación de Wiki.js versión 1 en un sistema operativo Debian 9 usando NGINX como servidor proxy inverso, MongoDB como servidor de base de datos, PM2 como administrador de procesos y, opcionalmente, puede proteger la capa de transporte. usando acme.sh cliente y la autoridad de certificación de Let's Encrypt para agregar compatibilidad con SSL.

Requisitos

Los requisitos para ejecutar Wiki.js son los siguientes:

  • Node.js 6.11.110.x es obligatorio.
  • Versión de MongoDB 3.2 o posterior.
  • Versión de Git 2.7.4 o posterior.
  • Software de servidor web como NGINX, Apache, Caddy, H2O...
  • Un repositorio Git vacío (opcional).
  • Mínimo de 512 MB de RAM. Se recomienda 1 GB de RAM.
  • Aproximadamente 300 MB de espacio en disco.
  • Nombre de dominio con registros A/AAAA DNS configurados.

Requisitos

  • Un sistema operativo Debian 9.
  • Un usuario no root con sudo privilegios.

Pasos iniciales

Compruebe la versión de su sistema Debian:

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

Configurar la zona horaria:

dpkg-reconfigure tzdata

Actualice los paquetes de su sistema operativo (software). Este es un primer paso importante porque garantiza que tenga las últimas actualizaciones y correcciones de seguridad para los paquetes de software predeterminados de su sistema operativo:

apt update && apt upgrade -y

Instale algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo Debian:

apt install -y curl wget vim git unzip socat sudo bash-completion apt-transport-https build-essential dirmngr

Paso 1:instalar Node.js y npm

Wiki.js se basa en Node.js. Vamos a instalar la última versión recomendada de Wiki.js, que es la versión 10  en el momento de escribir este artículo. En Linux, tiene algunas opciones de instalación de Node.js:binarios de Linux (x86/x64), código fuente o mediante administradores de paquetes. Usaremos una opción de administración de paquetes que facilita la instalación y actualización de Node.js.

Descargue e instale la última versión recomendada de Node.js desde el repositorio de NodeSource:

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

NOTA : npm se distribuye con Node.js, lo que significa que cuando descarga Node.js, npm se instala automáticamente en su sistema.

Compruebe la versión de Node.js y npm:

node -v && npm -v
# v10.15.1
# 6.4.1

Npm es un proyecto separado de Node.js y tiende a actualizarse con más frecuencia. Como resultado, incluso si acaba de descargar Node.js (y, por lo tanto, npm), probablemente necesite actualizar su npm. Afortunadamente, npm sabe cómo actualizarse. Para actualizar su npm, escriba esto en su terminal:

sudo npm install -g [email protected]

Este comando actualizará npm a la última versión estable.

Vuelva a comprobar la versión de npm con:

npm -v
# 6.8.0

Y debería devolver el último número de versión.

Paso 2:instalar la base de datos MongoDB

Wiki.js necesita una base de datos para almacenar sus datos, y la versión estable actual de Wiki.js solo admite el motor de base de datos MongoDB. De acuerdo con eso, necesitaremos instalar la base de datos MongoDB.

Descargue e instale la base de datos MongoDB:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb http://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-get update
sudo apt-get install -y mongodb-org

Compruebe la versión de MongoDB:

mongo --version | head -n 1 && mongod --version | head -n 1

Iniciar y habilitar (configúralo para que se inicie al reiniciar ) Servicio MongoDB si aún no se ha iniciado y habilitado:

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

Paso 3:instalar acme.sh cliente y obtener el certificado Let's Encrypt (opcional )

No es necesario proteger su sitio web con HTTPS, pero es una buena práctica para asegurar el tráfico de su sitio. Para obtener un certificado SSL de Let's Encrypt, usaremos acme.sh cliente. Acme.sh es un software de shell UNIX puro para obtener certificados SSL de Let's Encrypt sin dependencias.

Descarga e instala acme.sh :

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Compruebe acme.sh versión:

acme.sh --version
# v2.8.1

Obtener RSAECC/ECDSA certificados para su dominio/nombre de host:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si desea certificados falsos para las pruebas, puede agregar --staging marcar a los comandos anteriores.

Para enumerar sus certificados emitidos, puede ejecutar:

acme.sh --list

Cree carpetas para almacenar sus certificados. Usaremos /etc/letsencrypt pero puede ser cualquier cosa que prefiera para almacenar certificados SSL.

mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc

Instalar/copiar certificados en /etc/letsencrypt directorio.

# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"

Después de ejecutar los comandos anteriores, sus certificadosteclas estará en:

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

Todos los certificados se renovarán automáticamente cada 60 días.

Después de obtener los certificados, salga del usuario raíz y regrese al usuario sudo normal:

exit

Paso 4:instalar y configurar NGINX

Wiki.js (o cualquier aplicación HTTP Node.js) puede ejecutarse sin ningún servidor web real (como NGINX o Apache). Sin embargo, se recomienda enfáticamente colocar un servidor web estándar frente a Wiki.js. Esto garantiza que pueda usar funciones como SSL, múltiples sitios web, almacenamiento en caché, etc. Usaremos NGINX en este tutorial, pero cualquier otro servidor funcionará, solo necesita configurarlo correctamente.

Descargue e instale NGINX desde el repositorio oficial de NGINX emitiendo los siguientes comandos:

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

Compruebe la versión de NGINX:

sudo nginx -v
# nginx version: nginx/1.15.8

Habilite e inicie el servicio NGINX:

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

Ejecute sudo vim /etc/nginx/conf.d/wiki.js.conf y configura NGINX como un proxy inverso HTTPS.

server {
    
listen [::]:443 ssl http2;
listen 443 ssl http2; listen [::]:80; listen 80; server_name example.com; charset utf-8; client_max_body_size 50M;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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; } }

Lo único que debe cambiar en la configuración anterior es server_name directiva, y potencialmente proxy_pass directiva si decide configurar alguna que no sea 3000 Puerto. Wiki.js usa el puerto 3000 por defecto.

Compruebe la configuración de NGINX:

sudo nginx -t

Finalmente, para que los cambios surtan efecto, debemos volver a cargar NGINX:

sudo systemctl reload nginx.service

Paso 5:instalar y configurar Wiki.js

Cree un directorio raíz de documentos donde Wiki.js debería residir en:

sudo mkdir -p /var/www/wiki.js

Navegue al directorio raíz del documento:

cd /var/www/wiki.js

Cambiar la propiedad de /var/www/wiki.js directorio a tu_usuario:

sudo chown -R [your_user]:[your_user] /var/www/wiki.js

NOTA:  Reemplace your_user en el comando anterior con su usuario no root que debería haber creado como requisito previo para este tutorial .

Desde /var/www/wiki.js directorio, ejecute el siguiente comando para obtener e instalar la última aplicación Wiki.js:

curl -sSo- https://wiki.js.org/install.sh | bash

Una vez completada la instalación, puede ejecutar el siguiente comando para ver la versión instalada actualmente de Wiki.js:

node wiki --version
# 1.0.117

Una vez que se complete la instalación, se le pedirá que inicie el asistente de configuración.

Entonces, inicie el asistente de configuración ejecutando:

node wiki configure

Usando su navegador web, vaya a http://example.com y siga las instrucciones en pantalla. Todos los ajustes introducidos durante el asistente de configuración se guardan en config.yml expediente. El asistente de configuración iniciará Wiki.js automáticamente.

Primero, verá un mensaje de bienvenida. Haga clic en "Iniciar "botón:

Aparecerá la siguiente página de "Comprobación del sistema". Si se cumplen todos los requisitos, haga clic en "Continuar botón ".

Ingrese información general sobre su wiki y haga clic en "Continuar "botón:

Lea el aviso "Consideraciones importantes" y haga clic en "Continuar " para el siguiente paso: 

A continuación, conéctese a la base de datos y continúe: 

Debería ver un mensaje de que Wiki.js se ha conectado correctamente a la base de datos. Haga clic en "Continuar "botón:

Establecer rutas y continuar:

Configure el repositorio Git remoto si lo desea u omita este paso. Este paso es opcional pero muy recomendable:

A continuación, haga clic en el botón "Continuar":

Cree una cuenta de administrador y haga clic en "Continuar "botón:

Y finalmente, inicie Wiki.js:

Espere alrededor de 30 segundos y debería ser redirigido a la página de inicio de Wiki.js:

La instalación está completa. Deberías página de bienvenida wiki:

Paso 6:configurar el administrador de procesos de PM2

De forma predeterminada, Wiki.js no se iniciará automáticamente después de reiniciar el sistema. Para que se inicie en el arranque, debemos configurar el administrador de procesos PM2. PM2 viene incluido con Wiki.js como un módulo npm local, por lo que no necesitamos instalar PM2 globalmente.

Dígale a PM2 que se configure como un servicio de inicio ejecutando:

/var/www/wiki.js/node_modules/pm2/bin/pm2 startup

Finalmente, guarde la configuración actual de PM2 ejecutando el comando:

/var/www/wiki.js/node_modules/pm2/bin/pm2 save

Su Wiki.js ahora se ejecuta como un proceso en segundo plano, utilizando PM2 como su administrador de procesos.

Enlaces

  • https://wiki.js.org/
  • https://github.com/Requarks/wiki-v1
  • https://github.com/Requarks/wiki

Debian
  1. Cómo instalar NodeJS en Debian 9 Stretch Linux

  2. Cómo instalar Node.js y npm en Debian 9

  3. Cómo instalar R en Debian 9

  4. Cómo instalar Node.js y npm en Debian 11

  5. Cómo instalar NodeJS en Debian

Cómo instalar software a través de Flatpak en Debian 10

Cómo instalar Go en Debian 10

Cómo instalar ReactJS en Debian 11

¿Cómo instalar RevealJS en Ubuntu 20.04 / Debian 11?

Cómo instalar el nodo js en Debian Bullseye

Cómo instalar Go en Debian