Cómo instalar Wiki.js en Debian 12

Wiki.js es un software wiki gratuito y de código abierto basado en Node.js, Git y Markdown. Está publicado bajo la Licencia AGPL-v3 y diseñado para el rendimiento y la conservación de los recursos del sistema. Wiki.js es un potente software Wiki que puede instalarse en cualquier parte de tu sistema. Puedes instalarlo en tu sistema operativo o utilizar servicios en la nube como Heroku, y también desplegar Wiki.js en tus entornos de contenedores, como Docker y Kubernetes.

Wiki.js es compatible con la base de datos PostgreSQL y proporciona más de 50 integraciones para autenticación adicional, sistema de registro, motor de búsqueda, renderizado y almacenamiento. Es un potente software Wiki construido sobre hermosas e intuitivas interfaces tanto para el panel de administración como para las páginas. Es un software Wiki totalmente personalizable para documentar tu pila tecnológica.

En este artículo, te mostraremos cómo instalar Wiki.js en un sistema Debian 12. Te guiaremos a través de la instalación de Wiki.js, utilizando un servidor de base de datos PostgreSQL, Nginx como proxy inverso, y luego aseguraremos tu instancia de Wiki.js con certificados SSL/TLS de Let’s Encrypt.

Requisitos previos

Antes de continuar, asegúrate de que tienes

  • Un servidor Debian 12.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio que apunte a la dirección IP de tu servidor. En este ejemplo se utilizará el dominio wiki.hwdomain.io.

Instalar dependencias

En la primera etapa, instalarás algunas de las dependencias que utilizará Wiki.js, entre las que se incluyen:

  • Servidor de base de datos PostgreSQL: Se utilizará como base de datos para tu Wiki.js.
  • Servidor web Nginx: El servidor web Nginx se utilizará como proxy inverso para Wiki.js.
  • Node.js y NPM: El motor de ejecución de JavaScript Node.js y el gestor de paquetes NPM.
  • Certbot y Plugin Certbot de Nginx: Certbot para generar certificados SSL/TLS a través de Let’s Encrypt y el Plugin Nginx Certbot confirmará automáticamente el bloqueo de tu servidor Nginx con HTTPS.

Para empezar, actualiza y refresca el repositorio de Debian utilizando el siguiente comando antes de instalar los paquetes.

sudo apt update

Ahora instala las dependencias de los paquetes para Wiki.js mediante el comando apt install que aparece a continuación. Con el siguiente comando, instalarás el servidor de base de datos PostgreSQL, Node.js y NPM, el servidor web Nginx, Certbot y el plugin Certbot Nginx.

sudo apt install postgresql postgresql-common nodejs npm nginx certbot python3-certbot-nginx

Escribe y para confirmar y proceder con la instalación.

instalar dependencias

Una vez instaladas las dependencias, verifica cada una de ellas utilizando los siguientes comandos.

Verifica el estado del servicio PostgreSQL utilizando el siguiente comando systemctl.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Se mostrará una salida similar a la siguiente.

comprobación del servidor postgresql

Comprueba el estado del servicio Nginx para asegurarte de que se está ejecutando y está habilitado.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Si Nginx se está ejecutando y está habilitado, se mostrará la siguiente salida en tu terminal.

comprobando nginx

Por último, verifica el Node.js y NPN ejecutando el siguiente comando. La salida mostrará las versiones actuales de Node.js y NPM instaladas en tu sistema.

node --version
npm --version

verificar node.js npm

Crear una base de datos y un usuario PostgreSQL

Tras instalar las dependencias, el siguiente paso es crear una nueva base de datos y un nuevo usuario para tu instalación de Wiki.js. Para ello, debes iniciar sesión en PostgreSQL mediante el cliente psql.

Accede al servidor PostgreSQL ejecutando el siguiente comando.

sudo -u postgres psql

Una vez conectado, ejecuta las siguientes consultas para crear una nueva base de datos PostgreSQL y un nuevo usuario wikijs. Asegúrate de cambiar la contraseña en las siguientes consultas.

CREATE USER wikijs WITH PASSWORD 'p4ssw0rd';
CREATE DATABASE wikijs OWNER wikijs;

crear usuario y base de datos

Una vez creadas la base de datos y el usuario, comprueba su existencia utilizando las siguientes consultas para listar las bases de datos y los usuarios disponibles en tu instancia PostgreSQL.

\du
\l

Deberías ver la base de datos y el usuario wikijs creados en PostgreSQL.

comprobar base de datos de listas y usuario

Escribe quit para salir del servidor PostgreSQL.

Descarga del código fuente de Wiki.js

En la siguiente sección, descargarás el código fuente de Wiki.js a tu servidor y configurarás el directorio de instalación con el permiso y la propiedad adecuados.

Crea un nuevo usuario wikijs ejecutando el siguiente comando.

sudo useradd -m -s /bin/false wikijs

Ahora crea un nuevo directorio /opt/wikijs y desplázate a él. A continuación, descarga el código fuente de Wiki.js mediante el siguiente comando wget.

mkdir -p /opt/wikijs; cd /opt/wikijs
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Una vez descargado, extrae el código fuente de Wiki.js y cambia la propiedad del directorio /opt/wikijs al usuario wikijs.

tar -xf wiki-js.tar.gz
sudo chown -R wikijs:wikijs /opt/wikijs

Configurar Wiki.js

Con Wiki.js descargado, a continuación configurarás tu instalación de Wiki.js con la base de datos PostgreSQL y el usuario, y también configurarás la dirección IP bind para Wiki.js.

Copia la configuración por defecto de WIki.js config . sample.yml en config.yml, y ábrela con el siguiente editor nano.

sudo -u wikijs cp config.sample.yml config.yml
sudo -u wikijs nano config.yml

Cambia la configuración por defecto de la base de datos con tu base de datos PostgreSQL, usuario y contraseña.

  # PostgreSQL / MySQL / MariaDB / MS SQL Server only:
  host: localhost
  port: 5432
  user: wikijs
  pass: p4ssw0rd
  db: wikijs
  ssl: false

Cambia la opción por defecto bindIP por localhost o 127.0.0.1. Esto ejecutará el Wiki.js en el localhost.

bindIP: 127.0.0.1

Guarda el archivo y sal después de terminar.

A continuación, ejecuta el siguiente comando para ejecutar y probar tu instalación de Wiki.js.

sudo -u wikijs node server

Deberías ver la confirmación de que Wiki.js se está ejecutando en localhost con el puerto por defecto 3000.

configurar wiki.js

Por último, pulsa Ctrl+c para terminar el proceso Wiki.js.

Ejecutar Wiki.js en segundo plano como un servicio

Ahora que has completado la configuración de WIki.js, el siguiente paso será configurar Wiki.js para que se ejecute en segundo plano como un servicio systemd. Utilizando el siguiente método, podrás gestionar fácilmente WIki.js a través de la utilidad systemctl.

Crea un nuevo archivo de servicio systemd para Wiki.js /etc/systemd/system/wikijs.service utilizando el siguiente comando del editor nano.

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

Introduce la siguiente configuración que permitirá que Wiki.js se ejecute en segundo plano como un servicio.

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

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always

User=wikijs
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar el nuevo archivo de servicio para Wiki.js.

sudo systemctl daemon-reload

Ahora puedes iniciar y habilitar el servicio wiki.js utilizando el siguiente comando. Esto iniciará Wiki.js en segundo plano en localhost con el puerto 3000 por defecto y lo habilitará para que se ejecute automáticamente al arrancar.

sudo systemctl start wikijs
sudo systemctl enable wikijs

empezar a activar wiki.js

Verifica el servicio wikijs utilizando el comando siguiente para asegurarte de que el servicio se está ejecutando.

sudo systemctl status wikijs

Debería aparecer la siguiente salida.

comprobación del servicio wiki.js

Por último, ejecuta el comando ss de abajo para verificar el puerto 3000 que utiliza la aplicación Wiki.js.

ss -tulpn | grep 3000

Si Wiki.js se está ejecutando, deberías ver que la aplicación Node.js utiliza el puerto 3000.

puerto de control

Configurar Nginx como Proxy Inverso

Ahora que Wiki.js se está ejecutando en localhost con el puerto 3000 por defecto. En el siguiente paso, crearás una nueva configuración de bloque de servidor Nginx que se utilizará como proxy inverso para Wiki.js. Antes de empezar, asegúrate de que tienes un nombre de dominio apuntando a la dirección IP de tu servidor.

Crea una nueva configuración de bloque de servidor Nginx /etc/nginx/sites-available/wikijs utilizando el siguiente comando del editor nano.

sudo nano /etc/nginx/sites-available/wikijs

Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio de tu instalación Wiki.js.

server {
    listen 80;
    server_name wiki.hwdomain.io;

root /opt/wikijs;

access_log  /var/log/nginx/wikijs.access.log;
error_log   /var/log/nginx/wikijs.error.log;

location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_set_header Host $http_host;
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_pass http://127.0.0.1:3000;
}
}

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para habilitar la configuración del bloque del servidor Wiki.js y verifica la sintaxis de Nginx.

sudo ln -s /etc/nginx/sites-available/wikijs /etc/nginx/sites-enabled
sudo nginx -t

Si la sintaxis de Nginx es correcta, deberías obtener una salida test is successful – syntax is ok.

configurar bloque servidor nginx

Ahora reinicia el servicio Nginx utilizando el siguiente comando para aplicar el nuevo bloque de servidor que has configurado.

sudo systemctl restart nginx

Una vez reiniciado Nginx, inicia tu navegador web preferido y visita el nombre de dominio de tu instalación de Wiki.js, como http://wiki.hwdomain.io/. Si todo va bien, deberías ver la página de instalación de Wiki.js así:

Página de instalación de wiki.js

Asegurando Wiki.js con Certificados SSL/TLS

En el siguiente paso, asegurarás tu instalación de Wiki.js con certificados SSL/TLS de Letsencrypt. Además, configurarás el paso automático de HTTP a HTTPS mediante el plugin Certtbot para Nginx.

Ejecuta el siguiente comando de certbot para generar nuevos certificados SSL/TLS desde letsencrypt. Asegúrate de cambiar los detalles del nombre de dominio y la dirección de correo electrónico con tu información.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d wiki.hwdomain.io

Una vez finalizado el proceso, tus certificados SSL estarán disponibles en el directorio /etc/letsencrypt/live/wiki.hwdomain.io/. En cuanto a la configuración del bloque del servidor Wiki.js, se configurará automáticamente con HTTPS a través del plugin Certbot Nginx.

Iniciar la instalación de Wiki.js

Vuelve a tu navegador web y visita tu dominio Wiki.js, por ejemplo, http://wiki.hwdomain.io/. Deberías ser redirigido automáticamente a una conexión segura HTTPS.

Ahora crea el usuario administrador para Wiki.js e introduce tu dirección de correo electrónico y contraseña. A continuación, haz clic en INSTALAR para confirmar la instalación.

instalar wiki.js

Una vez finalizada la instalación, deberías ser redirigido a tu página de inicio de sesión de Wiki.js. Introduce tu dirección de correo electrónico y contraseña de administrador, y haz clic en INICIAR SESIÓN.

Página de inicio de sesión Wiki.js

Si la instalación se ha realizado correctamente, deberías ver la página de bienvenida de Wiki.js. Desde aquí, puedes crear una nueva página de inicio o acceder al panel de administración de Wiki.js.

éxito de la instalación

Si haces clic en ADMINISTRACIÓN, deberías ver la página de administración de Wiki.js así:

Panel de administración de wiki.js

En la sección SISTEMA, haz clic en el menú Información del Sistema para obtener información detallada sobre tu instalación de Wiki.js. A continuación deberías ver que Wiki.js 2.5 está instalado con Node.js 18.x y PostgreSQL 15.x.

Información del sistema wiki.js

Conclusión

¡Ya está! Has seguido todos los pasos y has instalado Wiki.js en tu sistema Debian 12, con un servidor de base de datos PostgreSQL, Nginx como proxy inverso, y has asegurado la instalación mediante certificados SSL/TLS de Let’s Encrypt. Ya puedes empezar a crear la documentación de tu empresa con Wiki.js.

También te podría gustar...