Passer au contenu principal

Bibliothèques externes

Les bibliothèques externes suivent les actifs stockés dans le système de fichiers en dehors d'Immich. Lorsqu'une bibliothèque externe est scannée, Immich charge les vidéos et photos depuis le disque et crée les actifs correspondants. Ces actifs apparaîtront ensuite dans la chronologie principale et fonctionneront comme n'importe quel autre actif, comprenant la visualisation sur la carte, l'ajout à des albums, etc. Par la suite, si un fichier est modifié en dehors d'Immich, vous devrez scanner la bibliothèque pour que les modifications soient prises en compte.

Si un actif externe est supprimé du disque, Immich le déplacera dans la corbeille lors d'une nouvelle analyse. Pour restaurer l'actif, vous devez rétablir le fichier original. Après 30 jours, le fichier sera supprimé de la corbeille et les modifications des métadonnées au sein d'Immich seront perdues.

prudence

Si vous ajoutez des métadonnées à un actif externe de quelque manière que ce soit (par exemple, en l'ajoutant à un album ou en modifiant sa description), ces métadonnées sont uniquement enregistrées dans Immich et ne seront pas conservées dans le fichier de l'actif externe. Si vous déplacez un actif dans un autre emplacement au sein de la bibliothèque, toutes ces métadonnées seront perdues lors de la nouvelle analyse. Ceci s'explique par le fait que l'actif est considéré comme un nouvel actif après le déplacement. Il s'agit d'un problème connu qui sera corrigé dans une future version.

prudence

En raison de la mise en cache agressive, il peut falloir un certain temps pour qu'un actif actualisé apparaisse correctement dans l'affichage web. Vous devrez vider le cache de votre navigateur pour voir les modifications. Il s'agit d'un problème connu qui sera corrigé dans une future version. Dans Chrome, vous devez ouvrir la console de développement avec F12, puis recharger la page avec F5, et enfin cliquer avec le bouton droit sur le bouton de rechargement et sélectionner "Vider le cache et recharger de manière complète".

Chemins d'importation

Les bibliothèques externes utilisent des chemins d'importation pour déterminer quels fichiers scanner. Chaque bibliothèque peut avoir plusieurs chemins d'importation afin que des fichiers provenant de différents emplacements soient ajoutés à la même bibliothèque. Les chemins d'importation sont scannés récursivement, et si un fichier se trouve dans plusieurs chemins d'importation, il ne sera ajouté qu'une seule fois. Chaque fichier importé doit être un répertoire lisible qui existe sur le système de fichiers ; la boîte de dialogue du chemin d'importation vous avertira de tout chemin inaccessible.

Si les chemins d'importation sont modifiés de manière à ce qu'un fichier externe ne soit plus dans aucun chemin d'importation, il sera supprimé de la bibliothèque comme s'il avait été supprimé. Si le fichier est déplacé à nouveau dans un chemin d'importation, il sera ajouté à nouveau comme s'il s'agissait d'un nouveau fichier.

Dépannage

Parfois, une bibliothèque externe ne se scanne pas correctement. Cela peut se produire si Immich ne peut pas accéder aux fichiers. Voici quelques vérifications à effectuer :

  • Les volumes sont-ils correctement montés dans le fichier docker-compose?
  • Les volumes sont-ils également montés sur les conteneurs de travailleurs ?
  • Les chemins d'importation sont-ils correctement définis et correspondent-ils au chemin défini dans le fichier docker-compose ?
  • Vous assurez-vous de ne pas utiliser de liens symboliques dans vos bibliothèques d'importation et de ne pas faire de liens entre des montages Docker ?
  • Les permissions sont-elles correctement configurées ?
  • Assurez-vous d'utiliser des barres obliques (/) et non des barres obliques inversées.

Pour valider qu'Immich peut accéder à votre bibliothèque externe, démarrez un shell dans le conteneur. Exécutez docker exec -it immich_server bash pour ouvrir un shell bash. Si votre chemin d'importation est /data/import/photos, vérifiez-le avec ls /data/import/photos. Faites la même vérification dans les conteneurs des microservices.

Modèles d'exclusion

Par défaut, tous les fichiers dans les chemins d'importation seront ajoutés à la bibliothèque. Si certains fichiers ne doivent pas être ajoutés, des modèles d'exclusion peuvent être utilisés pour les exclure. Les modèles d'exclusion sont des modèles glob, qui sont comparés au chemin complet du fichier. Si un fichier correspond à un modèle d'exclusion, il ne sera pas ajouté à la bibliothèque. Les modèles d'exclusion peuvent être ajoutés dans la page de paramètres de scannage de chaque bibliothèque.

Quelques exemples de base :

  • **/*.tif exclura tous les fichiers avec l'extension .tif
  • **/hidden.jpg exclura tous les fichiers nommés hidden.jpg
  • **/Raw/** exclura tous les fichiers dans tout répertoire nommé Raw
  • **/*.{tif,jpg} exclura tous les fichiers avec l'extension .tif ou .jpg

Les caractères spéciaux comme @ doivent être échappés, par exemple :

  • **/\@eaDir/** exclura tous les fichiers dans tout répertoire nommé @eaDir
info

En interne, Immich utilise le paquet glob pour traiter les modèles d'exclusion, et parfois ces modèles sont traduits en modèles LIKE de Postgres. L'objectif est de faciliter l'exclusion de dossiers de base, mais nous recommandons de ne pas utiliser des modèles avancés, car ils ne peuvent pas être traduits de manière fiable en syntaxe Postgres. Veuillez consulter la documentation de glob pour un aperçu des modèles glob.

Surveillance automatique (EXPÉRIMENTAL)

Cette fonctionnalité est considérée comme expérimentale et réservée aux utilisateurs avancés. Lorsqu'elle est activée, elle permet une surveillance automatique du système de fichiers, ce qui signifie que de nouveaux actifs sont automatiquement importés dans Immich sans avoir besoin de les scanner.

Si vos photos se trouvent sur un lecteur réseau, la surveillance automatique des fichiers risque de ne pas fonctionner. Dans ce cas, vous devrez compter sur une actualisation périodique de la bibliothèque pour prendre en compte vos modifications.

Dépannage

Si vous rencontrez une erreur ENOSPC, vous devez augmenter votre limite de surveillance des fichiers. Dans sysctl, cette clé est appelée fs.inotify.max_user_watches et a une valeur par défaut de 8192. Augmentez ce nombre à une valeur adaptée, supérieure au nombre de fichiers que vous surveillerez. Notez qu'Immich doit surveiller tous les fichiers de vos chemins d'importation, y compris les fichiers ignorés.

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'

Dans de rares cas, le surveillant de la bibliothèque peut se bloquer, empêchant Immich de démarrer. Dans ce cas, désactivez le surveillant de bibliothèque dans le fichier de configuration. Si le surveillant est activé depuis Immich, l'application doit être démarrée sans les microservices. Désactivez les microservices dans le fichier docker-compose, démarrez Immich, désactivez le surveillant de bibliothèque dans les paramètres administratifs, fermez Immich, réactivez les microservices, puis démarrez Immich normalement.

Travail nocturne

Un travail de scan automatique est programmé pour s'exécuter une fois par jour. Ce travail nettoie également les bibliothèques bloquées en suppression. Il est possible de déclencher le nettoyage en cliquant sur "Scanner toutes les bibliothèques" dans la page de gestion des bibliothèques.

Utilisation

Prenons un exemple concret où nous ajoutons une galerie existante à Immich. Ici, nous avons les dossiers suivants que nous souhaitons ajouter :

  • /home/user/old-pics : un dossier contenant des photos d'enfance.
  • /mnt/nas/christmas-trip : photos d'un voyage de Noël. Le sous-dossier /mnt/nas/christmas-trip/Raw contient les fichiers raw directement du reflex numérique. Nous ne voulons pas importer les fichiers raw dans Immich.
  • /mnt/media/videos : Vidéos du même voyage de Noël.

Premièrement, nous devons planifier la manière dont nous souhaitons organiser les bibliothèques. Les photos du voyage de Noël devraient appartenir à leur propre bibliothèque puisque nous voulons exclure les fichiers raw. Les vidéos et les anciennes photos peuvent être regroupées dans la même bibliothèque puisque nous souhaitons importer tous les fichiers. Nous pourrions également ajouter les trois dossiers dans la même bibliothèque s'il n'y a pas de fichiers correspondant au modèle d'exclusion Raw dans les autres dossiers.

Monter les volumes Docker

Le conteneur immich-server doit avoir accès à la galerie. Modifiez votre fichier docker-compose comme suit :

docker-compose.yml
  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 # ATTENTION : Immich pourra supprimer les fichiers dans ce dossier, car il ne se termine pas par :ro
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # chemin d'importation dans le système Windows.

Le flag ro à la fin donne uniquement un accès en lecture aux volumes. Cela empêchera la suppression des images depuis l'interface web ou l'ajout de métadonnées à la bibliothèque (sidecars XMP).

info

N'oubliez pas d'exécuter docker-compose up -d pour enregistrer les modifications. Assurez-vous de voir le chemin monté dans le conteneur.

Créer une nouvelle bibliothèque

Ces actions doivent être réalisées par l'administrateur Immich.

  • Cliquez sur votre avatar dans le coin supérieur droit.
  • Cliquez sur Administration -> Bibliothèques externes.
  • Cliquez sur Créer une bibliothèque externe...
  • Sélectionnez l'utilisateur propriétaire de la bibliothèque ; cela ne peut pas être modifié par la suite.
  • Entrez /mnt/media/christmas-trip puis cliquez sur Ajouter.
  • Cliquez sur Enregistrer.
  • Cliquez sur le menu déroulant de la bibliothèque nouvellement créée.
  • Cliquez sur Scanner.
  • Cliquez sur le menu déroulant de la bibliothèque nouvellement créée.
  • Cliquez sur Renommer la bibliothèque et renommez-la "Voyage de Noël".

REMARQUE : Nous devons utiliser le chemin /mnt/media/christmas-trip et non le chemin /mnt/nas/christmas-trip, car tous les chemins doivent être ceux visibles par les conteneurs Docker.

Ensuite, nous ajouterons un modèle d'exclusion pour filtrer les fichiers raw.

  • Cliquez sur le menu déroulant de la bibliothèque de Noël nouvellement créée.
  • Cliquez sur Gérer.
  • Cliquez sur Paramètres de scannage.
  • Cliquez sur Ajouter un modèle d'exclusion.
  • Entrez **/Raw/** puis cliquez sur Enregistrer.
  • Cliquez sur enregistrer.
  • Cliquez sur le menu déroulant de la bibliothèque nouvellement créée.
  • Cliquez sur Scanner.

La bibliothèque du voyage de Noël sera maintenant scannée en arrière-plan. En attendant, ajoutons les vidéos et les anciennes photos à une autre bibliothèque.

  • Cliquez sur Créer une bibliothèque externe.
note

Si vous obtenez une erreur ici, veuillez renommer l'autre bibliothèque externe à un autre nom. Il s'agit d'un bug qui sera corrigé dans une future version.

  • Cliquez sur le menu déroulant de la bibliothèque nouvellement créée.
  • Cliquez sur Modifier les chemins d'importation.
  • Cliquez sur Ajouter un chemin.
  • Entrez /mnt/media/old-pics puis cliquez sur Ajouter.
  • Cliquez sur Ajouter un chemin.
  • Entrez /mnt/media/videos puis cliquez sur Ajouter.
  • Cliquez sur Enregistrer.
  • Cliquez sur Scanner.

En quelques secondes, les actifs des dossiers old-pics et videos devraient apparaître dans la chronologie principale.

Vue des dossiers

L'affichage des dossiers offre une vue supplémentaire en plus de la chronologie, similaire à un explorateur de fichiers. Il vous permet de naviguer à travers les dossiers et fichiers de la bibliothèque. Cette fonctionnalité est utile pour une bibliothèque externe hautement organisée et personnalisée ou un modèle de stockage bien configuré.

Vous pouvez activer cette fonctionnalité sous Paramètres du compte > Fonctionnalités > Dossiers

Définir un intervalle de numérisation personnalisé

note

Seul un administrateur peut effectuer cette opération.

Vous pouvez définir un intervalle personnalisé pour le déclenchement de la rescane de la bibliothèque externe sous Administration -> Paramètres -> Bibliothèque externe. Vous pouvez définir l'intervalle de numérisation en utilisant le format prédéfini ou cron. Pour plus d'informations, vous pouvez consulter Crontab Guru.