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:
- Apri le impostazioni di Immich in ZimaOS.
- Apri il servizio immich-server.
- Aggiungi la cartella dell'host ZimaOS come volume Docker.
- Usa un percorso dal lato del container come
/home/user/photos1. - Apri l'amministrazione di Immich.
- 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_LOCATIONo 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
- Individua la cartella esistente sull'host ZimaOS che contiene le foto.
- Apri le impostazioni dell'app/del container Immich corrente.
- Monta la cartella dell'host in
immich-server. - Preferisci
:roper un archivio che Immich non deve modificare. - Usa un percorso chiaro del container, ad esempio
/home/user/photos1oppure/mnt/media/photos. - Apri Amministrazione di Immich → Librerie esterne.
- Aggiungi il percorso esatto del lato container.
- Esegui una scansione della libreria.
- Non confonderlo con lo spostamento della posizione principale di Immich
UPLOAD_LOCATION. - 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.
Devo usare :ro?
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.
