Cómo instalar Wikijs en Rocky Linux

Wiki.js es un software wiki de código abierto escrito en JavaScript y que se ejecuta en el tiempo de ejecución Node.js, está publicado bajo la licencia APGL-v3. Wiki.js es un software wiki ligero y potente con una interfaz de usuario bonita e intuitiva, está diseñado para la web moderna. Wiki.js es un software wiki muy extensible y adecuado para diferentes tipos de documentos e implementaciones, puede ser utilizado tanto por personas técnicas como no técnicas.

Wiki.js está respaldado por varios tipos de módulos para ampliar sus características y convertirlo en un software wiki potente y extensible. Algunas características notables y predeterminadas de Wiki.js se ven a continuación:

  • Soporta múltiples bases de datos (PostgreSQL, MySQL, SQLite y MSSQL Server).
  • Múltiples editores, incluyendo Markdown para desarrolladores, WYSIWYG para personas no técnicas, código y Tabular (similar a Excel)
  • Motor de búsqueda incorporado basado en bases de datos, también es compatible con otro motor de búsqueda como Apache Solr, Elasticsearch, etc.
  • Admite múltiples almacenamientos de datos para copias de seguridad, como Git, sFTP, AWS S3, Google Drive, Dropbox, etc.

En esta guía, aprenderás a instalar Wiki.js en el servidor Rocky Linux. Instalarás Wiki.js con la última versión LTS de Node.js, utilizando PostgreSQL como base de datos principal, y usando el servidor web Nginx como proxy inverso.

Requisitos previos

  • Un sistema Linux Rocky. Asegúrate de que todos los paquetes y repositorios están actualizados a la última versión
  • Un usuario root o un usuario con privilegios de root. Utilizarás este usuario para instalar nuevos paquetes y editar las configuraciones del sistema.

Instalar Nodejs en Rocky Linux

En primer lugar, instalarás Node.js en Rocky Linux. Y por defecto, el repositorio de AppStream proporciona varias versiones de Node.js LTS.

1. Comprueba el módulo del repositorio para‘nodejs‘ ejecutando el siguiente comando.

sudo dnf module list nodejs

Verás múltiples versiones del módulo Node.js.

Comprobar el módulo de repositorio de Node.js Rocky Linux

2. Habilita el módulo de repositorio ‘nodejs:14‘ con el siguiente comando.

sudo dnf module enable nodejs:14

Escribe‘y’ para habilitar el módulo de repositorio ‘nodejs:14′.

Activar el módulo de repositorio nodejs:14 Rocky Linux

3. A continuación, ejecuta el siguiente comando para instalar los paquetes Node.js y npm.

sudo dnf install nodejs npm

Escribey’ y pulsa‘Enter‘ para confirmar la instalación.

Instalación de paquetes Node.js y NPM

4. Una vez completada la instalación, ejecuta el siguiente comando para comprobar las versiones de Node.js y npm.

node --version
npm --version

Verás una salida similar a la de abajo.

# Node.js version
v14.17.3

# NPM version
6.14.13

Instalación de la base de datos PostgreSQL

Para esta etapa, instalarás PostgreSQL desde el repositorio oficial de PostgreSQL. Para producción, se recomienda utilizar PostgreSQL como base de datos principal para Wiki.js.

1. Ahora ejecuta el siguiente comando para añadir el repositorio PostgreSQL al sistema Rocky Linux.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Añadir repositorio PostgreSQL

2. Desactiva el repositorio PostgreSQL por defecto de Rocky Linux con el siguiente comando.

sudo dnf module -qy disable postgresql

3. A continuación, ejecuta el siguiente comando para instalar el PostgreSQL 13 en el servidor Rocky Linux.

sudo dnf install postgresql13-server

Escribe‘y‘ y pulsa‘Enter’ para continuar la instalación.

Instalación de PostgreSQL en Rocky Linux

4. Si la instalación de PostgreSQL se ha completado, ejecuta el siguiente comando para inicializar la base de datos PostgreSQL, iniciar y habilitar el servicio PostgreSQL.

Inicializa la base de datos PostgreSQL con el siguiente comando.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

Habilita el servicio PostgreSQL para que se inicie automáticamente al arrancar el sistema utilizando el siguiente comando.

sudo systemctl enable postgresql-13

Ahora inicia el servicio PostgreSQL y comprueba su estado con el siguiente comando.

sudo systemctl start postgresql-13
sudo systemctl status postgresql-13

Si el servicio PostgreSQL se está ejecutando, verás el mensaje de salida como«activo (en ejecución)» como en la captura de pantalla de abajo.

Inicializar PostgreSQL e iniciar el servicio PostgreSQL

Crea una nueva base de datos y un nuevo usuario

Después de instalar el servidor PostgreSQL, crearás una nueva base de datos y un nuevo usuario para la instalación de Wiki.js.

1. Ejecuta el siguiente comando para entrar en el shell de PostgreSQL.

sudo -u postgres psql

2. Crea un nuevo usuario PostgreSQL conel nombre‘wiki‘ y la contraseña‘wikijspassworddb‘ utilizando la siguiente consulta.

CREATE USER wiki WITH 
CREATEDB
PASSWORD 'wikijspassworddb';

3. Ahora crea una nueva base de datos con el nombre‘wikidb‘ y haz que el usuario‘wiki‘ sea el propietario de la base de datos utilizando la consulta PostgreSQL que aparece a continuación.

CREATE DATABASE wikidb OWNER wiki;

4. Ahora escribe‘\q’ para salir del shell de PostgreSQL.

Crear una base de datos PostgreSQL y un usuario para Wiki.js

Opcionalmente, puedes verificar el usuario y la base de datos utilizando las consultas de abajo.

# Check available users
\du

# Display list of databases
\l

Comprobar usuarios y bases de datos PostgreSQL

Descarga y configuración de Wiki.js

Para esta guía, ejecutarás Wiki.js como un servicio, y se ejecutará como un usuario no root.

1. Ejecuta el siguiente comando para crear un nuevo usuario‘wiki‘ para la instalación de Wiki.js.

sudo adduser --system --user-group --no-create-home --shell /sbin/nologin wiki

2. Crea un nuevo directorio‘/var/wiki’ y cambia el directorio de trabajo a él. Luego ejecuta el comando wget para descargar la última versión estable del código fuente de Wiki.js.

mkdir -p /var/wiki; cd /var/wiki/
wget https://github.com/Requarks/wiki/releases/download/2.5.201/wiki-js.tar.gz

Crea un nuevo usuario y descarga el código fuente de Wiki.js

Si el proceso de descarga se ha completado, extrae el código fuente de Wiki.js utilizando el comando tar.

tar -xf wiki-js.tar.gz

3. A continuación, copia la configuración de ejemplo de Wiki.js en ‘config.yml’ y edítala con nano.

cp config.sample.yml config.yml
nano config.yml

Cambia los detalles del nombre de la base de datos, el usuario y la contraseña como se indica a continuación.

db:
  type: postgres

  # PostgreSQL / MySQL / MariaDB / MS SQL Server only:
  host: localhost
  port: 5432
  user: wiki
  pass: wikijspassworddb
  db: wikidb
  ssl: false

Pon el ‘#’ delante de la opción de almacenamiento SQLite como se indica a continuación.

  # SQLite only:
  #storage: path/to/database.sqlite

Cambia la opción‘bindIP‘ por‘127.0.0.1‘ para ejecutar el Wiki.js sólo en la IP local.

# ---------------------------------------------------------------------
# IP address the server should listen to
# ---------------------------------------------------------------------
# Leave 0.0.0.0 for all interfaces

bindIP: 127.0.0.1

Guarda la configuración y sal presionando el botón‘Ctrl+x‘, escribe‘y‘, y luego presiona‘Enter‘.

4. A continuación, lo más importante es cambiar la propiedad del directorio‘/var/wiki‘ al usuario y grupo‘wiki‘ utilizando el siguiente comando.

sudo chown -R wiki:wiki /var/wiki

Configurar Wiki.js

Configurar Wiki.js como servicio Systemd

1. Para crear un nuevo archivo de servicio systemd, cambia el directorio de trabajo a ‘/etc/systemd/system’ y crea un nuevo archivo de servicio ‘wikijs.service’ utilizando nano.

cd /etc/systemd/system/
sudo nano wikijs.service

Copia y pega la siguiente configuración.

[Unit]
Description=Wiki.js
After=network.target postgresql-13.service

[Service]
Type=simple
ExecStart=/bin/node server
Restart=always
# Consider creating a dedicated user for Wiki.js here:
User=wiki
Group=wiki
Environment=NODE_ENV=production
WorkingDirectory=/var/wiki

[Install]
WantedBy=multi-user.target

Pulsa‘Ctrl+x‘, escribe‘y‘, y luego pulsa‘Enter‘ para guardar la configuración y salir.

2. Recarga el‘systemd-manager‘ para aplicar la nueva configuración del servicio.

sudo systemctl daemon-reload

3. A continuación, habilita el servicio‘wikijs‘ para que se ejecute al inicio del sistema mediante el siguiente comando.

sudo systemctl enable wikijs

Ejecutar Wiki.js como servicio

4. Inicia el servicio ‘wikijs‘ y comprueba su estado con el siguiente comando.

sudo systemctl start wikijs
sudo systemctl status wikijs

Ahora verás que el servicio ‘wikijs’ está activo y en ejecución en el sistema Linux Rocky.

Iniciar y comprobar el estado del servicio Wiki.js

Instalación y configuración de Nginx como proxy inverso para Wiki.js

En esta etapa, vas a instalar y configurar el servidor web Nginx como proxy inverso para Wiki.js. Si has instalado el servidor web Nginx en tu servidor, pasa a la etapa número 2 para configurar los bloques del servidor Nginx.

1. Para instalar el servidor web Nginx, ejecuta el siguiente comando dnf.

sudo dnf install nginx

Escribe‘y‘ para confirmar e instalar el servidor web Nginx.

Instalación del servidor web Nginx

2. Si la instalación se ha completado, cambia el directorio de trabajo a ‘/etc/nginx/conf.d’ y crea una nueva configuración del bloque del servidor Nginx‘wikijs.conf‘ utilizando nano.

cd /etc/nginx/conf.d/
sudo nano wikijs.conf

Copia y pega la siguiente configuración, y asegúrate de cambiar el valor de la opción‘nombre_servidor‘ con tu nombre de dominio.

server {
    listen 80;

    server_name wiki.domain-name.io;

    charset utf-8;
    client_max_body_size 50M;

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

}

Pulsa‘Ctrl+x‘, escribe‘y‘, y luego pulsa‘Enter‘ para guardar la configuración y salir.

3. A continuación, comprueba la configuración de Nginx y asegúrate de que no hay ningún error, luego habilita el servicio Nginx.

sudo nginx -t
sudo systemctl enable nginx

Configurar Nginx como Proxy inverso para Wiki.js

4. Ahora inicia y comprueba el estado del servicio Nginx ejecutando el siguiente comando.

sudo systemctl start nginx
sudo systemctl enable nginx

Verás que la salida del servicio Nginx es‘activo (en ejecución)‘ como se indica a continuación.

Iniciar el servicio Nginx y comprobar el estado

Asegurar Wikijs con SSL Letsencrypt

En esta etapa, asegurarás la instalación de Wiki.js utilizando el SSL Letsencrypt.

1. Ejecuta el siguiente comando para instalar el plugin certbot y certbot-nginx.

sudo dnf install certbot python3-certbot-nginx

2. Una vez completada la instalación, genera un nuevo Letsencrtypt SSL para el nombre de dominio radicale utilizando el siguiente comando de certbot.

sudo certbot --nginx --agree-tos --email [email protected] -d wiki.domain-name.io

Y se te harán algunas preguntas a continuación.

  • Una dirección de correo electrónico: cuando el certificado SSL caduque, se te avisará a este correo.
  • Condiciones de servicio de Letsencrypt: escribe «A» para aceptarlas.
  • Compartir el correo electrónico con la EFF: puedes elegir «N» para no.
  • Redirigir automáticamente HTTP a HTTPS: elige el número ‘2’ para activar la redirección automática.

Una vez completado el proceso, verás que los certificados SSL están disponibles en el directorio‘/etc/letsencrypt/live/wiki.domain-name.io‘. Y la configuración de los bloques de tu servidor Nginx ha cambiado con la configuración adicional de letsencrypt.

Configurar la página de administración de Wiki.js y la página de inicio por defecto

Abre tu navegador web y escribe la dirección URL de tu instalación de Wiki.js en la barra de direcciones.

https://wiki.domain-name.io/

1. Serás redirigido a la conexión HTTPS y verás la siguiente página.

Wiki.js crea una cuenta de administrador y configura la URL del sitio

2. Escribe los detalles de la cuenta de administrador con tu dirección de correo electrónico y contraseña, luego escribe tu dominio de Wiki.js como la URL del sitio, y haz clic en el botón ‘INSTALAR’.

Espera a que se instale Wiki.js.

2. Y si la instalación se completa, serás redirigido a la página de inicio de sesión de Wiki.js como se indica a continuación.

Página de acceso a Wiki.js

Escribe tu dirección de correo electrónico de administrador y tu contraseña, y luego haz clic en el botón ‘Iniciar sesión‘.

3. Y se te mostrará el mensaje de bienvenida de Wiki.js.

Wiki.js Crear página de inicio

Haz clic en el botón‘+ CREAR PÁGINA DE INICIO‘ para crear una nueva página de inicio para tu wiki.

4. Elige el editor que te resulte más cómodo y haz clic en ese editor. Para este ejemplo, utilizaremos el editor‘Markdown‘.

Wiki.js elige el editor

5. En la ventana emergente‘Propiedades de la página‘, escribe el título de los detalles y una breve descripción de tu página de inicio. Y deja la ruta por defecto como‘home’.

Propiedades de la página Wiki.js

Haz clic en«Aceptar» para confirmar la configuración de las propiedades de la página.

6. Escribe el contenido de tu página de inicio y haz clic en el botón ‘CREAR‘ para guardar.

Crear nueva página de inicio Wiki.js

7. Ahora serás redirigido a tu página de inicio de Wiki.js como se muestra a continuación.

Página de inicio de Wiki.js

Conclusión

¡Enhorabuena! Ahora has creado con éxito tu Wiki con Wiki.js en el servidor Rocky Linux. El Wiki.js se ejecuta ahora con la última versión estable de Node.js, la base de datos PostgreSQL y el proxy inverso Nginx. Además, está asegurado con SSL Letsencrypt. Para el siguiente paso, puedes añadir algunos módulos adicionales que necesites, como análisis, autenticación, registro y editores de código/texto. Y ya estás listo para escribir la documentación de tus proyectos.

También te podría gustar...