Soluzione della community

Aggiungi una libreria fotografica esterna a Immich su ZimaOS

A ZimaOS user wanted Immich to recognize photos already stored on another drive. The confirmed community solution was to mount that host folder into immich-server and then add the container-side path as an Immich External Library.

Se hai già foto su un altro HDD o SSD e vuoi che Immich su ZimaOS le indicizzi senza spostarle nella normale libreria di caricamento di Immich, usa una libreria esterna. La discussione della community dell'ottobre 2024 ha confermato questo flusso di lavoro: prima rendi accessibile la cartella dell'host ZimaOS al container immich-server, poi aggiungi il percorso corrispondente dal lato del container nell'amministrazione di Immich.

Questo è diverso dal cambiare lo spazio di archiviazione principale per i caricamenti di Immich. Una risposta successiva nella stessa discussione chiedeva se il disco esterno potesse diventare l'unica posizione per tutti i futuri caricamenti di Immich, ma la domanda non è stata risolta nella discussione originale. La documentazione attuale di Immich considera questi due flussi di lavoro separati: le librerie esterne per i file esistenti e UPLOAD_LOCATION/percorsi di archiviazione personalizzati per i caricamenti gestiti da Immich.

Cosa ha effettivamente risolto la discussione originale

L'autore originale voleva che Immich riconoscesse le foto archiviate al di fuori del percorso predefinito. In seguito ha riferito che la seguente sequenza aveva funzionato:

  1. Apri le impostazioni di Immich in ZimaOS.
  2. Apri il servizio immich-server.
  3. Aggiungi la cartella dell'host ZimaOS come volume Docker.
  4. Usa un percorso dal lato del container come /home/user/photos1.
  5. Apri l'amministrazione di Immich.
  6. Crea una libreria esterna e aggiungi lo stesso percorso dal lato del container.

Un utente successivo ha confermato esplicitamente che questa soluzione ha funzionato.

Il percorso dell'host e il percorso di Immich sono diversi

Il concetto di mapping Docker è:

Cartella dell'host ZimaOS → cartella del container Immich

Ad esempio:

/media/Photos:/home/user/photos1:ro

Immich non esegue la scansione diretta del percorso dell'host ZimaOS. Può eseguire la scansione solo del percorso visibile all'interno del suo container:

/home/user/photos1

Usa la modalità di sola lettura per gli archivi fotografici esistenti

La soluzione originale della community utilizzava :ro. La documentazione attuale di Immich continua a consigliare i mount di sola lettura quando Immich deve solo indicizzare i file:

/media/Photos:/home/user/photos1:ro

La modalità di sola lettura impedisce a Immich di eliminare file o scrivere metadati sidecar nella cartella di origine.

Documentazione attuale di Immich sulle librerie esterne

Crea la libreria esterna in Immich

Dopo aver creato il mount, apri Immich con un account amministratore e vai alla sezione Librerie esterne. Crea una libreria, selezionane il proprietario e aggiungi il percorso del container:

/home/user/photos1

Poi avvia una scansione. Immich dovrebbe iniziare a indicizzare le foto e a creare miniature e processi per i metadati.

Verifica che il percorso esista all'interno del container

Se Immich rifiuta il percorso della libreria, verifica che il mount sia visibile a immich-server. Il problema centrale della discussione originale non era semplicemente scegliere una cartella nell'interfaccia di Immich; Docker doveva prima rendere quella cartella accessibile all'interno del container.

La documentazione attuale di Immich esplicita lo stesso requisito: il percorso montato deve esistere all'interno del container prima di poter essere aggiunto come libreria esterna.

Non copiare alla cieca il passaggio storico della scheda Database

Il post originale del 2024 indicava anche di aggiungere lo stesso percorso nella scheda Database di Immich. Oggi questa istruzione va considerata con cautela.

L'attuale versione upstream di Immich distingue:

  • archiviazione di foto/video tramite UPLOAD_LOCATION o bind mount di librerie esterne;
  • Archiviazione del database PostgreSQL tramite DB_DATA_LOCATION.

La posizione del database non è la stessa cosa della posizione della libreria fotografica. Non associare una cartella fotografica arbitraria a PostgreSQL solo perché il vecchio pacchetto ZimaOS mostrava una scheda del servizio Database.

Libreria esterna e spazio di archiviazione principale di Immich

Obiettivo Usa
Indicizza le foto già archiviate altrove Libreria esterna
Fai in modo che i futuri caricamenti di Immich risiedano su un'altra unità Modifica la posizione di caricamento/archiviazione di Immich

La discussione di origine ha confermato il primo caso, non il secondo.

Se vuoi che l'unità esterna diventi lo spazio di archiviazione principale di Immich

L'attuale Docker Compose di Immich usa:

UPLOAD_LOCATION=./library

e monta quel percorso dell'host in /data all'interno di immich-server. La documentazione attuale sulle posizioni personalizzate spiega come spostare i dati gestiti da Immich in un'altra posizione di archiviazione dell'host, mantenendo i percorsi previsti nel container.

Posizioni di archiviazione personalizzate di Immich

Se in Immich esistono già foto importanti, esegui il backup sia del database sia del file system prima di modificare la posizione di archiviazione principale.

Tieni separati i requisiti del database

Il database PostgreSQL ha requisiti di archiviazione diversi da quelli dei file fotografici. La documentazione attuale di Immich indica che le condivisioni di rete non sono supportate per il percorso del database e che il database deve usare un file system locale appropriato.

Non spostare PostgreSQL solo perché stai aggiungendo una libreria fotografica esterna.

Le librerie esterne richiedono comunque backup indipendenti

Immich non copia le risorse originali della libreria esterna nel normale spazio di archiviazione gestito. Gli originali rimangono sul disco esterno. Se i file vengono rimossi dal disco, Immich può contrassegnarli come mancanti o rimuoverli dalla libreria attiva dopo una nuova scansione.

Esegui il backup dell'unità sorgente separatamente. I metadati del database di Immich non sostituiscono un backup del file system.

Checklist della libreria esterna di Immich su ZimaOS

  1. Individua la cartella esistente sull'host ZimaOS che contiene le foto.
  2. Apri le impostazioni dell'app/del container Immich corrente.
  3. Monta la cartella dell'host in immich-server.
  4. Preferisci :ro per un archivio che Immich non deve modificare.
  5. Usa un percorso chiaro del container, ad esempio /home/user/photos1 oppure /mnt/media/photos.
  6. Apri Amministrazione di Immich → Librerie esterne.
  7. Aggiungi il percorso esatto del lato container.
  8. Esegui una scansione della libreria.
  9. Non confonderlo con lo spostamento della posizione principale di Immich UPLOAD_LOCATION.
  10. Esegui il backup dell'unità esterna separatamente.

Domande frequenti sulle librerie esterne di Immich

La soluzione originale ha funzionato?

Sì. L'autore originale ha riferito che la procedura ha funzionato, e in seguito un altro utente ha confermato che lo stesso flusso ha funzionato anche per lui.

La libreria esterna rende l'unità esterna la posizione principale per i caricamenti di Immich?

No. Le librerie esterne indicizzano file già presenti al di fuori dello spazio di archiviazione gestito per i caricamenti di Immich.

Quale percorso devo inserire in Immich?

Usa il percorso del lato container indicato nel mount Docker, non il percorso della cartella sull'host ZimaOS.

Sì, quando la cartella esterna è un archivio che Immich deve solo leggere. Rimuovi la modalità di sola lettura solo se vuoi intenzionalmente che Immich modifichi o elimini i file al suo interno.