Biblioteca digital offline: instalación de Kiwix en red local
En una escuela rural de Nicaragua, un grupo de docentes puede preparar clases de ciencias sin depender de que una página web cargue en tiempo real.

Biblioteca digital offline: instalación de Kiwix en red local
No es una escena excepcional: para muchos centros educativos, telecentros y bibliotecas comunitarias, la conectividad sigue siendo cara, intermitente o directamente inexistente. Cuando el ancho de banda se mide en megabytes contados y los datos móviles se agotan antes del mediodía, hablar de una biblioteca digital parece una promesa difícil de sostener.
Kiwix cambia el punto de partida. Los archivos ZIM deben descargarse previamente, mientras el equipo tenga conexión, y después pueden servirse desde un dispositivo dentro de la propia red local. Así, el servidor permite consultar Wikipedia sin conexión, junto con Wikibooks, manuales técnicos, materiales educativos o recursos multimedia. El contenido ya no se solicita a internet cada vez que alguien abre una página: permanece almacenado en el centro y se entrega a los navegadores conectados al mismo Wi-Fi o a la red Ethernet.
La idea de una biblioteca digital offline Kiwix con configuración local no exige montar un centro de datos. Puede funcionar con una Raspberry Pi, un miniordenador o un servidor que ya exista en la escuela. Lo importante no es solo instalar el programa, sino organizar el almacenamiento, hacer que el servicio arranque solo y dejar una red sencilla de usar para quien no tiene por qué saber qué ocurre detrás.
Arquitectura de Kiwix-serve: cómo funciona en entornos sin conexión
Kiwix-serve es un servidor web ligero cuya función es entregar contenido empaquetado en archivos ZIM a los navegadores de una red. No necesita internet para responder a las consultas: el texto, las imágenes, las hojas de estilo y los archivos multimedia ya están almacenados en el dispositivo que ejecuta el servicio.
Cuando un usuario escribe la dirección IP local del servidor, Kiwix-serve recibe la petición HTTP y devuelve el contenido desde el almacenamiento interno o desde el disco conectado. Para el usuario, la experiencia se parece a consultar una web convencional, con una diferencia decisiva: la página no sale del recinto. Viaja desde la Raspberry Pi o el servidor hasta el punto de acceso Wi-Fi, y de ahí al teléfono, tableta u ordenador que la está consultando.
La clave no es tener internet dentro del aula, sino haber llevado antes el contenido hasta un equipo que pueda compartirlo localmente.
Cada archivo ZIM puede contener una colección completa y funcionar como un recurso independiente. En un mismo servidor pueden convivir una edición de Wikipedia en español, un conjunto de manuales médicos, materiales escolares, Wikibooks o contenidos de aprendizaje audiovisual. La biblioteca no depende de que todos esos recursos tengan el mismo origen ni de que estén disponibles en línea en el momento de la consulta. Depende, eso sí, de que el archivo correspondiente se haya descargado previamente y se conserve íntegro en el almacenamiento local.
Este punto conviene dejarlo claro porque suele producirse una confusión frecuente: Kiwix no descarga Wikipedia en el momento en que un estudiante la busca. El equipo administrador necesita elegir los contenidos, descargarlos cuando haya una conexión disponible —en la escuela, en otra sede o mediante una unidad externa— y copiarlos después al servidor local. A partir de ese momento, los usuarios pueden consultar la versión almacenada sin conexión. Si se quiere renovar la colección, habrá que repetir el proceso de descarga y actualización.
Kiwix-serve puede servir varios archivos ZIM directamente, sin necesidad de crear una biblioteca XML. Por ejemplo, si se le pasan varios archivos como argumentos al iniciar el proceso, el servidor puede ponerlos a disposición del navegador. Esta opción resulta útil para una prueba rápida, una instalación pequeña o un equipo en el que el administrador prefiera mantener una orden de arranque sencilla.
La biblioteca XML aparece cuando se necesita una presentación más ordenada. kiwix-manage permite registrar varios ZIM en un archivo de biblioteca que Kiwix-serve carga mediante --library. El resultado es una página inicial con un catálogo, títulos y enlaces de acceso más fáciles de entender para docentes y estudiantes. No es una condición para servir varios ZIM, sino una herramienta de organización y navegación que adquiere valor a medida que crece la colección.
El servidor puede escuchar en el puerto TCP 80, habitual para HTTP, o en otro puerto si ese espacio ya está ocupado. Con -p 8080, por ejemplo, el acceso quedaría en la dirección local del servidor seguida de :8080. Elegir un puerto alternativo durante las pruebas suele evitar conflictos; para el uso diario conviene que la dirección sea lo más fácil posible de recordar.
También es útil separar tres piezas que a menudo se mezclan:
- Los archivos ZIM contienen los contenidos que se van a consultar. Son la biblioteca propiamente dicha y deben existir en el disco antes de que Kiwix pueda servirlos.
- Kiwix-serve entrega esos contenidos a través del navegador y atiende las peticiones de los equipos conectados.
- Kiwix-manage mantiene un registro de los ZIM que se quieren presentar como una biblioteca común.
Esa separación ayuda a diagnosticar problemas. Si la página no abre, probablemente hay una cuestión de red, puerto o servicio. Si abre pero falta un contenido, hay que revisar el archivo ZIM o la biblioteca XML. Y si el contenido aparece pero no se puede consultar completo, el problema puede estar en el almacenamiento, en una copia incompleta o en los permisos de lectura.
Preparación del hardware y despliegue del servidor en red local
Para un primer despliegue comunitario, una Raspberry Pi ofrece una combinación razonable de consumo bajo, tamaño reducido y mantenimiento sencillo. Una Pi 3B+ puede servir para un piloto o para un grupo pequeño. Una Pi 4 o Pi 5 proporciona más margen cuando hay más usuarios, la biblioteca ocupa mucho espacio o se quiere mantener el sistema preparado para futuras ampliaciones.
La memoria RAM no es el único criterio. En una instalación de Kiwix, el almacenamiento suele convertirse antes en la limitación real. Los archivos ZIM pueden ser grandes, especialmente cuando incluyen imágenes, vídeos o una colección extensa de artículos. Una tarjeta SD puede bastar para probar el servicio, pero un SSD o un disco USB ofrece una opción más cómoda para una biblioteca que se vaya a actualizar y utilizar durante años.
Antes de instalar Kiwix, conviene tomar varias decisiones prácticas:
- Conexión de red: Ethernet es preferible cuando el servidor va a permanecer en un aula o en una biblioteca fija. El Wi-Fi simplifica la instalación y permite mover el equipo, pero añade otra variable que diagnosticar.
- Almacenamiento: guarda los ZIM en una unidad con espacio suficiente para las versiones actuales y para una copia temporal durante las actualizaciones. No calcules el espacio solo con el tamaño de la versión final: una actualización segura necesita sitio para el archivo nuevo antes de retirar el anterior.
- Alimentación: una fuente inestable puede provocar reinicios y daños en el sistema de archivos. En lugares con cortes frecuentes, un pequeño sistema de respaldo eléctrico puede ser más valioso que comprar un equipo más potente.
- Ubicación: el servidor debe quedar protegido del polvo, la humedad y el acceso accidental, pero no encerrado en un lugar sin ventilación.
- Dirección local: una reserva DHCP en el router o una dirección local estable facilita que los docentes sepan dónde encontrar la biblioteca.
- Acceso físico: si cualquiera puede desconectar el disco, apagar la Raspberry o retirar la tarjeta de memoria, el problema deja de ser informático y pasa a ser de organización del espacio.
La instalación del sistema operativo puede hacerse con Raspberry Pi OS Lite o con una edición completa. La versión Lite consume menos recursos y resulta suficiente si el equipo se administra por SSH o desde una terminal. Una interfaz gráfica puede ser conveniente durante la puesta en marcha si el personal local va a gestionar el equipo directamente.
Después de instalar el sistema, actualiza los paquetes con sudo apt update && sudo apt full-upgrade y reinicia. Crea un usuario específico para el servicio, por ejemplo kiwix, en lugar de ejecutar el servidor permanentemente como administrador. El directorio que contiene los ZIM debe permitir lectura al usuario del servicio, pero no escritura indiscriminada desde cualquier cuenta de la red.
La estructura puede ser tan sencilla como /data/zim para los archivos y /data/biblioteca.xml para el índice. El nombre de las carpetas importa menos que la constancia: si las rutas cambian entre pruebas, el servicio dejará de encontrar los contenidos cuando se convierta en una unidad permanente.
Hay dos formas habituales de desplegar el binario:
1. Paquete o binario precompilado. Se instala una versión compatible con la arquitectura del equipo, se comprueba que kiwix-serve puede ejecutarse y se deja el binario en una ruta estable, como /usr/local/bin/kiwix-serve.
2. Contenedor Docker. Se mantiene Kiwix dentro de un contenedor y se monta el directorio de ZIM como volumen. Esta opción puede simplificar la repetición del despliegue, aunque exige que alguien del equipo sepa revisar imágenes, volúmenes y reinicios del contenedor.
Para una escuela que no tiene personal técnico permanente, la primera opción suele ser más fácil de entregar y mantener. Docker resulta atractivo cuando una organización gestiona varios centros con una configuración homogénea y puede centralizar las actualizaciones. En ambos casos, la decisión importante es quién se ocupará de comprobar que el servicio sigue funcionando dentro de unos meses.
La primera prueba debe hacerse desde otro dispositivo conectado al mismo router o punto de acceso. Si el servicio escucha en el puerto 80, se introduce la IP local de la Raspberry en el navegador. Si utiliza el 8080, se añade ese puerto a la dirección. No basta con abrir la página desde la propia Raspberry: hay que confirmar que un teléfono u ordenador de la red puede acceder sin conexión exterior.
Conviene probar también el comportamiento con varios clientes. Una consulta de texto no exige lo mismo que abrir una página con imágenes pesadas o reproducir un vídeo. El resultado dependerá del modelo de Raspberry, del disco, del punto de acceso y de la calidad de la red inalámbrica. No hay que confundir el límite del servidor con el del Wi-Fi: muchas instalaciones que parecen lentas están simplemente utilizando un punto de acceso doméstico mal situado o saturado.
La red local tampoco tiene por qué ser complicada. El router puede entregar direcciones automáticamente mediante DHCP y el servidor puede conservar siempre la misma dirección mediante una reserva. Si la instalación va a utilizarse en distintas aulas, conviene colocar un cartel discreto con el nombre de la red y la dirección de la biblioteca. Una dirección difícil de recordar puede resolverse con un nombre local, pero no es necesario añadir esa capa si el entorno es pequeño y estable.
Antes de continuar, valida que el servidor responde desde otro equipo de la red. Si puedes abrir el catálogo o un ZIM concreto sin salida a internet, el núcleo de la instalación ya está en marcha.
Gestión eficiente de bibliotecas ZIM mediante kiwix-manage
Un servidor Kiwix sin una biblioteca bien organizada puede funcionar, pero se vuelve difícil de mantener cuando llegan nuevos contenidos. La tarea de kiwix-manage no consiste en escanear automáticamente una carpeta ni en descubrir por su cuenta todos los ZIM presentes. Añade al archivo XML los ficheros que se le indican expresamente.
Esta diferencia parece pequeña y evita varios errores. Si se copia un ZIM nuevo en /data/zim pero nunca se incorpora a la biblioteca, Kiwix-serve no lo mostrará en el catálogo XML. El archivo puede estar perfectamente descargado y ser legible por el servidor, pero seguirá fuera de la portada hasta que se registre.
El flujo básico es el siguiente:
1. Crea una carpeta estable, por ejemplo /data/zim, y deposita allí los archivos descargados previamente.
2. Genera o actualiza la biblioteca con una orden como kiwix-manage /data/biblioteca.xml add /data/zim/wikipedia_es_all_maxi_*.zim.
3. Comprueba qué archivos se han registrado y revisa que el usuario del servicio pueda leer tanto el XML como los ZIM.
4. Inicia Kiwix-serve con kiwix-serve --library=/data/biblioteca.xml.
5. Abre el catálogo desde un segundo dispositivo y comprueba que los títulos, idiomas y enlaces corresponden a los contenidos que realmente quieres ofrecer.
En esa orden, el comodín *.zim no lo interpreta kiwix-manage. Lo expande primero el intérprete de comandos, como Bash, y después la herramienta recibe la lista de archivos resultante. Por eso el patrón debe apuntar a la ruta correcta y no debe ir entre comillas si se quiere que la expansión tenga lugar. Si no hay ningún fichero que coincida, el comportamiento dependerá del intérprete y de la orden utilizada; es mejor comprobar la carpeta antes de ejecutar una actualización.
También se pueden añadir varios archivos de una sola vez, siempre que se indiquen sus rutas. Por ejemplo, el comando puede recibir el ZIM de Wikipedia, uno de Wikibooks y un manual técnico en la misma operación. En una biblioteca con muchos contenidos, conviene incorporar grupos coherentes y después abrir el catálogo para comprobar cómo se presentan los nombres y las descripciones.
La otra posibilidad es servir directamente varios ZIM sin XML. Una orden del tipo kiwix-serve /data/zim/archivo-a.zim /data/zim/archivo-b.zim puede ser suficiente para una demostración. Este modo evita el mantenimiento de la biblioteca, pero ofrece menos control sobre el catálogo y obliga a revisar la orden de arranque cada vez que se incorpora o retira un archivo.
| Forma de despliegue | Ventaja principal | Coste de mantenimiento |
|---|---|---|
| Varios ZIM pasados directamente a Kiwix-serve | Rápida para pruebas y colecciones pequeñas | Hay que modificar la orden cuando cambia la colección |
| Biblioteca XML gestionada con Kiwix-manage | Catálogo más claro y actualizaciones más ordenadas | Hay que registrar expresamente cada ZIM nuevo |
| Biblioteca en disco externo | Permite ampliar capacidad sin rehacer el sistema | Requiere cuidar el montaje y los permisos de la unidad |
Cuando llega una nueva edición de Wikipedia, no es recomendable sobrescribir a ciegas el archivo que está sirviendo el sistema. Es más seguro descargar el nuevo ZIM con otro nombre, comprobar su tamaño y legibilidad, incorporarlo a una copia de trabajo de la biblioteca y cambiarlo solo cuando la prueba haya salido bien. Si el espacio lo permite, conserva temporalmente la versión anterior para poder volver atrás sin tener que descargarla otra vez.
Una organización clara de los nombres también ayuda. Los archivos ZIM descargados suelen incluir información sobre idioma, colección y tipo de contenido. Mantener esos nombres evita confundir una edición de Wikipedia en español con otra en inglés o mezclar una colección completa con una versión reducida. El catálogo visible para el usuario puede ser más amable, pero el nombre del archivo debe seguir siendo reconocible para quien administra el sistema.
Los permisos son otro punto crítico. El proceso de Kiwix necesita leer los ZIM y el XML, no modificarlos durante la consulta. Si el disco USB se monta con un propietario distinto, el servicio puede arrancar y mostrar una página vacía o devolver errores al abrir los recursos. La prueba debe hacerse con el mismo usuario que empleará Systemd, no solo desde la cuenta de administración.
Para un entorno educativo, también merece la pena decidir qué entra y qué no entra en la biblioteca. Una colección demasiado grande no es necesariamente una colección mejor. Si la pantalla inicial presenta decenas de recursos sin explicación, el usuario puede no saber por dónde empezar. Es preferible agrupar materiales por utilidad —enciclopedia, libros de consulta, salud, agricultura, formación profesional— y explicar a docentes y estudiantes qué contiene cada recurso. La curación también es una forma de mantenimiento.
Automatización del servicio con Systemd para despliegues permanentes
Un servidor comunitario tiene que sobrevivir a cortes de luz, reinicios accidentales y actualizaciones del sistema. Dejar Kiwix corriendo en una terminal abierta sirve para comprobar que la instalación funciona, pero no para una biblioteca que debe estar disponible cuando llegue el siguiente grupo de estudiantes.
En Linux, Systemd permite convertir el arranque de Kiwix en una tarea del propio sistema. La unidad debe indicar una descripción, esperar a que la red esté disponible, ejecutar el binario con el usuario dedicado y reiniciar el proceso si termina de manera inesperada. También conviene definir una ruta absoluta para el binario, la biblioteca y cualquier directorio de trabajo; las rutas relativas suelen ser una fuente innecesaria de fallos.
El archivo puede llamarse /etc/systemd/system/kiwix.service. En su sección [Unit] se incluiría una descripción del servicio y una dependencia de red, normalmente mediante After=network.target. En [Service] se definirían Type=simple, User=kiwix, la orden ExecStart con kiwix-serve --library=/data/biblioteca.xml, y una política como Restart=on-failure con una espera breve antes de volver a intentarlo. La sección [Install] debe asociarlo al arranque normal del sistema mediante WantedBy=multi-user.target.
No hace falta convertir esta unidad en una pieza compleja. Lo importante es que la orden de ExecStart sea exactamente la que ya se ha probado manualmente y que las rutas coincidan con la ubicación real de los archivos. Si se utiliza un puerto distinto del 80, debe aparecer también en esa orden. Si el disco externo se monta tarde, habrá que garantizar que esté disponible antes de iniciar el servicio; de lo contrario Kiwix puede arrancar sin encontrar la biblioteca.
Una vez guardado el archivo, la activación se completa con tres pasos:
sudo systemctl daemon-reloadhace que Systemd vuelva a leer las unidades.sudo systemctl enable kiwix.serviceconfigura el arranque automático.sudo systemctl start kiwix.serviceinicia el servicio en ese momento.
El estado se puede revisar con sudo systemctl status kiwix.service. Si hay un error, journalctl -u kiwix.service permite consultar el registro del servicio. Estas dos órdenes suelen ser más útiles que reiniciar repetidamente la Raspberry sin saber qué ha fallado. Un servicio que no arranca por una ruta incorrecta, un puerto ocupado o un disco aún no montado dejará pistas en el registro.
Después de activar la unidad, reinicia el equipo y comprueba el acceso desde otro dispositivo. Esta prueba es distinta de iniciar Kiwix manualmente: confirma que Systemd conoce las rutas correctas, que la red se levanta a tiempo y que los permisos siguen siendo válidos después del arranque. También conviene desconectar temporalmente la salida a internet del router. El objetivo es verificar que la biblioteca continúa funcionando por sí misma, no que el navegador está recuperando una página externa.
Los reinicios automáticos tienen que utilizarse con criterio. Restart=on-failure puede recuperar un proceso que termina de forma inesperada, pero no corrige un archivo ZIM dañado ni un disco que se desconecta continuamente. Si el servicio entra en un ciclo de reinicios, hay que mirar el registro y solucionar la causa. Para una instalación permanente, resulta útil anotar en un documento local la ruta de los archivos, el puerto utilizado, el usuario del servicio y las órdenes básicas de diagnóstico.
Seguridad y optimización: proxies inversos para entornos multiusuario
En una red pequeña, Kiwix-serve puede exponerse directamente en un puerto local y cumplir su función. Cuando el número de usuarios crece o el servicio comparte equipo con otras aplicaciones, un proxy inverso como Nginx o Apache ofrece una capa de organización adicional. El proxy recibe las peticiones de los clientes y las reenvía al proceso de Kiwix, que puede quedar escuchando en un puerto interno, por ejemplo el 8080.
Esta arquitectura permite presentar la biblioteca en el puerto habitual de la red y reservar el acceso directo al proceso para la propia máquina. También facilita publicar varios servicios en un mismo servidor, aplicar límites básicos, registrar accesos y centralizar determinados ajustes. No convierte por sí sola una red insegura en una red segura, pero reduce la exposición innecesaria de los procesos internos.
En un centro educativo, el proxy inverso puede ser útil cuando la misma Raspberry ofrece Kiwix, una página de bienvenida o materiales creados localmente. Cada servicio puede responder bajo una ruta o un nombre distinto, siempre que el equipo responsable mantenga una configuración comprensible. Si la instalación solo tiene una biblioteca y pocos usuarios, añadir Nginx puede ser más complejidad que beneficio.
Hay varias precauciones que no conviene dejar para el final:
- Limita la escucha a la red necesaria. Si Kiwix solo debe funcionar dentro del aula, no tiene sentido abrir el puerto en la interfaz que conecta con internet.
- Revisa el cortafuegos. Permite únicamente los puertos que realmente vaya a utilizar la red local y evita dejar servicios de administración accesibles para todos los clientes.
- No ejecutes el proxy ni Kiwix como administrador. Cada proceso debe tener los permisos mínimos para leer sus contenidos y escribir solo donde sea imprescindible.
- Controla el acceso físico. La protección de la configuración no sirve de mucho si el disco con los ZIM puede retirarse sin autorización.
- Separa la administración del uso cotidiano. Los estudiantes necesitan consultar la biblioteca; no necesitan acceder por SSH ni modificar el catálogo.
- Registra las actualizaciones. Anota cuándo se incorporó cada archivo ZIM y quién hizo el cambio. No es burocracia: ayuda a localizar el origen de una colección incompleta o de una edición equivocada.
El rendimiento depende tanto de la red como del servidor. Un punto de acceso instalado en una esquina, detrás de paredes gruesas o junto a otros equipos que generan interferencias puede convertirse en el cuello de botella. Ethernet entre el servidor y el router suele ser una mejora sencilla. También es preferible que el disco de la biblioteca tenga una conexión estable y que no comparta un concentrador USB sobrecargado con otros dispositivos.
No todos los recursos pesan lo mismo. Las búsquedas y los artículos de texto suelen resultar más ligeros que las páginas con muchas imágenes o los vídeos. Si varios usuarios abren contenidos multimedia al mismo tiempo, el almacenamiento, la capacidad de la Raspberry y el punto de acceso tendrán que soportar ese patrón de uso. Una prueba realista debe incluir la actividad que se espera en la escuela, no solo abrir la portada desde un único teléfono.
La optimización más valiosa suele ser elegir bien la biblioteca. Descargar previamente todo lo que existe puede dejar un equipo lleno de contenidos que nadie utiliza y complicar las actualizaciones. Una selección más contenida, alineada con las asignaturas y con las necesidades de la comunidad, facilita el mantenimiento y hace que la página inicial sea más útil. Cuando aparezcan nuevas necesidades, se pueden añadir colecciones de forma gradual.
Mantener una biblioteca comunitaria que siga siendo útil
La instalación técnica es solo el comienzo. Una biblioteca digital offline necesita una persona o un pequeño equipo responsable de comprobar que el servidor responde, que el almacenamiento no se ha llenado y que los contenidos siguen siendo pertinentes. No hace falta convertir esta tarea en una jornada diaria, pero sí establecer una rutina después de los cortes de energía, las actualizaciones y las incorporaciones de nuevos ZIM.
La copia de seguridad debe incluir, como mínimo, la biblioteca XML y la información necesaria para reconstruir el servicio. Los ZIM pueden ocupar mucho espacio, por lo que no siempre será posible duplicarlos todos en otra unidad local. En ese caso, al menos conserva una relación de los archivos instalados, sus nombres y la procedencia de las copias. Si hay una conexión disponible en otra ubicación, una nueva descarga planificada puede ser más sencilla que intentar improvisarla durante una avería.
También es aconsejable preparar una guía breve para el personal del centro. Debe explicar cómo conectar un dispositivo a la red, qué dirección abrir, cómo identificar si el problema afecta a toda la red o solo a un equipo y a quién avisar cuando la biblioteca no responda. La guía no necesita describir cada componente de Linux; tiene que resolver las dudas que aparecen durante una clase.
El acceso desde teléfonos merece una prueba específica. La interfaz puede abrirse correctamente en un ordenador y resultar incómoda en una pantalla pequeña, sobre todo cuando se consultan tablas, mapas o materiales multimedia. Si la biblioteca se utilizará principalmente desde móviles, la ubicación del punto de acceso, la estabilidad de la señal y la facilidad para recordar la dirección serán tan importantes como el modelo del servidor.
Kiwix no sustituye toda la conectividad. No permite consultar páginas nuevas, enviar formularios a internet ni actualizar automáticamente la información almacenada. Su valor está en otra parte: crea un punto de acceso local a materiales que ya se han descargado y que pueden seguir disponibles cuando la conexión exterior falla o no existe. Presentarlo así evita expectativas equivocadas y ayuda a elegir mejor los contenidos.
Una biblioteca digital comunitaria offline funciona cuando la tecnología desaparece detrás de la tarea. El docente no debería tener que explicar qué es un archivo ZIM antes de buscar un artículo, y el estudiante no debería depender de que alguien reinicie manualmente un proceso cada mañana. Para llegar a ese punto hacen falta decisiones modestas pero constantes: una dirección local estable, almacenamiento suficiente, permisos correctos, un arranque automatizado y una colección mantenida con criterio.
La configuración local de Kiwix no resuelve por sí sola la brecha digital, pero sí transforma una limitación concreta en una infraestructura aprovechable. Primero se descargan los contenidos con conexión; después, el servidor permite consultar Wikipedia sin conexión y compartirla con los equipos cercanos. Cuando el sistema está bien preparado, una Raspberry Pi y una red local dejan de ser solo componentes baratos: se convierten en una biblioteca que la comunidad puede administrar, ampliar y utilizar incluso cuando internet no está disponible.