Bibliotecas Externas
Las bibliotecas externas rastrean los activos almacenados en el sistema de archivos fuera de Immich. Cuando se escanea la biblioteca externa, Immich carga videos y fotos desde el disco y crea los activos correspondientes. Estos activos luego se muestran en la línea de tiempo principal y se comportan como cualquier otro activo, incluidos los mapas, álbumes, etc. Más tarde, si un archivo se modifica fuera de Immich, necesitas escanear la biblioteca para que los cambios se reflejen.
Si un activo externo se elimina del disco, Immich lo moverá a la papelera en el próximo escaneo. Para restaurar el activo, necesitas restaurar el archivo original. Después de 30 días, el archivo será eliminado de la papelera, y cualquier cambio en los metadatos dentro de Immich se perderá.
Si agregas metadatos a un activo externo de alguna manera (por ejemplo, añadirlo a un álbum o editar la descripción), esos metadatos solo se almacenarán dentro de Immich y no se reflejarán en el archivo externo. Si mueves un activo a otra ubicación dentro de la biblioteca, todos esos metadatos se perderán en el próximo escaneo. Esto se debe a que el activo se considera uno nuevo después de la mudanza. Este es un problema conocido y se solucionará en una futura versión.
Debido a una caché agresiva, puede tomar un tiempo para que un activo actualizado se muestre correctamente en la vista web. Necesitas limpiar la caché de tu navegador para ver los cambios. Este es un problema conocido y se solucionará en una futura versión. En Chrome, necesitas abrir la consola del desarrollador con F12, luego recargar la página con F5 y finalmente hacer clic derecho en el botón de recarga y seleccionar "Vaciar caché y recarga completa".
Rutas de Importación
Las bibliotecas externas utilizan rutas de importación para determinar qué archivos escanear. Cada biblioteca puede tener múltiples rutas de importación para que archivos de diferentes ubicaciones puedan agruparse en la misma biblioteca. Las rutas de importación se escanean de manera recursiva y, si un archivo está en múltiples rutas de importación, solo se agregará una vez. Cada archivo de importación debe ser un directorio accesible que exista en el sistema de archivos; el diálogo de rutas de importación te alertará sobre cualquier ruta que no sea accesible.
Si las rutas de importación se editan de modo que un archivo externo ya no se encuentre en ninguna ruta de importación, será eliminado de la biblioteca como si se hubiera borrado. Si el archivo se traslada nuevamente a una ruta de importación, se agregará otra vez como si fuera un archivo nuevo.
Resolución de Problemas
A veces, una biblioteca externa no se escanea correctamente. Esto puede ocurrir si Immich no puede acceder a los archivos. Aquí algunas cosas que puedes verificar:
- En el archivo docker-compose, ¿están montados correctamente los volúmenes?
- ¿Están los volúmenes también montados en los contenedores de trabajadores?
- ¿Están configuradas correctamente las rutas de importación y coinciden con las configuradas en el archivo docker-compose?
- Asegúrate de no usar enlaces simbólicos en tus bibliotecas de importación y que no estés vinculando entre montajes de Docker.
- ¿Están correctamente configurados los permisos?
- Asegúrate de usar barras diagonales (
/
) y no barras inversas.
Para validar que Immich puede acceder a tu biblioteca externa, inicia una shell dentro del contenedor. Ejecuta docker exec -it immich_server bash
para acceder a una shell bash. Si tu ruta de importación es /data/import/photos
, compruébala con ls /data/import/photos
. Haz la misma comprobación en cualquier contenedor de microservicios.
Patrones de Exclusión
Por defecto, todos los archivos en las rutas de importación serán agregados a la biblioteca. Si hay archivos que no deben ser agregados, puedes usar patrones de exclusión para excluirlos. Los patrones de exclusión son patrones glob que se comparan con la ruta completa del archivo. Si un archivo coincide con un patrón de exclusión, no será agregado a la biblioteca. Los patrones de exclusión se pueden agregar en la página de Configuración de Escaneo para cada biblioteca.
Algunos ejemplos básicos:
**/*.tif
excluirá todos los archivos con la extensión.tif
**/hidden.jpg
excluirá todos los archivos llamadoshidden.jpg
**/Raw/**
excluirá todos los archivos en cualquier directorio llamadoRaw
**/*.{tif,jpg}
excluirá todos los archivos con la extensión.tif
o.jpg
Los caracteres especiales como @ deben ser escapados, por ejemplo:
**/\@eaDir/**
excluirá todos los archivos en cualquier directorio llamado@eaDir
Internamente, Immich utiliza el paquete glob para procesar patrones de exclusión, y a veces esos patrones se traducen en patrones LIKE de Postgres. La intención es admitir exclusiones básicas de carpetas, pero recomendamos evitar usos avanzados ya que no se pueden traducir de manera confiable a la sintaxis de Postgres. Consulta la documentación de glob para una visión general básica sobre patrones glob.
Vigilancia automática (EXPERIMENTAL)
Esta función se considera experimental y solo para usuarios avanzados. Si está habilitada, permitirá la vigilancia automática del sistema de archivos, lo que significa que nuevos activos se importan automáticamente a Immich sin necesidad de escanear nuevamente.
Si tus fotos están en una unidad de red, es probable que la vigilancia automática de archivos no funcione. En ese caso, deberás depender de una actualización periódica de la biblioteca para reflejar los cambios.
Resolución de Problemas
Si encuentras un error ENOSPC
, necesitas aumentar el límite de tu vigilante de archivos. En sysctl, esta clave se llama fs.inotify.max_user_watches
y tiene un valor predeterminado de 8192. Aumenta este número a un valor adecuado mayor que el número de archivos que estarás vigilando. Ten en cuenta que Immich tiene que vigilar todos los archivos en tus rutas de importación, incluidos archivos ignorados.
ERROR [LibraryService] Library watcher for library c69faf55-f96d-4aa0-b83b-2d80cbc27d98 encountered error: Error: ENOSPC: System limit for number of file watchers reached, watch '/media/photo.jpg'
En casos raros, el vigilante de la biblioteca puede colgarse, impidiendo que Immich inicie. En este caso, desactiva el vigilante de la biblioteca en el archivo de configuración. Si el vigilante está habilitado desde dentro de Immich, la aplicación debe iniciarse sin los microservicios. Desactiva los microservicios en el archivo docker-compose, inicia Immich, desactiva el vigilante de la biblioteca en la configuración de administración, cierra Immich, vuelve a habilitar los microservicios y luego Immich podrá iniciarse normalmente.
Tarea nocturna
Hay una tarea de escaneo automático que se programa para ejecutarse una vez al día. Esta tarea también limpia cualquier biblioteca que se haya quedado atascada en el proceso de eliminación. Es posible activar la limpieza haciendo clic en "Escanear todas las bibliotecas" en la página de gestión de bibliotecas.
Uso
Veamos un ejemplo concreto donde añadimos una galería existente a Immich. Aquí tenemos las siguientes carpetas que queremos añadir:
/home/user/old-pics
: una carpeta que contiene fotos de la infancia./mnt/nas/christmas-trip
: fotos de un viaje navideño. La subcarpeta/mnt/nas/christmas-trip/Raw
contiene los archivos RAW directamente desde la DSLR. No queremos importar los archivos RAW a Immich./mnt/media/videos
: Videos del mismo viaje navideño.
Primero, necesitamos planear cómo queremos organizar las bibliotecas. Las fotos del viaje navideño deben pertenecer a su propia biblioteca ya que queremos excluir los archivos RAW. Los videos y las fotos antiguas pueden estar en la misma biblioteca ya que queremos importar todos los archivos. También podríamos añadir las tres carpetas a la misma biblioteca si no hay archivos que coincidan con el patrón de exclusión Raw en las otras carpetas.
Montar Volúmenes de Docker
El contenedor immich-server
necesitará acceso a la galería. Modifica tu archivo docker-compose como se muestra a continuación
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
+ - /home/user/old-pics:/mnt/media/old-pics:ro
+ - /mnt/media/videos:/mnt/media/videos:ro
+ - /mnt/media/videos2:/mnt/media/videos2 # ADVERTENCIA: Immich podrá eliminar los archivos en esta carpeta, ya que no termina con :ro
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # ruta de importación en el sistema Windows.
La bandera ro
al final solo otorga acceso de solo lectura a los volúmenes.
Esto evitará que las imágenes se eliminen en la interfaz web, o que se añadan metadatos a la biblioteca (XMP sidecars).
Recuerda ejecutar docker compose up -d
para registrar los cambios. Asegúrate de que puedes ver la ruta montada en el contenedor.
Crear Una Nueva Biblioteca
Estas acciones deben ser realizadas por el administrador de Immich.
- Haz clic en tu avatar en la esquina superior derecha
- Haz clic en Administración -> Bibliotecas Externas
- Haz clic en Crear una biblioteca externa...
- Selecciona qué usuario es el propietario de la biblioteca, esto no se puede cambiar más tarde
- Ingresa
/mnt/media/christmas-trip
y luego haz clic en Agregar - Haz clic en Guardar
- Haz clic en el menú desplegable de la biblioteca recién creada
- Haz clic en Escanear
- Haz clic en el menú desplegable de la biblioteca recién creada
- Haz clic en Renombrar Biblioteca y cámbiala a "Viaje de Navidad"
NOTA: Tenemos que usar la ruta /mnt/media/christmas-trip
y no la ruta /mnt/nas/christmas-trip
, ya que todas las rutas deben ser lo que los contenedores de Docker ven.
A continuación, añadiremos un patrón de exclusión para filtrar archivos RAW.
- Haz clic en el menú desplegable de la biblioteca navideña recién creada
- Haz clic en Gestionar
- Haz clic en Configuración de Escaneo
- Haz clic en Agregar Patrón de Exclusión
- Ingresa
**/Raw/**
y haz clic en guardar. - Haz clic en guardar
- Haz clic en el menú desplegable de la biblioteca recién creada
- Haz clic en Escanear
La biblioteca del viaje navideño ahora se escaneará en segundo plano. Mientras tanto, agreguemos los videos y las fotos antiguas a otra biblioteca.
- Haz clic en Crear Biblioteca Externa.
Si recibes un error aquí, por favor renombra la otra biblioteca externa. Esto es un error que será solucionado en una futura versión.
- Haz clic en el menú desplegable de la biblioteca recién creada
- Haz clic en Editar Rutas de Importación
- Haz clic en Agregar Ruta
- Ingresa
/mnt/media/old-pics
y luego haz clic en Agregar - Haz clic en Agregar Ruta
- Ingresa
/mnt/media/videos
y luego haz clic en Agregar - Haz clic en Guardar
- Haz clic en Escanear
En segundos, los activos de las carpetas old-pics y videos deberían aparecer en la línea de tiempo principal.
Vista de Carpetas
La vista de carpetas proporciona una vista adicional además de la línea de tiempo que es similar a un explorador de archivos. Permite navegar a través de las carpetas y archivos en la biblioteca. Esta función es útil para una biblioteca externa altamente curada y personalizada o una plantilla de almacenamiento bien configurada.
Puedes habilitar esta función en Configuración de cuenta > Funciones > Carpetas

Configurar Intervalo de Escaneo Personalizado
Solo un administrador puede hacer esto.
Puedes definir un intervalo personalizado para desencadenar el reescaneo de la biblioteca externa en Administración -> Configuración -> Biblioteca Externa. Puedes establecer el intervalo de escaneo utilizando el formato preestablecido o de cron. Para más información, puedes consultar Crontab Guru.
