Hur jag migrerade 14 000 foton till ZimaCube 2 utan någon dataförlust — En Immich-migreringsguide

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

💡 Community Spotlight: u/Ambitious_Shallot_79, r/minilab

Du har ett fotobibliotek. År av minnen. Album du noggrant organiserat. Ansikten du taggat. Delade länkar du skickat till familjen.

Sedan uppgraderar du din NAS — och inser att det inte räcker att bara flytta filerna. Utan databasen förlorar du varje album, varje ansikts-tagg, varje minne du skapat. Foton finns kvar, men organisationen är borta.

Jag flyttade precis 14 505 foton och 925 videor — totalt 134 GiB — från en DIY ZimaOS-server till ZimaCube 2. Varje album överlevde. Varje ansikts-tagg följde med. Varje delad länk fungerar fortfarande.

Här är exakt hur jag gjorde, vad som nästan gick fel och vad ZimaCube 2 tillförde som min gamla setup inte kunde.

Varför Immich, varför nu

Immich har blivit den självhostade fotolösningen av en anledning. Den ger dig Google Photos-nivå funktioner — ansiktsigenkänning, semantisk sökning, automatiska backuper från din telefon, delade album — utan att skicka dina foton till någon annans server.

Men Immich lagrar sin själ i PostgreSQL. Databasen innehåller album, ansiktsvektorer, personkluster, CLIP-embeddingar för smart sökning och varje metadata som gör biblioteket personligt. Flytta filerna utan databasen och du får en mapp full med foton och en tom Immich-instans.

Denna migrering hade en regel: noll dataförlust. Den gamla servern skulle inte raderas förrän den nya var verifierad.

Vad Immich faktiskt lagrar (och varför det är viktigt)

Innan jag rörde några filer kartlade jag exakt vad som behövde flyttas:

Komponent Plats Innehåll Måste migreras?
pgdata /DATA/AppData/immich/pgdata Full PostgreSQL — album, ansikten, personer, metadata ✅ Kritisk
model-cache /DATA/AppData/immich/model-cache Nedladdade CLIP-/ansiktsigenkänningsmodeller ✅ Sparar omnedladdning
Fotobibliotek /DATA/Gallery/immich 14 505 foton + 925 videor + miniatyrer (134 GiB) ✅ Faktiska media
Automatiska backuper /DATA/Gallery/immich/backups Senaste 14 dagliga databasögonblicksbilder 💡 Redan närvarande
🎁 Att bara flytta fotofiler — utan pgdata-katalogen — ger dig alla dina foton men inga av dina album, ansikts-taggar, personer, minnen eller delade länkar. Immich behandlar PostgreSQL som sanningskällan. Båda måste flyttas tillsammans.

Immich skapar också automatiska databasbackuper dagligen klockan 02:00 och behåller de senaste 14 i backupmappen. Innan du kör en manuell dump, kontrollera om en nyligen skapad automatisk backup redan finns där.

Metoden: ZimaOS Files-app (LAN-kopia)

Båda maskinerna kör ZimaOS på samma LAN. Det innebar att jag kunde använda den inbyggda Files-appen för en direkt LAN-överföring — inga externa enheter, inga SCP-kommandon, ingen mellanlagring.

Steg 1: Montera källmaskinen

På ZimaCube 2, öppna Files-appen → + Lägg till lagring → LAN-lagring → ange källmaskinens lokala IP och autentisera. Källmaskinens filsystem visas nu som bläddringsbar lagring på ZimaCube 2.

Steg 2: Stoppa Immich på källan

Det här är steget som folk hoppar över och ångrar. Stoppa Immich innan kopiering. En körande PostgreSQL-instans skriver konstant — du behöver databasen i ett konsekvent, rensat tillstånd. På källmaskinen: ZimaOS App Store → Immich → Stoppa.

Steg 3: Kopiera båda katalogerna

Från ZimaCube 2:s Files-app, navigera till den monterade källan och välj:

Källväg Destinationsväg på ZimaCube 2
/DATA/AppData/immich /DATA/AppData/immich
/DATA/Gallery/immich /DATA/Gallery/immich

Välj båda platserna, tryck på Migrera. Välj: Skriv över på destinationen och Behåll original på källan — radera inte källan förrän det är verifierat.

Över ZimaCube 2:s 2,5 GbE-anslutning överfördes 134 GiB på cirka 10–15 minuter. Min gamla DIY-server var fast på 1 GbE — samma överföring skulle ha tagit 30–40 minuter. Detta är den typ av verklig skillnad som inte syns i en specifikationslista men som spelar roll varje gång du flyttar data.

Steg 4: Installera Immich på ZimaCube 2

Öppna ZimaOS App Store och sök efter Immich. Viktig varning: App Store kan visa flera Immich-varianter. Du måste installera exakt samma variant som din källmaskin använder:

Immich (officiell ZimaOS/CasaOS-app) — använd denna om det är vad du hade tidigare

BigBearCasaOS Immich — olika docker-compose-variabler, olika postgres-uppgifter, olika databasnamn — inte kompatibelt med en direkt pgdata-kopia från den officiella appen

🔑 Variablerna i docker-compose — postgres användarnamn, lösenord, databasnamn, nätverksläge — är inbakade i appdefinitionen. Alla skillnader mellan käll- och destinationsappens varianter förhindrar att Immich kan ansluta till den återställda databasen. Detta är den vanligaste orsaken till fel vid Immich-migreringar.

Efter installation, starta inte appen omedelbart. Immich kommer vid första start att upptäcka den befintliga pgdata-katalogen och ansluta till den istället för att initiera en ny tom databas.

Sökning efter 'immich'-appen i ZimaOS / CasaOS App Store under NAS-installationen

Steg 5: Logga in med befintliga uppgifter

Öppna Immich på http://192.168.x.x:2283 och logga in med samma användarnamn och lösenord som från källinstansen. Ditt fullständiga bibliotek – album, ansikten, personer, inställningar – kommer att vara exakt som tidigare.

Immich-applikationens välkomstskärm och startknapp efter lyckad databas-migrering

Steg 6: Verifiera jobbkön

Navigera till Profil → Administration → Jobbkön. Efter en pgdata-migrering innehåller databasen redan alla tidigare bearbetade resultat, så de flesta köer bör visa Aktiv: 0 / Väntar: 0.

Om någon kö visar ett antal under Missing, klicka på Missing-knappen för att bearbeta endast obearbetade tillgångar:

När man ska köra Missing
Generera miniatyrbilder Om några foton visar tomma förhandsvisningar
Extrahera metadata Om tillgångar saknar GPS/plats/datum
Smart sökning Om semantisk sökning inte ger några resultat
Ansiktsigenkänning Om ansiktsdata verkar ofullständig

Migreringsstatistik

Mått Värde
Foton migrerade 14,505
Videor migrerade 925
Total data 134 GiB
Överföringstid (2,5GbE) ~12 minuter
Album bevarade Alla
Ansikts-taggar bevarade Alla
Delade länkar bevarade Alla
Dataförlust Noll

Varför ZimaCube 2 gjorde detta värt att göra

Jag migrerade inte bara för att hamna i samma upplevelse. ZimaCube 2 erbjuder tre uppgraderingar som min gamla DIY ZimaOS-låda inte kunde matcha:

2,5GbE-överföringar. Fotobibliotek växer. Varje fullständig säkerhetskopia, varje stor import, varje migrering drar nytta av 2,5× bandbredd jämfört med standard gigabit. ZimaCube 2 med dubbla 2,5GbE gör att jag kan mätta en säkerhetskopia medan resten av nätverket förblir responsivt.

NVMe-lagring för databasen. Immich PostgreSQL-databasen presterar dramatiskt bättre på NVMe än på traditionella hårddiskar. Miniatyrbildsgenerering, smarta sökfrågor, ansiktsigenkänning – allt läser från pgdata. På ZimaCube 2:s NVMe-pool är databasoperationer som tidigare hackade på HDD nu omedelbara.

6-facks utbyggbarhet. 134 GiB idag. Vad händer nästa år? ZimaCube 2 har sex SATA-fack plus fyra M.2-platser i det 7:e facket, vilket betyder att detta fotobibliotek kan växa i åratal utan att nå en lagringsgräns.

IceWhale ZimaCube 2 6-facks NAS med frontmonterade hot-swap-fack för högpresterande självhostad lagring

Migrera ditt fotobibliotek till ZimaCube 2 →

Bygger du din egen självhostade fotolösning? Läs vår guide för Personlig Molnlagringsenhet, vår djupdykning i Docker & CI/CD på ZimaCube 2, och vår ZimaCube 2 Pro Unboxing.

Vanliga frågor

Kan jag migrera Immich till ZimaCube 2 utan att förlora mina album och ansikts-taggar?

Ja — men du måste kopiera både fotofilerna och pgdata-katalogen (PostgreSQL-databasen). Databasen lagrar alla album, ansiktsvektorer, personkluster och metadata. Att bara flytta foton ger dig filer utan organisation. Kopiera båda katalogerna tillsammans så överlever ditt bibliotek intakt.

Vad är det snabbaste sättet att överföra Immich-data till ZimaCube 2?

Om båda maskinerna är på samma LAN och kör ZimaOS, använd den inbyggda Files-appen med LAN Storage-monteringar. Över ZimaCube 2:s 2,5 GbE-anslutning överförs 134 GiB på cirka 10–15 minuter. För större bibliotek eller maskiner på olika nätverk är en extern USB-enhet nästa bästa alternativ.

Spelar Immich-versionen i App Store roll vid migrering?

Ja — kritiskt. ZimaOS App Store kan visa flera Immich-varianter (officiell vs BigBearCasaOS). De använder olika docker-compose-variabler — postgres-uppgifter, databasnamn och nätverkskonfigurationer är inkompatibla. Installera exakt samma variant som din källmaskin använder, annars kopplar inte den återställda databasen.

Måste jag stoppa Immich på källan innan jag kopierar?

Ja. En körande PostgreSQL-instans skriver kontinuerligt. Att kopiera en live-databas riskerar ett inkonsekvent tillstånd. Stoppa Immich på källmaskinen, kopiera mapparna och starta sedan på destinationsmaskinen. Källmaskinen kan vara avstängd eller på som backup tills du har verifierat migreringen.

Hur mycket lagring behöver Immich på ZimaCube 2?

Planera för storleken på ditt fotobibliotek plus utrymme för PostgreSQL-databasen (som växer med ditt bibliotek), thumbnail-cache och transkoderade videoversioner. Ett bibliotek på 134 GiB med 14 500 foton använder ungefär 150–160 GiB totalt med overhead. ZimaCube 2:s sex SATA-fack ger dig utrymme att växa.

Zima Kampanjnav

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.