Hoe ik 14.000 foto’s zonder gegevensverlies naar de ZimaCube 2 heb gemigreerd — Een Immich-migratiehandleiding

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

💡 Community Spotlight: u/Ambitious_Shallot_79, r/minilab

Je hebt een fotobibliotheek. Jaren aan herinneringen. Albums die je zorgvuldig hebt georganiseerd. Gezichten die je hebt gelabeld. Gedeelde links die je naar familie hebt gestuurd.

Dan upgrade je je NAS — en besef je dat alleen de bestanden verplaatsen niet genoeg is. Zonder de database verlies je elk album, elke gezichtslabel, elke herinnering die je hebt samengesteld. De foto’s zijn er nog, maar de organisatie is weg.

Ik heb net 14.505 foto’s en 925 video’s — in totaal 134 GiB — verplaatst van een DIY ZimaOS-server naar de ZimaCube 2. Elk album overleefde. Elke gezichtslabel kwam mee. Elke gedeelde link werkt nog steeds.

Hier is precies hoe ik het deed, wat bijna misging, en wat de ZimaCube 2 bracht wat mijn oude setup niet kon.

Waarom Immich, Waarom Nu

Immich is om een reden de favoriete zelfgehoste fototoepassing geworden. Het biedt functies op Google Photos-niveau — gezichtsherkenning, semantische zoekopdrachten, automatische back-ups vanaf je telefoon, gedeelde albums — zonder je foto’s naar een server van iemand anders te sturen.

Maar Immich bewaart zijn ziel in PostgreSQL. De database bevat albums, gezichtsvectoren, persoonsclusters, CLIP-embeddings voor slimme zoekopdrachten en elk stukje metadata dat de bibliotheek persoonlijk maakt. Verplaats de bestanden zonder de database, en je krijgt een map vol foto’s en een lege Immich-installatie.

Deze migratie had één regel: nul dataverlies. De oude server zou niet worden gewist totdat de nieuwe was geverifieerd.

Wat Immich Eigenlijk Opslaat (en Waarom Het Belangrijk Is)

Voordat ik bestanden aanraakte, heb ik precies in kaart gebracht wat er moest worden verplaatst:

Component Locatie Inhoud Moet migreren?
pgdata /DATA/AppData/immich/pgdata Volledige PostgreSQL — albums, gezichten, personen, metadata ✅ Kritiek
model-cache /DATA/AppData/immich/model-cache Gedownloade CLIP-/gezichtsherkenningsmodellen ✅ Bespaart opnieuw downloaden
Fotobibliotheek /DATA/Gallery/immich 14.505 foto’s + 925 video’s + miniaturen (134 GiB) ✅ Werkelijke media
Automatische back-ups /DATA/Gallery/immich/backups Laatste 14 dagelijkse database-snapshots 💡 Al aanwezig
🎁 Alleen fotobestanden verplaatsen — zonder de pgdata-map — geeft je al je foto's maar geen van je albums, gezichtslabels, personen, herinneringen of gedeelde links. Immich beschouwt PostgreSQL als de bron van waarheid. Beide moeten samen worden verplaatst.

Immich maakt ook elke dag automatisch databaseback-ups om 2:00 uur 's nachts, waarbij de laatste 14 in de back-upmap worden bewaard. Controleer of er al een recente automatische back-up aanwezig is voordat je een handmatige dump uitvoert.

De methode: ZimaOS Files-app (LAN-kopie)

Beide machines draaien ZimaOS op hetzelfde LAN. Dat betekende dat ik de ingebouwde Files-app kon gebruiken voor een directe LAN-overdracht — geen externe schijven, geen SCP-commando’s, geen tussenopslag.

Stap 1: Koppel de bronmachine

Open op de ZimaCube 2 de Files-app → + Opslag toevoegen → LAN-opslag → voer het lokale IP van de bronmachine in en authenticatie. Het bestandssysteem van de bronmachine verschijnt nu als doorzoekbare opslag op de ZimaCube 2.

Stap 2: Stop Immich op de bron

Dit is de stap die mensen overslaan en later betreuren. Stop Immich voordat je kopieert. Een draaiende PostgreSQL-instantie schrijft constant — je hebt de database in een consistente, weggeschreven staat nodig. Op de bronmachine: ZimaOS App Store → Immich → Stop.

Stap 3: Kopieer beide mappen

Navigeer in de ZimaCube 2 Files-app naar de aangekoppelde bron en selecteer:

Bronpad Doelpad op ZimaCube 2
/DATA/AppData/immich /DATA/AppData/immich
/DATA/Gallery/immich /DATA/Gallery/immich

Selecteer beide locaties, klik op Migreren. Kies: Overschrijven op bestemming en Origineel behouden op bron — verwijder de bron niet voordat het is geverifieerd.

Over de 2.5GbE-verbinding van de ZimaCube 2, 134 GiB overdracht in ongeveer 10–15 minuten. Mijn oude DIY-server zat vast op 1GbE — dezelfde overdracht zou 30–40 minuten hebben geduurd. Dit is het soort verschil uit de praktijk dat niet op een specificatieblad staat, maar elke keer telt als je data verplaatst.

Stap 4: Installeer Immich op de ZimaCube 2

Open de ZimaOS App Store en zoek naar Immich. Kritische waarschuwing: de App Store kan meerdere Immich-varianten tonen. Je moet exact dezelfde variant installeren die je bronmachine gebruikt:

Immich (officiële ZimaOS/CasaOS app) — gebruik deze als dat is wat je eerder had

BigBearCasaOS Immich — andere docker-compose variabelen, andere postgres-gegevens, andere databasenaam — niet compatibel met een directe pgdata-kopie van de officiële app

🔑 De docker-compose variabelen — postgres gebruikersnaam, wachtwoord, databasenaam, netwerkmodus — zijn ingebakken in de app-definitie. Elke mismatch tussen bron- en doel-appvarianten voorkomt dat Immich verbinding maakt met de herstelde database. Dit is het meest voorkomende faalpunt bij Immich-migraties.

Start de app niet direct na installatie. Immich detecteert bij de eerste keer opstarten de bestaande pgdata-map en maakt verbinding daarmee in plaats van een nieuwe lege database te initialiseren.

Zoeken naar de 'immich'-app in de ZimaOS / CasaOS App Store tijdens NAS-installatie

Stap 5: Log in met bestaande gegevens

Open Immich op http://192.168.x.x:2283 en log in met dezelfde gebruikersnaam en wachtwoord als op de broninstantie. Je volledige bibliotheek — albums, gezichten, personen, instellingen — is precies zoals voorheen.

Welkomstscherm van de Immich-app en startknop na succesvolle databasemigratie

Stap 6: Controleer Taakwachtrijen

Navigeer naar Profiel → Beheer → Taakwachtrijen. Na een pgdata-migratie bevat de database al alle eerder verwerkte resultaten, dus de meeste wachtrijen zouden Actief: 0 / Wachtend: 0 moeten tonen.

Als een wachtrij een telling onder Missing toont, klik dan op de Missing-knop om alleen niet-verwerkte bestanden te verwerken:

Wachtrij Wanneer Missing uitvoeren
Miniaturen genereren Als sommige foto’s lege previews tonen
Metadata extraheren Als er GPS/locatie/datum ontbreekt bij bestanden
Slim zoeken Als semantisch zoeken geen resultaten oplevert
Gezichtsdetectie Als gezichtsgegevens incompleet lijken

De migratiestatistieken

Maatstaf Waarde
Foto's gemigreerd 14,505
Video's gemigreerd 925
Totale data 134 GiB
Overdrachtstijd (2,5GbE) ~12 minuten
Albums behouden Alle
Gezichtstags behouden Alle
Gedeelde links behouden Alle
Gegevensverlies Nul

Waarom de ZimaCube 2 dit de moeite waard maakte

Ik ben niet gemigreerd om dezelfde ervaring te behouden. De ZimaCube 2 brengt drie verbeteringen die mijn oude DIY ZimaOS-box niet kon evenaren:

2,5GbE-overdrachten. Fotobibliotheken groeien. Elke volledige back-up, elke grote import, elke migratie profiteert van de 2,5× bandbreedte ten opzichte van standaard gigabit. De ZimaCube 2 met dubbele 2,5GbE betekent dat ik een back-up kan satureren terwijl de rest van het netwerk responsief blijft.

NVMe-opslag voor de database. De Immich PostgreSQL-database presteert aanzienlijk beter op NVMe dan op traditionele harde schijven. Miniatuurweergavegeneratie, slimme zoekopdrachten, gezichtsherkenning — alles leest van pgdata. Op de ZimaCube 2 NVMe-pool zijn databasebewerkingen die eerder hapten op HDD nu direct.

6-bay uitbreidbaarheid. 134 GiB vandaag. Wat volgend jaar? De ZimaCube 2 heeft zes SATA-bays plus vier M.2-slots in de 7e bay, wat betekent dat deze fotobibliotheek jarenlang kan groeien zonder tegen een opslaggrens aan te lopen.

IceWhale ZimaCube 2 6-bay NAS met vooraan hot-swap drive bays voor high-performance self-hosted opslag

Migreer je fotobibliotheek naar ZimaCube 2 →

Bouw je eigen self-hosted foto-opstelling? Lees onze gids Personal Cloud Storage Device, onze diepgaande uitleg over Docker & CI/CD op ZimaCube 2, en onze ZimaCube 2 Pro Unboxing.

Veelgestelde vragen

Kan ik Immich naar de ZimaCube 2 migreren zonder mijn albums en gezichtslabels te verliezen?

Ja — maar je moet zowel de fotobestanden als de pgdata-map (PostgreSQL-database) kopiëren. De database slaat alle albums, gezichtsvectoren, mensenclusters en metadata op. Alleen foto’s verplaatsen geeft je bestanden zonder organisatie. Kopieer beide mappen samen, dan blijft je bibliotheek intact.

Wat is de snelste manier om Immich-gegevens naar de ZimaCube 2 over te zetten?

Als beide machines op hetzelfde LAN zitten en ZimaOS draaien, gebruik dan de ingebouwde Bestanden-app met LAN Storage-mounting. Over de 2,5 GbE-verbinding van de ZimaCube 2 duurt het overzetten van 134 GiB ongeveer 10–15 minuten. Voor grotere bibliotheken of machines op verschillende netwerken is een externe USB-schijf de volgende beste optie.

Maakt de Immich App Store-versie uit bij migreren?

Ja — absoluut noodzakelijk. De ZimaOS App Store kan meerdere Immich-varianten tonen (officieel versus BigBearCasaOS). Ze gebruiken verschillende docker-compose-variabelen — postgres-gegevens, databasenaam en netwerkconfiguraties zijn niet compatibel. Installeer exact dezelfde variant die je bronmachine gebruikt, anders kan de herstelde database niet verbinden.

Moet ik Immich op de bron stoppen voordat ik kopieer?

Ja. Een draaiende PostgreSQL-instantie schrijft continu. Het kopiëren van een live database brengt het risico van een inconsistente staat met zich mee. Stop Immich op de bronmachine, kopieer de mappen en start het dan op de bestemming. De bronmachine kan uitgeschakeld blijven of aanblijven als back-up totdat je de migratie hebt geverifieerd.

Hoeveel opslagruimte heeft Immich nodig op de ZimaCube 2?

Plan voor de grootte van je fotobibliotheek plus ruimte voor de PostgreSQL-database (die meegroeit met je bibliotheek), thumbnailcache en getranscodeerde videoversies. Een bibliotheek van 134 GiB met 14.500 foto’s gebruikt ongeveer 150–160 GiB totaal met overhead. De zes SATA-bays van de ZimaCube 2 geven je ruimte om te groeien.

Zima Campagnecentrum

Meer om te lezen

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.