TIPS – Kiwix como servicio en Ubuntu Server 16.04 para tu LAN

Kiwix es una aplicación que te permite llevar archivos zim a todos los lugares que quieras como ellos mismos dicen en su wiki:

¡Kiwix te permite tener toda la Wikipedia en tu mano donde quiera que vayas! En un barco, en medio de la nada o en la cárcel, Kiwix te da acceso al conocimiento humano. ¡No necesitas Internet, todo se almacena en tu ordenador, memoria USB o DVD!

Famosa por ser la aplicación en la que muchos tenemos Wikipedia offline, este articulo tiene como referencia varias cosas que he encontrado en Internet  ademas del articulo del colega Lázaro de como crear un servicio kiwix pero yo quiero llevarlo un poco mas allá y explicar un par de cosas que no están explicadas en su articulo.

Preparando todo lo necesario

Primero vamos a descargar kiwix hay versiones para todos los sistemas operativos pero en este caso voy a descargar la versión 64 bits para linux.

Evidentemente necesitamos un archivo zim con los datos que necesitamos podemos usar uno que ya tengamos como es mi caso que tengo wikipedia_es_all_2017-05.zimecured_es_all_2017-12.zim los archivos de zim están nombrados por tipodewiki, idioma, características (sin imágenes, sin vídeos, todos el contenido) y la fecha de creación, podemos descargarlos desde http://download.kiwix.org/zim/.

Una vez que tengamos todo montamos nuestro servidor en mi caso un CT en PVE con 512 MB de RAM 1 core y 50GB, en mi caso use como ruta de toda mi configuración para kiwix /opt.

Extraemos kiwix en la carpeta /opt

 

Una vez que tengamos kiwix en /opt para ver nuestra wiki en la web desde cualquier equipo de la red podemos usar:

El servicio kiwix-serve provee algunas opciones que utilizaremos mas adelante:

  • –port=PORT para especificar el puerto en el que va a escuchar (80 por omisión)
  • –index=foobar.idx para especificar el directorio de índice de texto completo
  • –daemon para ejecutar el programa en segundo plano
  • –attachToProcess=PID para adjuntar el proceso kiwix-serve a otros procesos
  • –verbose para obtener algunos registros (logs)

Para una mayor organización de todo el contenido me he creado una carpeta data con varias sub-carpetas(no explico como crear carpetas ni el manejo de sus permisos porque no es el objetivo del manual):

  • content que sera donde agrupare los archivos zim que vaya agregando a mi server
  • index que es donde indexare los datos de cada fichero zim para facilitar la búsqueda a los usuarios
  • library para poner el library.xml que tiene toda la información sobre los archivos zim de nuestro server; esta ultima la puedes omitir y colocar library.xml dentro de la misma carpeta data.

Indexando datos de nuestros ficheros zim para mejorar la búsqueda

Otra de las utilidades de Kiwix es kiwix-index que nos ayuda con el indexado de nuestros archivos zim para eso vamos a hacer uso de la carpeta /opt/data/index y vamos a repetir el comando para cuantos archivos zim queramos indexar, en la investigación no encontré como indexar mas de un archivo a la vez; ademas cada archivo indexado va a llevar su tiempo..:D

 

Para la indexar uso el tipodewiki.idx por lo tanto para la ecured_es_all_2017-12.zim nos quedaría ecured.idx

Creando el fichero library.xml

Como les comente al principio del articulo cree /opt/data/ para poner ahí los ficheros de configuración uno de estos ficheros es el library.xml, pero debemos crearlo agregándole tantos ficheros zim tengamos usando la utilidad kiwix-manage

De lo anterior va a resultar un archivo library.xml con los siguientes datos y a medida que agreguen ficheros zim con kiwix-manage crecerá.

Creando Kiwix como servicio en Ubuntu 16.04 con systemd

Primero debemos conocer que los unit files(archivos de unidad) se emplean en la configuración de servicios. Son archivos de texto que contienen las diferentes instrucciones y están alojados por defecto en la ruta /etc/systemd/system/. Para profundizar un poco mas de estos archivos luego voy a escribir un articulo de como crear servicios en systemd con todas sus características o puede ser algo que le encarguemos a Arian @linuxcuba(leerse la regla 6.2)

Vamos a crear un fichero unit de nombre kiwix.service(para los nombres de los units de usa nombre.service) con nuestro editor preferido vamos a crear el fichero unit, Ubuntu trae por defecto nano yo prefiero vim para la creación del unit file  vim /etc/systemd/system/kiwix.service, y le agregamos el siguiente código:

 

Como pueden ver en lugar de llamar directamente al fichero zim como hice anteriormente estoy usando library.xml, esto es debido a que con el library.xml podemos cargar mas de un fichero zim ademas también agregue la opción –index que no ayudara en la búsqueda dentro del contenido y no solo en los títulos.

Solo nos queda acceder a nuestro servidor y disfrutar del contenido de las wikis en nuestra red.


Saludos, hasta un próximo articulo…

(Visited 586 times, 1 visits today)
Rafael L. Salgueiro
Sobre Rafael L. Salgueiro 8 Artículos
Administrador de redes y sistemas. Melómano, hedonista Usuario de GNU/Linux, Linux-User: #418573. Amante de las tecnologías en general.

2 Comentarios

  1. Muy bueno el artículo, pero con un pequeño error, si vemos el USAGE del wiki-manage:

    kiwix-manage LIBRARY_PATH add ZIM_PATH [–zimPathToSave=../content/foobar.zim] [–current] [–indexBackend=xapian] [–indexPath=FULLTEXT_IDX_PATH] [–url=http://…metalink]

    Entonces el paso de añadir ZIMS a la librería, sería:

    /opt/kiwix/bin/kiwix-manage /opt/kiwix/data/library/library.xml add /opt/kiwix/data/content/wikibooks_es_all_2017-02.zim –indexPath=/opt/kiwix/data/index/wikibooks.idx

    [email protected]

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*