Tengo una confesión: compro más libros de los que leo. Físicos, ebooks, audiolibros, lo que sea. El problema es que los tenía desperdigados por todas partes: Kindle, Audible, Google Play Books, archivos CBZ en carpetas random del NAS.
Hasta que monté Audiobookshelf y Kavita en el homelab. Ahora tengo una biblioteca digital centralizada, accesible desde cualquier dispositivo, con sincronización de progreso y sin depender de Amazon.
Te cuento cómo lo hice, qué aprendí, y por qué creo que es una de las mejores cosas que he montado en el homelab.
El problema: libros por todas partes#
Mi setup antes era un desastre:
- Ebooks comprados en Kindle (bloqueados con DRM)
- PDFs técnicos en Dropbox
- Cómics en CBZ/CBR en el NAS
- Audiolibros de Audible (también con DRM)
- Algunos EPUBs en Calibre que nunca sincronicé
Resultado: para leer algo tenía que acordarme dónde lo había comprado. Para escuchar un audiolibro, Audible era la única opción. Para leer un cómic, tenía que conectarme al NAS con Samba.
Quería algo como Plex pero para libros. Un servidor donde subir todo, organizado, con portadas bonitas, y accesible desde el móvil, tablet o e-reader.
Audiobookshelf: tu propio Audible self-hosted#
Audiobookshelf es un servidor de audiolibros y podcasts. Piensa en Plex pero específicamente diseñado para audio narrativo.
Lo que me convenció:
- Interfaz web limpia que funciona en cualquier navegador
- Apps nativas para iOS y Android
- Sincronización de progreso entre dispositivos
- Streaming sin límite de bitrate (adiós compresión de Audible)
- Metadata automática desde Audible, Google Books, iTunes
- Gestión de podcasts (aunque yo uso Pocket Casts)
La primera vez que abrí Audiobookshelf y vi mi colección organizada con portadas, narrador, duración y progreso sincronizado entre el móvil y el iPad, supe que no había vuelta atrás.
Kavita: lector de ebooks y cómics con sincronización#
Kavita es el equivalente para ebooks, manga, cómics y novelas. Lee EPUB, PDF, CBZ, CBR, y hasta archivos de imagen sueltos.
Por qué Kavita y no Calibre-Web:
- UI moderna que no parece de 2010
- Progreso de lectura sincronizado entre dispositivos
- OPDS nativo para conectar e-readers externos
- Lector web integrado que realmente funciona bien
- Soporte de series (perfecto para manga)
- Marcadores y notas guardados en la DB
Calibre es el estándar y lo respeto, pero Kavita se siente como una app moderna. Es lo que usaría alguien que no es sysadmin.
Mi setup: K3s + NFS + Cloudflare Tunnels#
Lo tengo todo corriendo en un cluster K3s de 3 nodos. Las bibliotecas están en un NAS Synology montado por NFS.
Por qué K3s y no Docker Compose:
- Tengo múltiples nodos y quiero que los pods se muevan automáticamente si uno cae
- Persistent volumes compartidos por NFS (los 3 nodos leen la misma biblioteca)
- Fácil exponer servicios con Ingress
- Escalabilidad futura (aunque para esto probablemente no lo necesite)
Pero si no tienes K3s, Docker Compose funciona perfectamente. Te muestro ambos.
Estructura de archivos en el NAS#
Esto es importante. Si lo haces bien desde el principio, Audiobookshelf y Kavita detectan todo automáticamente.
Mi estructura:
| |
Reglas que sigo:
- Carpeta por autor en Audiobooks
- Subcarpeta por libro con todos los MP3 dentro
- Portada como cover.jpg en cada carpeta de audiolibro
- Archivos individuales para ebooks (EPUB/PDF)
- Carpetas de serie para cómics/manga con archivos CBZ numerados
Con esta estructura, Audiobookshelf detecta automáticamente autor, libro y orden de capítulos. Kavita detecta series y orden de volúmenes.
Audiobookshelf en K3s (mi configuración real)#
Este es el deployment que uso. Lo tengo en un namespace dedicado ebooks:
| |
Lo importante aquí:
- PersistentVolume de NFS para compartir la biblioteca entre nodos
- Recursos limitados (no necesita mucho, es streaming de audio)
- Timezone configurado (afecta a las fechas en la UI)
- Ingress con TLS automático vía cert-manager
Audiobookshelf en Docker Compose (alternativa simple)#
Si no tienes K3s, esto es lo que necesitas:
| |
Cambia /mnt/nas/Biblioteca/Audiobooks por donde tengas montado tu NAS o disco duro externo.
Kavita: configuración en K3s#
Similar a Audiobookshelf pero para ebooks:
| |
Nota el proxy-body-size: 100m en las annotations. Sin eso, no puedes subir ebooks grandes desde la UI.
Kavita en Docker Compose#
Versión simple:
| |
Puedes montar múltiples carpetas y luego añadirlas como bibliotecas separadas en la UI.
Primera configuración: importar bibliotecas#
Audiobookshelf#
- Abre
http://tu-ip:13378(o tu dominio si usas Ingress) - Crea cuenta de administrador
- Ve a Settings → Libraries → Add Library
- Nombre: “Audiobooks”
- Folder:
/audiobooks(la ruta dentro del contenedor) - Library Type: Audiobooks
- Guarda y haz Scan
El primer escaneo tarda. En mi caso, con 200 audiolibros, tardó unos 15 minutos. Descarga metadata, portadas, información de narrador, todo automáticamente.
Kavita#
- Abre
http://tu-ip:5000 - Registra cuenta (el primero es admin)
- Settings → Libraries → Add Library
- Name: “Ebooks”
- Folder:
/books - Library Type: Book
- Scan Library
Kavita es más rápido. 500 ebooks en 5 minutos.
Para cómics/manga, crea otra biblioteca con Library Type: Comic.
Apps móviles: la experiencia real#
Audiobookshelf (iOS/Android)#
La app oficial es gratuita y funciona sorprendentemente bien. No esperaba que fuera tan pulida.
Características:
- Descarga offline de audiolibros completos
- Control de velocidad de reproducción (yo escucho a 1.3x)
- Temporizador de sueño (útil para escuchar antes de dormir)
- Bookmarks para marcar secciones interesantes
- Sincronización instantánea de progreso
Empiezas a escuchar en el coche, pausas, y cuando abres el iPad en casa, continúa exactamente donde lo dejaste. Es magia.
OPDS: conecta tu e-reader#
OPDS (Open Publication Distribution System) es un estándar para distribuir catálogos de ebooks. Básicamente, tu e-reader se conecta al servidor y descarga libros directamente.
Kavita tiene OPDS integrado. Para activarlo:
- Settings → Users → tu usuario → Get API Key
- Copia la API Key
- URL de OPDS:
https://kavita.tudominio.com/api/opds/{tu-api-key}
En mi caso, uso un Boox Palma 2 (e-reader Android). En la app de lectura:
- Añado fuente OPDS
- Pego la URL
- Ahora puedo explorar mi biblioteca y descargar libros directamente al dispositivo
Funciona con Kindle (hackeado), Kobo, PocketBook, cualquier lector que soporte OPDS.
Gestión de metadata: portadas, autores, series#
Ambos servicios descargan metadata automáticamente, pero a veces se equivocan o falta información.
Audiobookshelf#
Click derecho en un libro → Match → busca en Audible/Google/iTunes → selecciona el correcto → aplica metadata.
Si quieres cambiar la portada manualmente, sube un cover.jpg a la carpeta del audiolibro y haz re-scan.
Kavita#
Similar. Click en un libro → Edit Metadata → busca en servicios online o edita manualmente.
Para series, Kavita detecta automáticamente si usas nomenclatura correcta:
Harry Potter 1 - La Piedra Filosofal.epubHarry Potter 2 - La Camara Secreta.epub
Detecta “Harry Potter” como serie y los ordena. Simple.
Copias de seguridad: no pierdas tu progreso#
Los archivos de audio/ebook están en el NAS, que ya tiene su backup. Pero la base de datos con progreso, marcadores y configuración está en el contenedor.
Audiobookshelf#
Backup de /config y /metadata:
| |
Yo lo hago con un cronjob semanal que sube a Backblaze B2.
Kavita#
Backup de /kavita/config:
| |
La DB está en SQLite dentro de /kavita/config/kavita.db. Fácil de respaldar.
Uso real: mi experiencia después de 6 meses#
Llevo medio año con este setup y es de las cosas que más uso en el homelab.
Cambios en mi rutina:
- Dejé Audible. Total. Los audiolibros los consigo en otros sitios (algunos legales, otros menos) y los subo a Audiobookshelf
- Leo más en el iPad porque Kavita es más cómodo que Apple Books
- Los PDFs técnicos los tengo organizados por categoría en lugar de perdidos en Dropbox
- El progreso sincronizado entre dispositivos ha eliminado el problema de “en qué capítulo iba”
Problemas encontrados:
- Los audiolibros en formato M4B (un solo archivo) funcionan pero pierdes los marcadores de capítulo. Convertir a MP3 individuales es mejor
- Kavita a veces se confunde con PDFs escaneados (sin texto OCR). Funciona pero no puedes buscar
- El primer escaneo de una biblioteca grande (500+ libros) puede colgar el servidor si tiene poca RAM. Añade los límites de recursos que mostré arriba
Lo que me falta:
- Integración con Goodreads o similar para trackear qué he leído
- Recomendaciones automáticas basadas en lo que escucho
- Compartir progreso con otros usuarios (tipo club de lectura)
Pero son cosas menores. El 95% de lo que necesito está cubierto.
Comparación con alternativas comerciales#
Audible vs Audiobookshelf:
- Audible: biblioteca enorme, DRM, 1 libro/mes por suscripción, streaming limitado
- Audiobookshelf: tu propia biblioteca, sin DRM, sin límites, calidad sin comprimir
Kindle/Apple Books vs Kavita:
- Kindle/Books: ecosistema cerrado, DRM, sincronización solo dentro del ecosistema
- Kavita: cualquier formato, cualquier dispositivo, control total
Plex vs Audiobookshelf:
- Plex soporta audiolibros pero está pensado para video. La experiencia es mediocre
- Audiobookshelf está diseñado específicamente para audio narrativo. Se nota
Recursos y consumo#
Setup completo (Audiobookshelf + Kavita):
- RAM: ~1GB total
- CPU: casi nada excepto durante escaneos
- Disco: las DBs ocupan unos 500MB con 200 audiolibros y 500 ebooks
- Red: streaming de audio consume ~128kbps, ebooks casi nada
En un homelab moderno es insignificante.
Alternativas que consideré#
Calibre + Calibre-Web: El estándar. Funciona, tiene todas las features. Pero la UI se siente antigua y configurarlo es un lío. Calibre-Web mejora la interfaz pero sigue sin convencerme.
Booksonic: Específico para audiolibros. Más simple que Audiobookshelf pero menos pulido. Las apps móviles son peores.
Ubooquity: Para cómics principalmente. Funciona pero desarrollo lento. Kavita lo supera en todo.
Readarr: Para descargar ebooks automáticamente (tipo Sonarr/Radarr). Lo probé pero prefiero conseguir libros manualmente. Demasiado automatizado para mi gusto.
Próximos experimentos#
Cosas que quiero probar:
- Whisper para transcripciones: convertir audiolibros a texto con Whisper y tener ambas versiones sincronizadas
- Inteligencia de recomendaciones: script que analice qué leo y sugiera similar
- Integración con e-ink: usar un tablet e-ink viejo como dashboard de “últimos libros añadidos”
- Estadísticas: tiempo total escuchado, libros terminados por mes, autores favoritos
Conclusión: biblioteca digital que realmente funciona#
He probado muchas soluciones self-hosted en el homelab. Algunas son proyectos interesantes que nunca uso. Otras las monto, las pruebo, y las apago a la semana.
Audiobookshelf y Kavita no. Los uso todos los días. Han cambiado genuinamente cómo consumo contenido.
Si lees o escuchas libros con regularidad, y tienes un homelab, esto es no negociable. El esfuerzo de montarlo se amortiza en una semana.
Empieza con Docker Compose en un mini PC. Sube 10 libros para probar. Configura las apps móviles. Y cuando veas que funciona, migras toda tu biblioteca.
No vas a volver a depender de Amazon para leer.
