spoke-books
Módulo Spoke para gestión de bibliotecas multimedia: Audiobookshelf, Calibre y GraphicAudio. Integra servicios en red troxy con autenticación centralizada vía Authentik. Incluye scraper local PHP para metadatos de GraphicAudio. Requiere despliegue en entorno Docker con Traefik. Optimizado para autoa
Ficha actualizada 28 sept 2026, 0:43 · upstream 28 sept 2026, 0:33 · release v1.0.0
Qué es spoke-books
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Este repositorio implementa un módulo Spoke diseñado para orquestar servicios de medios relacionados con libros y audiolibros en entornos autoalojados. Integra tres componentes principales: Audiobookshelf como servidor multimedia, Calibre como gestor de biblioteca de ebooks y GraphicAudio Scraper para la obtención de metadatos personalizados. La arquitectura se basa en contenedores Docker gestionados mediante docker compose, con soporte para frameworks Node.js y PHP.
La configuración prioriza la seguridad mediante la integración con Authentik para proteger el acceso al servidor Calibre, evitando la exposición directa sin autenticación. El scraper de GraphicAudio opera internamente dentro de la red troxy, proporcionando una fuente personalizada de metadatos para Audiobookshelf sin depender de servicios externos. Se recomienda un despliegue en máquinas con al menos 2 núcleos CPU y 2 GB de RAM para garantizar el rendimiento óptimo de los servicios concurrentes.
El despliegue requiere un hub Spoke previamente configurado con la red troxy y Traefik como servicio de balanceo. La gestión de medios se centraliza en una carpeta compartida /books/ montada tanto en Audiobookshelf como en Calibre, permitiendo una biblioteca unificada sin duplicación de archivos. Es crucial configurar las rutas de Traefik correctamente para cada servicio y asegurar que los volúmenes de datos persistentes estén definidos adecuadamente en el archivo docker-compose.yml o en la configuración del entorno.
- Centralizar bibliotecas de audiolibros y ebooks en una interfaz unificada gestionada por Audiobookshelf
- Obtener metadatos personalizados para GraphicAudio mediante un scraper PHP local integrado en la red interna
- Proteger el acceso al gestor Calibre mediante autenticación centralizada con Authentik sin exponer credenciales locales
- Gestionar podcasts y audiolibros desde una única instancia de Audiobookshelf con soporte nativo
- Implementar un sistema de medios autoalojado escalable utilizando contenedores Docker y orquestación Spoke
- Integración nativa con la red troxy de Spoke para enrutamiento seguro y centralizado
- Soporte multi-framework (Node.js para Audiobookshelf, PHP para el scraper) en un mismo despliegue
- Configuración de autenticación obligatoria para Calibre mediante middleware chain-authentik-no-crowdsec
- Uso de imágenes oficiales LinuxServer y ghcr.io para servicios principales, garantizando compatibilidad
- Scraper de GraphicAudio construido localmente sin dependencias externas de Node.js o scraping remoto
- Requiere despliegue previo de Spoke hub con red troxy activa; no funciona en entornos estándar sin esta infraestructura
- El scraper de GraphicAudio es interno y no tiene ruta externa, limitando su acceso a la red local o proxy
- Calibre debe configurarse manualmente para no copiar archivos al directorio compartido durante la importación de libros
- La imagen del scraper GraphicAudio se construye localmente en el primer despliegue, requiriendo acceso a Dockerfiles específicos
- El servidor de contenido de Calibre (puerto 8081) está deshabilitado por defecto y requiere configuración adicional para habilitarlo
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Copiar .env.example a .env y editar IPs estáticas y rutas de medios antes de iniciar. Asegurar que la carpeta /books/ esté montada como :rw en ambos servicios. Configurar Traefik con middleware chain-authentik-no-crowdsec para Calibre. Construir imagen local del scraper con --build si es necesario. Verificar que el puerto 8080 esté disponible y no conflictivo.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.