Hai una libreria fotografica. Anni di ricordi. Album che hai organizzato con cura. Volti che hai taggato. Link condivisi che hai inviato alla famiglia.
Poi aggiorni il tuo NAS — e ti rendi conto che spostare i file non basta. Senza il database, perdi ogni album, ogni tag facciale, ogni ricordo che hai curato. Le foto ci sono, ma l'organizzazione è sparita.
Ho appena spostato 14.505 foto e 925 video — 134 GiB totali — da un server DIY ZimaOS al ZimaCube 2. Ogni album è sopravvissuto. Ogni tag facciale è stato mantenuto. Ogni link condiviso funziona ancora.
Ecco esattamente come l'ho fatto, cosa è quasi andato storto e cosa ha portato ZimaCube 2 che il mio vecchio setup non poteva offrire.
Perché Immich, perché ora
Immich è diventata la soluzione self-hosted per foto più usata per un motivo. Ti offre funzionalità al livello di Google Photos — riconoscimento facciale, ricerca semantica, backup automatici dal tuo telefono, album condivisi — senza inviare le tue foto al server di qualcun altro.
Ma Immich conserva la sua anima in PostgreSQL. Il database contiene album, vettori facciali, gruppi di persone, embedding CLIP per la ricerca intelligente e ogni metadato che rende la libreria tua. Sposta i file senza il database e ottieni una cartella piena di foto e un'istanza Immich vuota.
Questa migrazione aveva una regola: zero perdita di dati. Il vecchio server non sarebbe stato cancellato finché il nuovo non fosse stato verificato.
Cosa Immich conserva realmente (e perché è importante)
Prima di toccare qualsiasi file, ho mappato esattamente cosa doveva essere spostato:
| Componente | Posizione | Contenuti | Deve essere migrato? |
| pgdata | /DATA/AppData/immich/pgdata | PostgreSQL completo — album, volti, persone, metadati | ✅ Critico |
| model-cache | /DATA/AppData/immich/model-cache | Modelli CLIP/riconoscimento facciale scaricati | ✅ Evita di riscaricare |
| Libreria fotografica | /DATA/Gallery/immich | 14.505 foto + 925 video + miniature (134 GiB) | ✅ Media attuali |
| Backup automatici | /DATA/Gallery/immich/backups | Ultimi 14 snapshot giornalieri del database | 💡 Già presente |
Immich crea anche backup automatici del database ogni giorno alle 2:00 AM, mantenendo gli ultimi 14 nella directory dei backup. Prima di eseguire un dump manuale, verifica se un backup automatico recente è già presente.
Il metodo: app Files di ZimaOS (copia LAN)
Entrambe le macchine eseguono ZimaOS sulla stessa LAN. Questo significava che potevo usare l'app Files integrata per un trasferimento diretto LAN — niente unità esterne, nessun comando SCP, nessun storage intermedio.
Passo 1: Monta la macchina sorgente
Su ZimaCube 2, apri l'app Files → + Aggiungi Archiviazione → Archiviazione LAN → inserisci l'IP locale della macchina sorgente e autentica. Il filesystem della sorgente ora appare come archiviazione navigabile su ZimaCube 2.
Passo 2: Ferma Immich sulla sorgente
Questo è il passo che la gente salta e poi si pente. Ferma Immich prima di copiare. Un'istanza PostgreSQL in esecuzione scrive continuamente — hai bisogno del database in uno stato coerente e svuotato. Sulla macchina sorgente: ZimaOS App Store → Immich → Ferma.
Passo 3: Copia entrambe le directory
Dall'app Files di ZimaCube 2, naviga alla sorgente montata e seleziona:
| Percorso sorgente | Percorso di destinazione su ZimaCube 2 |
| /DATA/AppData/immich | /DATA/AppData/immich |
| /DATA/Gallery/immich | /DATA/Gallery/immich |
Seleziona entrambe le posizioni, premi Migra. Scegli: Sovrascrivi a destinazione e Mantieni originali sulla sorgente — non cancellare la sorgente finché non è verificata.
Passo 4: Installa Immich su ZimaCube 2
Apri il ZimaOS App Store e cerca Immich. Avviso critico: l'App Store può mostrare più varianti di Immich. Devi installare la esatta stessa variante che usa la tua macchina sorgente:
Immich (app ufficiale ZimaOS/CasaOS) — usala se è quella che avevi prima
BigBearCasaOS Immich — variabili docker-compose diverse, credenziali postgres diverse, nome del database diverso — incompatibile con una copia diretta di pgdata dall'app ufficiale
Dopo l'installazione, non avviare subito l'app. Immich rileverà la directory pgdata esistente al primo avvio e si connetterà a essa invece di inizializzare un nuovo database vuoto.

Passo 5: Accedi con le credenziali esistenti
Apri Immich su http://192.168.x.x:2283 e accedi con lo stesso nome utente e password dell'istanza di origine. La tua libreria completa — album, volti, persone, impostazioni — sarà esattamente come prima.

Passo 6: Verifica le code di lavoro
Vai su Profilo → Amministrazione → Code di lavoro. Dopo una migrazione pgdata, il database contiene già tutti i risultati precedentemente processati, quindi la maggior parte delle code dovrebbe mostrare Attivo: 0 / In attesa: 0.
Se qualche coda mostra un conteggio sotto Missing, clicca il pulsante Missing per processare solo gli asset non elaborati:
| Coda | Quando eseguire Missing |
| Genera miniature | Se alcune foto mostrano anteprime vuote |
| Estrai metadati | Se mancano dati GPS/posizione/data agli asset |
| Ricerca intelligente | Se la ricerca semantica non restituisce risultati |
| Rilevamento facciale | Se i dati facciali appaiono incompleti |
Statistiche della migrazione
| Metrica | Valore |
| Foto migrate | 14,505 |
| Video migrati | 925 |
| Dati totali | 134 GiB |
| Tempo di trasferimento (2.5GbE) | ~12 minuti |
| Album preservati | Tutti |
| Tag facciali preservati | Tutti |
| Link condivisi preservati | Tutti |
| Perdita di dati | Zero |
Perché il ZimaCube 2 ha reso tutto questo utile
Non ho migrato solo per ritrovarmi la stessa esperienza. Il ZimaCube 2 offre tre miglioramenti che il mio vecchio box DIY ZimaOS non poteva eguagliare:
Trasferimenti 2.5GbE. Le librerie fotografiche crescono. Ogni backup completo, ogni grande importazione, ogni migrazione beneficia della larghezza di banda 2,5× superiore rispetto al gigabit standard. Il doppio 2.5GbE di ZimaCube 2 mi permette di saturare un backup mentre il resto della rete rimane reattivo.
Archiviazione NVMe per il database. Il database Immich PostgreSQL funziona molto meglio su NVMe rispetto ai dischi rigidi tradizionali. Generazione delle miniature, query di ricerca intelligente, riconoscimento facciale — tutto legge da pgdata. Nel pool NVMe di ZimaCube 2, le operazioni sul database che prima rallentavano su HDD ora sono istantanee.
Espandibilità a 6 bay. 134 GiB oggi. E l'anno prossimo? Il ZimaCube 2 ha sei bay SATA più quattro slot M.2 nel 7° bay, il che significa che questa libreria fotografica può crescere per anni senza raggiungere un limite di storage.

Migra la tua libreria fotografica su ZimaCube 2 →
Stai costruendo il tuo setup fotografico self-hosted? Leggi la nostra guida Personal Cloud Storage Device, il nostro approfondimento Docker & CI/CD su ZimaCube 2 e il nostro Unboxing ZimaCube 2 Pro.
Domande Frequenti
Posso migrare Immich sul ZimaCube 2 senza perdere album e tag facciali?
Sì — ma devi copiare sia i file fotografici sia la directory pgdata (database PostgreSQL). Il database conserva tutti gli album, i vettori facciali, i cluster di persone e i metadati. Spostare solo le foto ti dà i file senza organizzazione. Copia entrambe le directory insieme e la tua libreria rimarrà intatta.
Qual è il modo più veloce per trasferire i dati di Immich sul ZimaCube 2?
Se entrambe le macchine sono sulla stessa LAN e usano ZimaOS, usa l'app Files integrata con montaggio LAN Storage. Tramite la connessione 2.5GbE del ZimaCube 2, 134 GiB si trasferiscono in circa 10–15 minuti. Per librerie più grandi o macchine su reti diverse, un drive USB esterno è la seconda opzione migliore.
La versione di Immich nello App Store conta durante la migrazione?
Sì — è fondamentale. Lo ZimaOS App Store può mostrare più varianti di Immich (ufficiale vs BigBearCasaOS). Usano variabili docker-compose diverse — credenziali postgres, nomi database e configurazioni di rete sono incompatibili. Installa esattamente la stessa variante usata dalla tua macchina sorgente, altrimenti il database ripristinato non si connetterà.
Devo fermare Immich sulla sorgente prima di copiare?
Sì. Un'istanza PostgreSQL in esecuzione scrive continuamente. Copiare un database attivo rischia uno stato incoerente. Ferma Immich sulla macchina sorgente, copia le cartelle, poi avvialo sulla destinazione. La macchina sorgente può rimanere spenta o accesa come backup finché non hai verificato la migrazione.
Quanta memoria richiede Immich sul ZimaCube 2?
Pianifica la dimensione della tua libreria fotografica più lo spazio per il database PostgreSQL (che cresce con la tua libreria), la cache delle miniature e le versioni video transcodificate. Una libreria da 134 GiB con 14.500 foto utilizza circa 150–160 GiB totali con overhead. I sei bay SATA del ZimaCube 2 ti offrono spazio per crescere.
Centro Campagne Zima
Altro da leggere

Ho trasformato un Ikea Kallax in un homelab rack da 10 pollici con lo ZimaCube 2
I homelab montati su rack sembrano fantastici finché non ti rendi conto che non vuoi un motore a reazione da impresa che invade il...

Come un dispositivo ha sostituito l'intero mio cloud — Nextcloud + AI locale su ZimaCube 2
Smetti di pagare per lo storage cloud. Scopri come un NAS self-hosted con Nextcloud può sincronizzare in modo sicuro i tuoi file e far...

Prima impressione di ZimaCube 2 — Il rapporto qualità-prezzo è incredibile per un NAS a 6 baie
Leggi la nostra recensione di ZimaCube 2 Standard. Questo NAS a sei bay offre un eccellente rapporto qualità-prezzo per HomeLab con un Intel i3,...

