Servidor local Kiwix: configuración en Raspberry Pi

Montar un servidor local Kiwix en una Raspberry Pi permite ofrecer Wikipedia, libros, cursos y otros contenidos educativos aunque la conexión a internet sea lenta, cara o inexistente.

Servidor local Kiwix: configuración en Raspberry Pi

El acceso se realiza desde móviles y ordenadores conectados a la misma red inalámbrica, sin que cada dispositivo tenga que descargar una copia de los contenidos.

El reto no está solo en instalar Kiwix. Un despliegue útil necesita resolver cuatro cuestiones desde el principio: qué contenidos caben en el almacenamiento disponible, cómo se conectarán los usuarios, cómo arrancará el servicio tras un corte de corriente y cómo se ampliará la instalación cuando el proyecto crezca. Diseñemos la solución como una pequeña infraestructura comunitaria, no como una prueba aislada.

1. Define el uso antes de preparar la Raspberry Pi

La primera decisión no es técnica. Es operativa: determina quién utilizará la biblioteca digital, desde dónde se conectará y qué contenidos necesita realmente.

Una instalación para un aula de formación puede trabajar con una colección pequeña de Wikipedia, manuales y cursos. En cambio, un centro comunitario que atiende a varias comunidades puede necesitar varios discos, una red inalámbrica externa y un catálogo organizado por edades o áreas de aprendizaje.

Antes de comprar hardware, concreta estos puntos:

  • Usuarios previstos: alumnado, docentes, promotores comunitarios, personal sanitario, cooperativas o público general.
  • Lugar de uso: aula, biblioteca, centro comunitario, espacio rural o varios puntos de acceso.
  • Tipo de dispositivos: teléfonos Android, ordenadores portátiles, tabletas y equipos antiguos.
  • Contenidos prioritarios: enciclopedia, libros, vídeos, documentación técnica o recursos educativos.
  • Frecuencia de actualización: una colección fija puede mantenerse durante meses; una biblioteca de actualidad requiere un proceso periódico de descarga y sustitución.
  • Nivel de soporte local: alguien debe poder reiniciar el equipo, revisar el almacenamiento y explicar a los usuarios cómo conectarse.

La ventaja de Kiwix es que distribuye contenidos en archivos ZIM. Estos archivos funcionan como paquetes de información que el servidor publica mediante una interfaz web. El usuario abre un navegador, entra en la dirección local de la Raspberry Pi y consulta la biblioteca sin consumir datos móviles.

Una biblioteca digital sin conexión solo es útil si la comunidad puede encontrarla, abrirla y mantenerla. La facilidad de acceso forma parte de la arquitectura.

Elige una colección que encaje con el almacenamiento

El tamaño de los archivos cambia mucho según el contenido. Una colección de artículos sin imágenes puede ocupar poco, mientras que una versión completa de Wikipedia con imágenes puede requerir más de 100 GB. Por eso, una tarjeta MicroSD de 32 GB no sirve para almacenar cualquier biblioteca, aunque sí puede ser suficiente para una selección reducida.

Como punto de partida:

EscenarioAlmacenamiento razonableEnfoque recomendado
Prueba en un aulaMicroSD de 32 GBColección pequeña de artículos, libros y recursos concretos
Biblioteca comunitaria inicialMicroSD de 64 GB o almacenamiento USBVarios contenidos ZIM seleccionados y catálogo local
Colección ampliaDisco USB de mayor capacidadWikipedia, libros, vídeos y futuras ampliaciones
Despliegue con crecimientoDisco externo separado del sistemaSistema operativo en la tarjeta y contenidos en almacenamiento ampliable

No mezcles el sistema operativo y una colección grande en una tarjeta ajustada. Cuando el espacio se agota, las actualizaciones fallan y la recuperación se vuelve más compleja. La separación entre sistema y contenidos facilita la sustitución de la Raspberry Pi, la copia de seguridad y la ampliación del proyecto.

2. Prepara el hardware con una hoja de ruta clara

Kiwix puede ejecutarse en Raspberry Pi 3B, 3B+, 4B, 400, 5 y Zero 2 W. La elección depende del número de usuarios, del volumen de contenidos y del tipo de red que quieras desplegar.

Para una instalación básica, la arquitectura mínima incluye:

  • Raspberry Pi compatible.
  • Fuente de alimentación estable y adecuada al modelo.
  • Tarjeta MicroSD para el sistema operativo.
  • Almacenamiento adicional si los archivos ZIM ocupan mucho.
  • Disipación térmica, especialmente en equipos que funcionarán durante muchas horas.
  • Adaptador o punto de acceso inalámbrico externo cuando la red integrada no sea suficiente.
  • Cable de red para la puesta en marcha y las tareas de mantenimiento.

La Raspberry Pi Zero 2 W puede resultar útil para una biblioteca pequeña y con pocos usuarios. Para un espacio de formación con más conexiones simultáneas, una Raspberry Pi 4B o 5 ofrece más margen de procesamiento y almacenamiento. Eso no significa que la Wi-Fi integrada pueda atender a cientos de personas: esa capacidad no debe darse por supuesta. Si el proyecto necesita más cobertura o más conexiones, utiliza un punto de acceso dedicado.

Separa tres funciones

Una instalación sostenible divide el trabajo en tres capas:

1. Sistema: Raspberry Pi OS y las herramientas de administración.

2. Servicio: kiwix-serve, que entrega los archivos ZIM por HTTP.

3. Datos: biblioteca de contenidos almacenada en la tarjeta o en un disco USB.

Esta separación permite iterar sin rehacerlo todo. Puedes cambiar la colección sin reinstalar el sistema, sustituir el punto de acceso sin tocar los contenidos y migrar el disco a otra Raspberry Pi si el equipo original falla.

En el proyecto Kiwix Hotspot, conocido también como Offspot, se utiliza Raspberry Pi OS Lite como base. Su esquema de particiones incluye /boot en FAT32, / en ext4 y /data en ext4. Esta organización resulta especialmente útil cuando el dispositivo se concibe desde el principio como un servidor autónomo de contenidos.

Para un despliegue propio, una estructura similar puede organizarse así:

  • /srv/kiwix/zim para los archivos ZIM.
  • /srv/kiwix/catalogo para el catálogo y sus metadatos.
  • /var/log/kiwix para los registros, si se decide separarlos.
  • Una unidad USB montada de forma permanente para las colecciones grandes.

No hace falta complicar la primera versión. Lo importante es que la ubicación de los contenidos sea estable y que el equipo de formación pueda documentarla.

3. Instala y prueba kiwix-serve

El componente central es el binario ejecutable kiwix-serve, incluido en la suite kiwix-tools. Su función es publicar los archivos ZIM mediante HTTP en un puerto definido, normalmente el 8080 o, si la configuración lo permite, el 80.

El proceso de despliegue debe hacerse por fases. No copies una biblioteca completa antes de comprobar que el servicio responde correctamente.

Fase 1: comprueba el sistema

Instala Raspberry Pi OS Lite si no necesitas un escritorio gráfico. Para este proyecto, una instalación ligera consume menos recursos y reduce los componentes que pueden fallar.

Después de iniciar el equipo:

1. Actualiza los paquetes del sistema.

2. Define un nombre reconocible para la Raspberry Pi.

3. Comprueba la fecha y la hora.

4. Verifica el espacio disponible con df -h.

5. Identifica el almacenamiento externo con lsblk.

6. Crea la carpeta destinada a los archivos ZIM.

7. Comprueba que el usuario de administración tiene permisos de lectura sobre esa carpeta.

La comprobación del almacenamiento es una tarea pequeña que evita problemas posteriores. Un disco USB puede estar conectado físicamente y, sin embargo, no estar montado en la ruta que utiliza el servicio.

Fase 2: coloca un archivo ZIM de prueba

Empieza con un único archivo. Puede ser un recurso educativo pequeño o una colección limitada de artículos. Copiar primero un archivo manejable ayuda a validar la red, el servidor y la experiencia de navegación antes de invertir tiempo en una biblioteca completa.

Si el archivo está en una memoria USB, cópialo o déjalo en una ruta permanente. Evita trabajar desde una ubicación temporal que desaparezca después de reiniciar.

La ejecución básica de kiwix-serve debe indicar la carpeta o los archivos que quieres publicar y el puerto de escucha. Una configuración típica utiliza el puerto 8080. Desde otro dispositivo conectado a la misma red, abre el navegador y accede a la dirección IP de la Raspberry Pi seguida de :8080.

Por ejemplo, si el equipo tiene la dirección local 192.168.1.20, la dirección de prueba sería http://192.168.1.20:8080. La dirección concreta dependerá de tu red; no la fijes en la documentación hasta haber decidido cómo asignar las direcciones.

Fase 3: organiza la biblioteca con kiwix-manage

Cuando la colección crece, abrir archivos ZIM uno por uno deja de ser práctico. kiwix-manage permite indexar y gestionar los contenidos dentro de un archivo de catálogo llamado library.xml.

El catálogo cumple una función operativa: presenta la biblioteca de forma ordenada y permite que el usuario distinga entre libros, enciclopedias, cursos y otros recursos. No es lo mismo entregar diez archivos con nombres técnicos que ofrecer una página donde cada contenido tiene un título comprensible.

Planifica el catálogo con una lógica que la comunidad entienda:

  • Recursos de alfabetización digital.
  • Enciclopedias y consulta general.
  • Salud y prevención.
  • Agricultura y producción local.
  • Educación primaria y secundaria.
  • Formación profesional.
  • Software libre y reparación de equipos.
  • Lecturas en español y lenguas utilizadas por la comunidad.

No inventes una clasificación excesiva. Si el equipo tiene que actualizar decenas de categorías manualmente, el mantenimiento se convertirá en una carga. Empieza con pocas áreas y observa qué buscan realmente los usuarios.

La gestión de los archivos debe incluir un registro sencillo: nombre del contenido, tamaño, fecha de incorporación, idioma y responsable de la revisión. Este inventario evita duplicados y permite decidir qué retirar cuando el almacenamiento llegue al límite.

4. Convierte la prueba en un servicio permanente con Systemd

Ejecutar kiwix-serve desde una terminal sirve para validar el despliegue, pero no es una solución de producción. El proceso se detendrá al cerrar la sesión o cuando la Raspberry Pi se reinicie. Para un servidor local comunitario, el servicio debe arrancar automáticamente.

Systemd permite crear una unidad de servicio en /etc/systemd/system/kiwix.service. Esa unidad define:

  • El usuario que ejecutará el proceso.
  • La ruta de los archivos ZIM.
  • El puerto de escucha.
  • La política de reinicio.
  • La dependencia respecto a la red y al almacenamiento.
  • El comportamiento durante el arranque y la parada del sistema.

La secuencia de activación es directa:

1. Crea el archivo de servicio.

2. Recarga la configuración de Systemd.

3. Activa el inicio automático.

4. Arranca el servicio.

5. Comprueba su estado.

6. Consulta los registros si no responde.

7. Reinicia la Raspberry Pi y verifica que la biblioteca vuelve a estar disponible.

En la práctica, los comandos de control serán systemctl daemon-reload, systemctl enable, systemctl start y systemctl status, siempre adaptados al nombre de la unidad que hayas creado.

No basta con que el estado aparezca como activo. Prueba el acceso desde un móvil, un ordenador y, si es posible, otro dispositivo diferente. Un servicio puede estar funcionando en el propio equipo y no ser accesible desde la red por un problema de dirección, cortafuegos o punto de acceso.

Evita que un disco lento rompa el arranque

Si los archivos ZIM están en un disco USB, el almacenamiento puede tardar más que el sistema en estar disponible. En ese caso, el servicio debe iniciar después de que la unidad esté montada. De lo contrario, kiwix-serve puede arrancar con una ruta vacía y parecer que la biblioteca ha desaparecido.

La solución es coordinar el montaje del disco y el arranque del servicio. Documenta la ruta exacta y prueba varios reinicios. También conviene que el equipo se recupere tras una interrupción eléctrica sin depender de una intervención técnica inmediata.

Una estrategia de mantenimiento básica incluye:

  • Copia de seguridad del archivo library.xml.
  • Registro de los nombres y tamaños de los archivos ZIM.
  • Revisión periódica del estado del disco.
  • Comprobación del espacio libre.
  • Prueba mensual de reinicio.
  • Copia de la configuración de red.
  • Una guía impresa con la dirección local y los pasos de recuperación.

La documentación es una capacidad instalada. Si solo una persona sabe cómo restaurar el servicio, el proyecto depende demasiado de ella.

El objetivo no es tener una Raspberry Pi encendida, sino una capacidad local que pueda recuperarse, explicarse y transferirse.

5. Crea una red inalámbrica local para el acceso

El servidor puede conectarse a una red existente, pero en muchos espacios comunitarios conviene crear una red local independiente. Así, los usuarios se conectan directamente a la Raspberry Pi o al punto de acceso asociado, sin necesidad de disponer de internet.

Una red local funcional necesita tres piezas:

  • Punto de acceso Wi-Fi: anuncia el nombre de la red y gestiona las conexiones inalámbricas.
  • Asignación de direcciones: entrega a cada dispositivo una dirección IP local.
  • Resolución de nombres: permite acceder al servicio mediante un nombre sencillo, si se configura.

En Raspberry Pi OS, hostapd se utiliza habitualmente para gestionar la red inalámbrica y dnsmasq para asignar direcciones mediante DHCP y ofrecer resolución DNS local.

Configura la red en una secuencia controlada

No configures todos los componentes a la vez. Trabaja por capas:

1. Conecta la Raspberry Pi por cable durante la instalación.

2. Instala y configura hostapd.

3. Define el nombre de la red y la contraseña.

4. Configura una red local con un rango privado.

5. Ajusta dnsmasq para distribuir direcciones.

6. Asocia el servidor Kiwix a una dirección estable.

7. Conecta un móvil y comprueba que recibe una dirección.

8. Abre la página de Kiwix desde el navegador.

9. Repite la prueba con varios dispositivos.

La dirección estable es fundamental para la formación. Si cada día cambia la IP, el facilitador tendrá que explicar una dirección distinta y los materiales impresos quedarán obsoletos. Puedes reservar una dirección mediante la configuración del servicio DHCP o establecer una dirección fija en el servidor, siempre que mantengas documentado el esquema.

El nombre de la red debe ser reconocible y corto. Evita nombres genéricos que se confundan con otras redes cercanas. Una denominación vinculada al centro o a la comunidad facilita el acompañamiento presencial.

¿Hace falta un punto de acceso externo?

La Wi-Fi integrada de la Raspberry Pi puede servir para una prueba, un grupo pequeño o un aula con pocas conexiones. Sin embargo, la cobertura y la cantidad de usuarios dependen del modelo, del entorno físico, de las interferencias y del tipo de dispositivos.

Utiliza un punto de acceso externo cuando:

  • La señal no cubre el aula o la biblioteca.
  • Hay paredes gruesas o varias salas.
  • Se conectan muchos teléfonos al mismo tiempo.
  • La Raspberry Pi debe reservar recursos para servir contenidos.
  • Se necesita una red más estable y fácil de sustituir.
  • El proyecto puede crecer a varios puntos de acceso.

El punto de acceso externo no sustituye al servidor Kiwix. Su función es transportar el tráfico local; la Raspberry Pi sigue entregando los contenidos. Esta división facilita la escalabilidad: puedes añadir cobertura sin migrar la biblioteca.

6. Diseña la experiencia para usuarios que no son técnicos

Un servidor de contenidos sin internet fracasa si la comunidad necesita conocimientos de administración para utilizarlo. El acceso debe explicarse en pocos pasos y repetirse de forma visible.

Prepara una tarjeta, cartel o guía breve con:

1. Nombre de la red Wi-Fi.

2. Contraseña, si la red está protegida.

3. Dirección local del servidor.

4. Instrucción para abrir el navegador.

5. Indicaciones para buscar y descargar, cuando el contenido lo permita.

6. Persona o equipo responsable de resolver incidencias.

No presupongas que todos los usuarios saben distinguir entre internet y una red local. Una persona puede estar conectada al Wi-Fi y no tener acceso a páginas externas; eso no significa que el servicio esté averiado. Explica que la biblioteca está disponible dentro de la red del centro y que el navegador debe abrir la dirección local.

Haz una sesión de incorporación de corta duración. La primera parte debe mostrar cómo conectarse. La segunda, cómo buscar un contenido. La tercera, cómo guardar una página o utilizarla sin conexión después de salir del centro, si esa función está disponible.

Recoge las preguntas que aparezcan durante las primeras sesiones. Si varias personas no encuentran el catálogo, el problema no es de formación individual: probablemente la interfaz o la señalización necesitan una iteración.

7. Gestiona las actualizaciones como un proyecto, no como una copia de archivos

Los contenidos ZIM no deberían sustituirse sin planificación. Una actualización puede ocupar mucho espacio temporal, tardar horas o dejar el disco sin capacidad suficiente. Define una hoja de ruta de contenidos.

Fase inicial: colección mínima viable

Selecciona los recursos que respondan a las necesidades inmediatas. El objetivo es poner en marcha una biblioteca útil, no reunir todo lo disponible.

Evalúa cada contenido con estos criterios:

  • Utilidad para la comunidad.
  • Idioma y nivel de lectura.
  • Tamaño del archivo.
  • Fecha de actualización.
  • Compatibilidad con los dispositivos disponibles.
  • Facilidad para localizarlo desde el catálogo.
  • Necesidad de imágenes, vídeos o audio.

Fase de validación: uso real

Durante las primeras semanas, observa qué se consulta y qué se queda sin utilizar. No necesitas una plataforma compleja de análisis. Basta con recoger comentarios de docentes, estudiantes y responsables del espacio.

Pregunta qué contenidos faltan, cuáles resultan difíciles de encontrar y qué dispositivos se utilizan. Esta información permite reasignar el almacenamiento a recursos con mayor impacto.

Fase de ampliación: nuevas capacidades

Cuando la operación básica sea estable, añade contenidos, mejora la cobertura inalámbrica o incorpora otra Raspberry Pi. No amplíes todas las capas a la vez. Una buena iteración modifica una variable, mide el resultado y deja documentado el cambio.

El crecimiento puede seguir varias rutas:

  • Más almacenamiento en el mismo servidor.
  • Un punto de acceso externo.
  • Varios puntos de acceso conectados a la misma red.
  • Un segundo servidor con otra colección temática.
  • Una unidad de copia para recuperación.
  • Un equipo local formado para administrar el sistema.

La última opción suele ser la más valiosa. El hardware se compra una vez; las capacidades instaladas permiten mantener el proyecto durante años.

Errores que bloquean la puesta en marcha

Hay fallos recurrentes que conviene anticipar:

1. Elegir la tarjeta por precio y no por capacidad.

Una tarjeta de 32 GB puede ser válida para una colección pequeña, pero no para una Wikipedia completa con imágenes. Calcula el tamaño antes de descargar.

2. Guardar todo en la partición del sistema.

Cuando los contenidos llenan /, las actualizaciones y los registros empiezan a fallar. Separa el sistema de la biblioteca.

3. Probar solo desde la Raspberry Pi.

Que la página funcione en el propio equipo no demuestra que sea accesible para los usuarios. Haz pruebas desde varios dispositivos conectados por Wi-Fi.

4. No automatizar el arranque.

Si kiwix-serve depende de una terminal abierta, el servicio no es resistente a reinicios ni cortes de corriente. Configura Systemd y comprueba la recuperación.

5. Usar una dirección IP cambiante.

La documentación y los carteles dejan de servir. Reserva una dirección estable o utiliza un nombre local fácil de recordar.

6. Confiar demasiado en la Wi-Fi integrada.

La cobertura y la capacidad no son ilimitadas. Separa el servidor del acceso inalámbrico cuando el número de usuarios o el espacio físico lo exijan.

7. No mantener un inventario.

Sin un registro de archivos ZIM, tamaños y fechas, la biblioteca se llena de duplicados y se vuelve difícil de actualizar.

8. Convertir la instalación en conocimiento exclusivo de una persona.

Forma al menos a dos responsables y deja instrucciones de recuperación. La continuidad debe estar prevista desde el primer despliegue.

Próximos pasos para ponerlo en producción

Planifica el trabajo en una secuencia breve y verificable:

  • Selecciona la primera colección y calcula su tamaño real.
  • Elige Raspberry Pi, tarjeta y almacenamiento externo según esa colección.
  • Instala Raspberry Pi OS Lite y documenta el nombre del equipo.
  • Coloca un archivo ZIM de prueba.
  • Ejecuta kiwix-serve y valida el acceso en el puerto 8080.
  • Crea el catálogo con kiwix-manage.
  • Automatiza el servicio mediante Systemd.
  • Configura la red local con hostapd y dnsmasq cuando no exista una red adecuada.
  • Fija una dirección local estable.
  • Prueba el acceso desde varios dispositivos.
  • Prepara una guía de uso para la comunidad.
  • Define quién revisará el almacenamiento, el catálogo y las copias de seguridad.
  • Programa una primera revisión después de las sesiones iniciales.

La configuración de un servidor local Kiwix en Raspberry Pi es técnicamente accesible, pero su valor depende de la gestión. El archivo ZIM es solo el contenido; la red, el catálogo, la documentación y la formación convierten ese contenido en una biblioteca digital offline comunitaria.

Empieza con una colección pequeña, estabiliza el arranque, prueba la red y mide el uso. Después, amplía capacidades con una hoja de ruta realista. Así la Raspberry Pi deja de ser un dispositivo experimental y se convierte en una infraestructura local para aprender, consultar información y trabajar incluso cuando internet no está disponible.

Preguntas frecuentes

¿Qué modelos de Raspberry Pi son compatibles con Kiwix?
Kiwix puede ejecutarse en los modelos Raspberry Pi 3B, 3B+, 4B, 400, 5 y Zero 2 W.
¿Por qué es recomendable usar un almacenamiento externo para los archivos ZIM?
Separar el sistema operativo de los contenidos evita que el agotamiento del espacio en la tarjeta MicroSD provoque fallos en las actualizaciones y facilita las copias de seguridad.
¿Cómo pueden los usuarios acceder a la biblioteca desde sus dispositivos?
Los usuarios deben conectarse a la misma red inalámbrica que la Raspberry Pi y acceder a la dirección IP local del servidor a través de un navegador web.
¿Cuándo es necesario añadir un punto de acceso Wi-Fi externo?
Se recomienda cuando la señal de la Wi-Fi integrada no cubre todo el espacio, hay paredes gruesas, se conectan muchos usuarios simultáneamente o se requiere una red más estable.
¿Para qué sirve la herramienta kiwix-manage?
Permite indexar y gestionar los archivos ZIM dentro de un catálogo centralizado, facilitando que los usuarios encuentren los recursos de forma ordenada.