Immich può consumare molto più spazio di archiviazione di quanto l'unità di sistema di ZimaOS sia progettata per contenere, soprattutto quando iniziano a crescere i caricamenti dal telefono, le miniature, i video codificati, i modelli di apprendimento automatico e il database PostgreSQL. La guida originale della IceWhale Community ha risolto il problema nell'aprile 2025 modificando alcune mappature dei volumi durante un'installazione personalizzata di ZimaOS, in modo che i dati di Immich risiedessero su un volume RAID anziché sull'unità di ZimaOS.
Questa soluzione alternativa è utile per capire come è collegato il container, ma non dovrebbe essere considerata una procedura universale valida ancora oggi. Risposte successive hanno segnalato installazioni non riuscite, riavvii ripetuti, un container PostgreSQL non integro e persino caricamenti di foto danneggiati dopo aver sperimentato con le mappature. ZimaOS ha inoltre aggiunto e perfezionato gli strumenti di migrazione integrati, mentre le versioni attuali di Immich per Docker Compose utilizzano variabili sul lato host come UPLOAD_LOCATION e DB_DATA_LOCATION. In un sistema attuale, usa prima il percorso di migrazione integrato di ZimaOS quando è adatto al tuo obiettivo e riserva la modifica manuale dei volumi ai casi in cui ti serve specificamente una configurazione di archiviazione personalizzata per Immich.
Cosa ha modificato la guida originale di Immich per ZimaOS del 2025
Il tutorial della community utilizzava Installazione personalizzata di ZimaOS, oppure la schermata Impostazioni dell'app dopo l'installazione, e procedeva attraverso le schede del servizio una alla volta. L'obiettivo era reindirizzare i dati persistenti di Immich verso una posizione RAID più capiente, mantenendo i percorsi sul lato container previsti da Immich.
Database: sposta il percorso dell'host, mantieni quello del container
Nella scheda del database, l'autore ha modificato la posizione di archiviazione sul lato ZimaOS impostandola su un percorso RAID, mantenendo il suffisso della directory del database. Il principio fondamentale era non riscrivere il percorso a destra all'interno del container. Modificare la destinazione del container può interrompere il servizio, perché PostgreSQL prevede di trovare i propri dati nel percorso definito dal pacchetto Immich o dalla configurazione di Compose.
L'attuale documentazione di Immich per Docker Compose espone questa posizione sull'host tramite DB_DATA_LOCATION. Immich avverte inoltre che le condivisioni di rete non sono supportate per il database PostgreSQL, quindi il database dovrebbe rimanere su uno spazio di archiviazione locale affidabile e collegato direttamente, anziché su una condivisione SMB o NFS.
Machine learning: reindirizza la cache dei modelli solo se necessario
La guida originale reindirizzava inoltre la cache dei modelli di machine learning sul lato host, lasciando invariato il percorso della cache sul lato container. Spostare questa cache può liberare spazio sul disco di sistema di piccole dimensioni, anche se è meno importante che proteggere la libreria fotografica e il database, perché in genere i modelli scaricati possono essere ricreati.
Server Immich: la sezione dei volumi più delicata
La scheda del server Immich era la parte che l'autore riteneva più facile da compromettere. Sono state aggiunte mappature host aggiuntive in modo che i caricamenti e le altre directory persistenti dei contenuti multimediali puntassero allo spazio di archiviazione RAID. La discussione sottolinea ripetutamente che bisogna modificare solo le posizioni previste sul lato host e non alterare casualmente i percorsi sul lato container.
La scheda Redis non richiedeva modifiche all'archiviazione nella procedura originale. Questo è un altro motivo per non applicare una sostituzione globale a ogni voce dei volumi: i diversi servizi di Immich hanno requisiti di persistenza differenti.
Usa prima la migrazione dei dati di ZimaOS sui sistemi attuali
L'aggiornamento più importante emerso dalla discussione successiva è che ZimaOS ora offre un flusso di migrazione dedicato. Una risposta del team IceWhale nella discussione avvertiva espressamente che la copia manuale dei dati delle app può causare errori e raccomandava di utilizzare la funzione di migrazione nella maggior parte dei casi.
L'attuale guida alla migrazione dei dati di ZimaOS elenca tre categorie di archiviazione trasferibili: immagini Docker, dati delle applicazioni Docker e database degli utenti. Il percorso normale è:
- Apri Impostazioni > Migrazione dati.
- Seleziona la categoria di archiviazione che vuoi spostare.
- Scegli Modifica posizione.
- Seleziona il disco di destinazione o lo spazio di archiviazione.
- Esamina l'avviso, avvia la migrazione e attendi il rapporto di completamento.
Questa migrazione integrata è il punto di partenza migliore quando l'obiettivo è semplicemente tenere i dati delle applicazioni Docker lontani dall'unità di sistema ZimaOS. Riduce inoltre il rischio di lasciare percorsi, autorizzazioni o collegamenti simbolici incoerenti dopo uno spostamento manuale.
E se vuoi Immich sull'SSD ma le foto sul RAID?
Una domanda successiva nella discussione ha sollevato una struttura a lungo termine più utile: mantenere l'applicazione e i componenti sensibili alle prestazioni sull'SSD, ma collocare la grande libreria fotografica sul RAID. L'autore originale non aveva testato questa configurazione separata, quindi la discussione stessa non fornisce una procedura ZimaOS verificata per realizzarla.
La documentazione attuale di Immich definisce due concetti utili per stabilire la struttura corretta. Per i contenuti multimediali caricati su Immich, la configurazione ufficiale Docker Compose utilizza UPLOAD_LOCATION come percorso sull'host per l'archivio multimediale. Per una raccolta di foto esistente che Immich deve indicizzare senza importarla nella propria area di caricamento gestita, Immich supporta le Librerie esterne.
In una distribuzione standard attuale di Immich tramite Compose, i valori di ambiente pertinenti sono concettualmente simili a questi:
UPLOAD_LOCATION=/path/to/large-media-storage
DB_DATA_LOCATION=/path/to/local-database-storage
Non incollare questi percorsi alla cieca in una definizione di app ZimaOS più vecchia. Prima verifica la configurazione Compose o Custom Install usata esattamente dal pacchetto Immich installato. L'attuale file Compose ufficiale di Immich monta ${UPLOAD_LOCATION} nel container del server e ${DB_DATA_LOCATION} in PostgreSQL, mentre le versioni precedenti e i pacchetti della community possono usare destinazioni interne diverse.
Per informazioni aggiornate direttamente dal progetto, consulta la guida all'installazione di Immich con Docker Compose e la guida alle librerie esterne di Immich.
Perché le modifiche manuali ai volumi possono danneggiare Immich
Le risposte mostrano diversi tipi di problemi verificatisi dopo che gli utenti hanno modificato le mappature dello spazio di archiviazione. Un partecipante ha inizialmente segnalato che l'app non funzionava più, per poi riferire che aveva ripreso a funzionare dopo diversi riavvii. Un altro utente ha detto che alcuni esperimenti ripetuti avevano danneggiato Immich e che alcuni caricamenti dal telefono erano risultati corrotti. Una segnalazione successiva descriveva ripetuti fallimenti dell'installazione dovuti a un servizio PostgreSQL non integro.
Queste segnalazioni non dimostrano l’esistenza di un unico bug comune. Mostrano però perché la migrazione dello spazio di archiviazione debba essere gestita come un’operazione di integrità dei dati, non come una semplice modifica estetica del percorso. Tra le cause comuni da verificare rientrano:
- Destinazione errata del container: il percorso sull’host può essere personalizzato, ma il percorso all’interno del container deve corrispondere a quello previsto dalla distribuzione di Immich in uso.
- Autorizzazioni: la destinazione deve essere scrivibile dall’utente del container o dal servizio proprietario dei file.
- Posizione del database: PostgreSQL richiede uno spazio di archiviazione locale affidabile e non dovrebbe essere collocato su una condivisione di rete non supportata.
- Spostamenti incompleti: copiare manualmente solo una parte dell’albero di dati esistente di Immich può lasciare il database e l’archivio multimediale non sincronizzati.
- Incompatibilità di versione: la struttura dei volumi di Immich si è evoluta, quindi le istruzioni scritte per un pacchetto precedente potrebbero non corrispondere a Immich v2, v3 o a una definizione successiva dell’App Store di ZimaOS.
Checklist per una migrazione più sicura dello spazio di archiviazione di Immich
- Esegui il backup del database di Immich e dei file multimediali insostituibili prima di modificare qualsiasi mappatura dei volumi.
- Conferma quale versione di Immich e quale pacchetto dell’App Store di ZimaOS stai utilizzando.
- Decidi se vuoi spostare tutti i dati delle app oppure solo la grande raccolta di file multimediali.
- Se devi spostare i dati generali delle app di ZimaOS, prova Impostazioni > Migrazione dati prima di modificare i percorsi dei singoli container.
- Se utilizzi una configurazione personalizzata di Immich, annota ogni percorso host esistente e ogni destinazione del container prima di modificare qualsiasi elemento.
- Mantieni invariate le destinazioni all’interno dei container, a meno che la documentazione della tua versione esatta di Immich non richieda esplicitamente un percorso diverso.
- Assicurati che il file system di destinazione sia montato e scrivibile prima di ricreare i container.
- Non collocare la directory dei dati PostgreSQL su una condivisione di rete non supportata.
- Dopo la migrazione, carica un piccolo set di prova e verifica gli originali, le miniature, la riproduzione dei video, i metadati e i nuovi caricamenti da dispositivi mobili prima di spostare il resto della raccolta.
- Conserva la vecchia copia finché non avrai verificato sia il database sia i file multimediali sul nuovo spazio di archiviazione.
Cosa hanno aggiunto le risposte della community alla guida originale
Le risposte più utili hanno modificato l’interpretazione del tutorial originale in tre modi. Primo, hanno mostrato che la mappatura manuale può funzionare, ma è sensibile alla versione esatta dell’app, alle autorizzazioni di archiviazione e allo stato dopo il riavvio. Secondo, gli utenti preferivano una configurazione con SSD separato più RAID, invece di spostare ogni componente di Immich sullo stesso array. Terzo, un membro del team IceWhale ha consigliato di utilizzare la funzione di migrazione integrata e ha avvertito che la copia manuale potrebbe generare errori.
Per questo, il post originale del 2025 va interpretato come un esempio pratico della community valido per il suo tempo, non come una specifica immutabile per ogni versione successiva di Immich o ZimaOS. Se l'interfaccia attuale di ZimaOS non mostra più gli stessi campi di Installazione personalizzata presenti negli screenshot, segui l'interfaccia di migrazione attuale ed esamina la configurazione Compose dell'app installata invece di tentare di ricreare i vecchi campi.
Domande frequenti sull'archiviazione di Immich in ZimaOS
Posso installare Immich su un'unità RAID invece che sull'unità di sistema di ZimaOS?
Sì, ma occorre distinguere tra lo spostamento dei dati delle applicazioni di ZimaOS e la progettazione di una struttura multimediale personalizzata per Immich. Nelle versioni attuali di ZimaOS, usa prima la funzione integrata Migrazione dati se il tuo obiettivo è spostare i dati delle applicazioni Docker. Le mappature manuali dei volumi sono più adatte a una progettazione deliberata con archiviazione suddivisa.
Devo modificare il percorso del volume di Immich sulla destra in Installazione personalizzata?
Non a meno che la documentazione relativa alla tua specifica distribuzione di Immich non lo indichi. La guida originale della community modificava le posizioni sul lato host mantenendo invariate le destinazioni sul lato container. Riscrivere una destinazione interna può impedire al servizio di trovare le directory previste del database, della cache o dei contenuti multimediali.
Posso tenere Immich sull'SSD e archiviare solo le foto sul RAID?
Sì, in linea di principio, e le versioni attuali di Immich supportano la scelta di una posizione di caricamento sull'host e il montaggio di Librerie esterne. La mappatura esatta in ZimaOS dipende dal pacchetto e dalla versione di Immich installati, quindi verifica la definizione Compose attuale prima di modificare i percorsi.
Perché PostgreSQL passa allo stato non integro dopo aver cambiato la posizione di archiviazione?
Tra le possibili cause ci sono una destinazione di montaggio errata, permessi mancanti, file del database incompleti o uno spazio di archiviazione non supportato. Verifica che l'intera directory del database sia stata spostata correttamente, che la destinazione sia locale e scrivibile e che la destinazione del container corrisponda ancora alla configurazione Compose installata.
Posso semplicemente copiare la cartella AppData di Immich su un altro disco?
Quello non è il percorso attualmente consigliato per ZimaOS. Un membro del team di IceWhale ha avvertito esplicitamente nella discussione che la copia manuale può causare errori e ha raccomandato la funzione di migrazione per la maggior parte degli spostamenti delle app.
La guida illustrata con screenshot di aprile 2025 è ancora aggiornata?
Rimane utile come spiegazione storica delle mappature dei volumi di ZimaOS, ma da allora sono cambiate sia le funzioni di migrazione di ZimaOS sia la struttura Compose di Immich. Considera gli screenshot come riferimento per la configurazione originale, quindi verifica i campi e i percorsi mostrati nella tua installazione attuale prima di applicare qualsiasi modifica.
