Solución de la comunidad

Las aplicaciones de ZimaOS no pueden ver el almacenamiento: añade volúmenes de Docker para Jellyfin, Emby y Plex

A June-November 2024 ZimaCube thread where Jellyfin, Emby, and Plex could only browse paths exposed inside their Docker containers. IceWhale staff instructed users to edit app volume mappings; multiple users later confirmed adding the storage/media volume fixed the problem. ZimaOS subsequently improved the UI and added managed app-data migration.

Cuando Jellyfin, Emby o Plex solo pueden ver ZimaOS-HD y no el HDD, NVMe o RAID donde realmente se encuentran tus archivos multimedia, normalmente el problema no es que Docker «no tenga permiso para acceder al NAS». Un contenedor solo puede explorar las carpetas del host que ZimaOS le asigne como volúmenes.

Esta fue la solución fundamental en el hilo original de junio de 2024. ETWang1991 indicó a los usuarios que abrieran la configuración de la aplicación y añadieran el nuevo almacenamiento como volumen. El autor de la publicación original respondió que entonces funcionaba «a la perfección», y otro usuario de Jellyfin llegó después a la misma conclusión al ver las capturas de pantalla.

Una aplicación de Docker no ve todo el sistema de archivos del host de ZimaOS

El aislamiento del contenedor es intencionado. Jellyfin puede ver /Media dentro de su contenedor solo si esa ruta se ha asignado a un directorio real del host que contenga los archivos multimedia.

Que una unidad aparezca en Archivos de ZimaOS no hace que sea visible automáticamente dentro del contenedor de cada aplicación de la tienda de aplicaciones.

Abre la configuración de la aplicación y edita los volúmenes

Menú de aplicaciones de ZimaOS con Configuración resaltada para editar una aplicación de Docker
La respuesta oficial indicó a los usuarios que accedieran a la configuración de cada aplicación, porque las asignaciones de volúmenes se configuran por aplicación.

Elige la carpeta multimedia real del host

Selector de almacenamiento de ZimaOS que muestra las carpetas Series, Música y Películas dentro del directorio Media
El selector de almacenamiento muestra la carpeta del host que se montará en el contenedor.

Elige el directorio del espacio de almacenamiento real que contiene tu biblioteca, en lugar de escribir una ruta superior inventada como /Main-Storage.

Las rutas del host y del contenedor tienen funciones diferentes

Configuración de Jellyfin que muestra las rutas de almacenamiento de ZimaOS del host asignadas a rutas de volumen del contenedor
La ruta del host identifica la carpeta real de ZimaOS; la ruta del contenedor es la ubicación desde la que Jellyfin navegará dentro de su sistema de archivos aislado.

La ruta del contenedor debe ser sencilla y estable, como /media o /Media. Dentro de Jellyfin, añade las bibliotecas usando esa ruta del contenedor, no la ruta sin procesar del host.

Varios usuarios confirmaron que la asignación de volúmenes era el paso que faltaba

El autor de la publicación original dijo que el cambio funcionó. Otro usuario con un almacenamiento principal RAID 5 inicialmente solo veía el disco del sistema operativo y luego respondió que las capturas de pantalla le dieron la idea: «Tuve que añadir los volúmenes a Jellyfin».

Esa es una resolución confirmada por la fuente, no una solución alternativa especulativa basada en permisos.

Los discos añadidos individualmente fueron un problema de la interfaz en 2024

A algunos participantes les costó seleccionar discos habilitados individualmente o almacenamiento RAID en el selector antiguo. El personal de IceWhale respondió que los discos individuales podían habilitarse y utilizarse, y más tarde indicó que la interfaz se había mejorado.

Esas limitaciones de 2024 pertenecen a las primeras versiones de ZimaOS. El almacenamiento y los ajustes de las aplicaciones del ZimaOS actual muestran el almacenamiento administrado con mucha más claridad.

El ZimaOS actual documenta explícitamente las rutas de almacenamiento de las aplicaciones

La documentación actual de IceWhale explica ahora que los contenedores de la tienda de aplicaciones conservan los datos persistentes en carpetas reales del host y que las asignaciones de volúmenes de cada aplicación se pueden consultar y modificar desde sus ajustes.

Usa el modelo actual de rutas de aplicaciones Docker de ZimaOS al asignar Jellyfin, Emby, Plex u otra aplicación.

La ubicación de los datos de aplicaciones y la ubicación de los medios son independientes

Los archivos de configuración y de base de datos de la aplicación pueden almacenarse en la ubicación configurada para los datos de aplicaciones, mientras que los archivos multimedia grandes pueden estar en otro grupo RAID o de discos duros. No dirijas el volumen de configuración de la aplicación a la carpeta de películas ni supongas que mover los datos de aplicaciones mueve toda la biblioteca multimedia.

El ZimaOS actual puede mover los datos de las aplicaciones administradas

La migración de datos actual puede mover imágenes de Docker y datos de aplicaciones de Docker a otro espacio de almacenamiento. Esto resuelve un problema distinto al de añadir un volumen de medios: uno controla dónde guarda la aplicación su estado persistente; el otro proporciona al contenedor acceso a los medios del usuario.

Consulta el flujo de trabajo actual para migrar los datos de las aplicaciones administradas.

Elige montajes de medios de solo lectura cuando la aplicación no necesite modificar archivos

Un servidor multimedia normalmente necesita leer películas y música, pero no necesariamente necesita permiso para eliminar o reorganizar la biblioteca de origen. Cuando el paquete actual de la aplicación lo permite, mapear los medios como de solo lectura reduce el daño que un contenedor comprometido o mal configurado puede causar.

Las aplicaciones que renombran, mueven o importan archivos intencionadamente —como algunas pilas de descargas o gestión de fotos— necesitan un modelo de permisos de escritura diferente.

El mapeo de volúmenes y los permisos del sistema de archivos son comprobaciones independientes

Añadir la carpeta correcta del host es el primer requisito. El proceso del contenedor también debe tener permisos suficientes en el sistema de archivos para leer o escribir en esa carpeta. Si un directorio mapeado aparece, pero está vacío o devuelve errores de permisos, identifica el UID/GID del contenedor y la propiedad del host antes de usar permisos amplios. chmod 777 soluciones alternativas.

El problema de la fuente de 2024 era principalmente la falta de mapeo del volumen; los problemas de permisos posteriores solo deben diagnosticarse después de montar realmente la ruta correcta.

Mantén estable la ruta del lado del contenedor durante las reinstalaciones

Si la biblioteca de Jellyfin se creó usando /Media, cambiando la ruta del contenedor a /mnt/media2 durante una reinstalación puede hacer que la biblioteca existente parezca ausente aunque los archivos del host nunca se hayan movido.

Conserva la misma ruta del lado del contenedor siempre que sea posible, o actualiza deliberadamente la configuración de la biblioteca de la aplicación después de cambiar el mapeo.

La interfaz actual es mejor que el selector de 2024, pero la regla de Docker no ha cambiado

IceWhale reconoció en la fuente que el selector de almacenamiento antiguo era confuso y posteriormente mejoró la interfaz. El ZimaOS actual muestra de forma más directa la ubicación de los datos de las aplicaciones, las rutas del host y del contenedor, la migración del almacenamiento y el uso de la caché de las aplicaciones.

La regla subyacente de Docker sigue siendo la misma: un contenedor solo ve lo que se monta en él.

Preguntas frecuentes sobre el acceso de las aplicaciones al almacenamiento

¿Por qué ZimaOS Files puede ver una unidad, pero Jellyfin no?

Files se ejecuta en el nivel del host; Jellyfin se ejecuta dentro de un contenedor y solo ve los volúmenes mapeados.

¿Se confirmó en el hilo original que añadir el volumen funcionaba?

Sí. Varios usuarios informaron que funcionó después de añadir el volumen de almacenamiento.

¿Debería Jellyfin explorar la ruta sin procesar del host?

No. Jellyfin debería explorar la ruta del lado del contenedor asignada a la carpeta del host mapeada.