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.
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.
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.
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
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;
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.
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.
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
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.
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.
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.
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í:
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.
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.
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.
Si haces clic en ADMINISTRACIÓN, deberías ver la página de administración de Wiki.js así:
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.
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.