Este es un artículo que había creado originalmente en mi blog, sin embargo, voy a compartirlo aquí en Lemmy, viendo que hace falta contenido sobre Kiwix en idioma español.

Aquí se va a explicar cómo crear un servidor de Kiwix, añadir contenidos, y hacer que se inicie tan pronto encendamos el servidor, sin necesidad de activarlo manualmente.

Esto ha sido probado en una Raspberry Pi 4 corriendo Raspberry Pi OS, pero también funciona bien en cualquier instalación de Debian y derivados.

Instalación:

Para ello vamos a necesitar instalar kiwix-tools. Si tu distribución GNU/Linux está basada en Debian, puedes instalarla con el comando:

sudo apt install kiwix-tools

Una vez lo hayas instalado, vamos a crear un archivo de configuración para poder ejecutar kiwix-serve como un servicio:

Configuración del servicio:

sudo nano /etc/systemd/system/kiwix-serve.service

Luego tendrás que colocar la siguiente configuración en el archivo de texto:

[Unit]
Description=Kiwix
		
[Service]
Type=simple
User=USUARIO 
ExecStart=/usr/bin/kiwix-serve --library /etc/kiwix/library.xml --port 8080 --daemon
Restart=always
RemainAfterExit=yes
		
[Install]
WantedBy=multi-user.target

Donde dice USUARIO escribe el nombre de usuario que utilizas en tu computadora.

Guarda el documento de texto después de copiar la configuración.

Ahora vamos a crear un directorio para guardar el archivo xml de la librería de Kiwix:

sudo mkdir /etc/kiwix

Después de realizar todo esto, vamos a crear un directorio en la carpeta Home de tu usuario llamada Kiwix. Puedes realizar esto utilizando el gestor de archivos gráfico. En la carpeta Kiwix puedes colocar los archivos Zim que hayan sido previamente descargados.

Añadir Contenidos:

Ahora podemos añadir los archivos Zim a la librería utilizando el comando kiwix-manage. Este tiene 3 funciones:

  1. Kiwix-manage /dirección/de/la/librería add dirección/del/archivo/zim. Este comando va a añadir un archivo Zim a la librería.
  2. Kiwix-manage /dirección/de/la/librería remove dirección/del/archivo/zim. Este comando va a eliminar un archivo Zim a la librería.
  3. Kiwix-manage /dirección/de/la/librería show dirección/del/archivo/zim. Mostrar el ZIM_ID de un archivo zim asignado a una librería existente.

Si tenemos un archivo llamado wikipedia.zim en la carpeta de Kiwix en Home, entonces podemos añadirlo utilizando el comando:

sudo kiwix-manage /etc/kiwix/library.xml add /home/USUARIO/Kiwix/wikipedia.zim

Presionamos la tecla ENTER. Automáticamente, va a añadir el archivo de librería en /etc/kiwix/ y va a añadir nuestro archivo Zim a la misma.

Ejecutar el Servicio:

Ahora, para iniciar el servidor vamos a ejecutar:

sudo systemctl enable kiwix-serve.service
sudo systemctl start kiwix-serve.service

Si queremos asegurarnos de que esté corriendo correctamente podemos escribir: sudo systemctl status kiwix-serve.service y el servicio está corriendo correctamente, el resultado debería ser parecido a esto:

 kiwix-serve.service - Kiwix
     Loaded: loaded (/etc/systemd/system/kiwix-serve.service; enabled; preset: >
     Active: active (exited) since Fri 2023-01-13 14:57:05 -04; 1 day 5h ago
    Process: 367 ExecStart=/usr/bin/kiwix-serve --library /etc/kiwix/library.xm>
   Main PID: 367 (code=exited, status=0/SUCCESS)
      Tasks: 5 (limit: 4151)
        CPU: 934ms
     CGroup: /system.slice/kiwix-serve.service
             └─422 /usr/bin/kiwix-serve --library /etc/kiwix/library.xml --por

Es recomendable posteriormente ejecutar sudo systemctl daemon-reload para poder reiniciar los servicios y que se ejecute correctamente, o directamente reiniciar la computadora.

Para poder acceder a la librería, podemos irnos al navegador disponible en nuestro servidor y escribir en la barra de URL’s: localhost:8080 entonces debería enviarnos a la página principal de nuestra librería de Kiwix.

Obtener IP del Servidor:

Para poder acceder a la librería desde otro dispositivo conectado a la misma red que nuestro servidor, primero necesitamos conseguir la dirección IP del mismo. Podemos hacerlo fácilmente con el comando: ip a | grep inet

El resultado debería ser similar a esto:

inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host 
inet 192.168.1.8/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
inet6 fe80::d403:8a0a:93f6:e6d/64 scope link noprefixroute 

En la tercera línea dice que mi dirección IP local es 192.168.1.8 entonces desde otro dispositivo puedo colocar en el navegador web la dirección 192.168.1.8:8080 para acceder a toda mi librería local de Kiwix.

Conclusiones:

Y de esta forma ya hemos creado un servidor local de Kiwix. Este se va a ejecutar al momento de encender la computadora, sin necesidad de que volvamos a interactuar con el programa o la computadora misma, salvo cuando queramos actualizar o añadir los contenidos disponibles.

Esto puede ser útil para implementarse en computadoras de bajos recursos, y ninguno de los pasos necesarios para el proceso de configuración del servidor dependen de una interfaz gráfica.

Agradezco mucho a la comunidad de Kiwix por ayudarme a buscar la forma más eficiente y conveniente para crear el servidor, y ahora les traigo el proceso detallado en idioma español.