librarian
Librarian es un módulo de Coral para la higiene de bibliotecas multimedia auto-alojadas. Gestiona descargas terminadas mediante hardlinks, detecta metadatos faltantes o duplicados y cola tareas de renombrado y enriquecimiento, utilizando Jellyfin como fuente de verdad única para garantizar la integr
Ficha actualizada 26 sept 2026, 18:56 · upstream 26 sept 2026, 18:53 · release v1.1.0
Qué es librarian
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Librarian actúa como herramienta de mantenimiento para bibliotecas de medios auto-alojadas, integrándose profundamente con Jellyfin. Su función principal es importar descargas completas mediante enlaces duros (hardlinks) para evitar duplicación de datos en el disco, mientras identifica inconsistencias en los metadatos, huecos en pósters y archivos duplicados. El sistema gestiona colas de trabajo en segundo plano para operaciones de renombrado, etiquetado y enriquecimiento masivo, preparando los activos para otros módulos del ecosistema Coral sin alterar la integridad original.
La aplicación está construida con React y TanStack Start sobre Node.js, ofreciendo una interfaz moderna y gestión de estado robusta. Prioriza la seguridad al requerir un inicio de sesión en Jellyfin por defecto, limitando las operaciones de sistema de archivos a usuarios administradores para prevenir modificaciones no autorizadas. La persistencia local se maneja mediante SQLite cuando no se proporcionan variables de entorno de autenticación.
El despliegue es flexible vía Docker, con CI/CD automatizado que construye imágenes y publica en GHCR tras cada release. El sistema soporta tanto entornos de desarrollo local como producciones escalables, siempre manteniendo a Jellyfin como la autoridad central para la metadatos y la gestión de activos.
- Importar descargas de torrents o archivos terminados sin duplicar datos en el disco
- Detectar y marcar metadatos faltantes o inconsistencias en la biblioteca multimedia
- Ejecutar renombrado masivo y corrección de etiquetas en segundo plano
- Validar calidad de activos como pósters faltantes o baja resolución antes del consumo
- Mantener sincronización con Jellyfin como fuente de verdad única para la gestión de medios
- Utiliza hardlinks para importaciones, garantizando cero coste de almacenamiento adicional al duplicar datos
- Requiere inicio de sesión en Jellyfin por defecto y permisos de administrador para operaciones de sistema de archivos
- Arquitectura moderna basada en React con TanStack Start y Node.js para un rendimiento óptimo
- CI/CD automatizado con GitHub Actions para builds Docker y publicación automática en GHCR
- Base de datos local SQLite para persistir detalles de conexión si no se usan variables de entorno
- No incluye archivo docker-compose, requiriendo configuración manual del contenedor y mounts
- Las operaciones de hardlink fallan si los directorios montados están separados por puntos de montaje distintos
- Dependencia crítica de una instancia Jellyfin activa y configurada correctamente para funcionar
- Requiere variables de entorno específicas para autenticación con Jellyfin al no usar inicio de sesión UI
Capturas del proyecto
Imágenes reales detectadas en la documentación del repositorio.
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.
Construir la imagen Docker o ejecutar directamente. Es crucial montar los directorios de medios y descargas bajo un único punto de montaje para permitir hardlinks. Configurar las variables JELLYFIN_URL, JELLYFIN_API_KEY y JELLYFIN_USER_ID si no se usa el flujo de inicio de sesión interactivo. Asegurar que el usuario de Jellyfin sea administrador para operaciones de sistema de archivos.
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.