Comment j'ai migré 14 000 photos vers le ZimaCube 2 sans aucune perte de données — Un guide de migration Immich

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

💡 Coup de projecteur communautaire : u/Ambitious_Shallot_79, r/minilab

Vous avez une bibliothèque photo. Des années de souvenirs. Des albums que vous avez soigneusement organisés. Des visages que vous avez tagués. Des liens partagés que vous avez envoyés à votre famille.

Puis vous mettez à jour votre NAS — et vous réalisez que déplacer les fichiers ne suffit pas. Sans la base de données, vous perdez chaque album, chaque tag de visage, chaque souvenir que vous avez organisé. Les photos sont là, mais l’organisation a disparu.

Je viens de déplacer 14 505 photos et 925 vidéos — 134 Gio au total — d’un serveur DIY ZimaOS vers le ZimaCube 2. Chaque album a survécu. Chaque tag de visage est passé. Chaque lien partagé fonctionne toujours.

Voici exactement comment je l'ai fait, ce qui a failli mal tourner, et ce que le ZimaCube 2 a apporté que mon ancien système ne pouvait pas.

Pourquoi Immich, pourquoi maintenant

Immich est devenu la solution photo auto-hébergée de référence pour une raison. Il offre des fonctionnalités au niveau de Google Photos — reconnaissance faciale, recherche sémantique, sauvegardes automatiques depuis votre téléphone, albums partagés — sans envoyer vos photos sur un serveur tiers.

Mais Immich stocke son âme dans PostgreSQL. La base de données contient les albums, les vecteurs de visage, les groupes de personnes, les embeddings CLIP pour la recherche intelligente, et chaque métadonnée qui rend la bibliothèque unique. Déplacez les fichiers sans la base de données, et vous obtenez un dossier plein de photos et une instance Immich vide.

Cette migration avait une règle : zéro perte de données. L'ancien serveur ne serait pas effacé tant que le nouveau n'était pas vérifié.

Ce que Immich stocke réellement (et pourquoi c'est important)

Avant de toucher aux fichiers, j'ai cartographié exactement ce qui devait être déplacé :

Composant Emplacement Contenu Doit migrer ?
pgdata /DATA/AppData/immich/pgdata PostgreSQL complet — albums, visages, personnes, métadonnées ✅ Critique
cache-modèle /DATA/AppData/immich/model-cache Modèles CLIP/reconnaissance faciale téléchargés ✅ Évite les re-téléchargements
Bibliothèque photo /DATA/Gallery/immich 14 505 photos + 925 vidéos + vignettes (134 Gio) ✅ Médias actuels
Sauvegardes automatiques /DATA/Gallery/immich/backups Les 14 derniers instantanés quotidiens de la base de données 💡 Déjà présent
🎁 Déplacer uniquement les fichiers photo — sans le répertoire pgdata — vous donne toutes vos photos mais aucun de vos albums, tags de visage, personnes, souvenirs ou liens partagés. Immich considère PostgreSQL comme la source de vérité. Les deux doivent être déplacés ensemble.

Immich crée également des sauvegardes automatiques de la base de données tous les jours à 2h00 du matin, en conservant les 14 dernières dans le répertoire des sauvegardes. Avant d'effectuer un dump manuel, vérifiez si une sauvegarde automatique récente est déjà présente.

La méthode : application Fichiers ZimaOS (copie LAN)

Les deux machines tournent sous ZimaOS sur le même LAN. Cela signifiait que je pouvais utiliser l’application Fichiers intégrée pour un transfert direct LAN — pas de disques externes, pas de commandes SCP, pas de stockage intermédiaire.

Étape 1 : Monter la machine source

Sur le ZimaCube 2, ouvrez l’application Fichiers → + Ajouter un stockage → Stockage LAN → entrez l’IP locale de la machine source et authentifiez-vous. Le système de fichiers de la source apparaît maintenant comme un stockage accessible sur le ZimaCube 2.

Étape 2 : Arrêter Immich sur la source

C’est l’étape que les gens sautent et regrettent. Arrêtez Immich avant de copier. Une instance PostgreSQL en fonctionnement écrit constamment — vous avez besoin que la base de données soit dans un état cohérent et vidé. Sur la machine source : ZimaOS App Store → Immich → Arrêter.

Étape 3 : Copier les deux répertoires

Depuis l’application Fichiers du ZimaCube 2, naviguez jusqu’à la source montée et sélectionnez :

Chemin source Chemin de destination sur ZimaCube 2
/DATA/AppData/immich /DATA/AppData/immich
/DATA/Gallery/immich /DATA/Gallery/immich

Sélectionnez les deux emplacements, cliquez sur Migrer. Choisissez : Écraser à la destination et Conserver les originaux à la source — ne supprimez pas la source avant vérification.

Sur la connexion 2.5GbE du ZimaCube 2, 134 Gio transférés en environ 10 à 15 minutes. Mon ancien serveur DIY était limité à 1GbE — le même transfert aurait pris 30 à 40 minutes. C’est le genre de différence réelle qui ne se voit pas sur une fiche technique mais qui compte à chaque transfert de données.

Étape 4 : Installer Immich sur le ZimaCube 2

Ouvrez le ZimaOS App Store et recherchez Immich. Avertissement critique : le Store peut afficher plusieurs variantes d'Immich. Vous devez installer la même variante exacte que celle utilisée sur votre machine source :

Immich (application officielle ZimaOS/CasaOS) — utilisez celle-ci si c'est ce que vous aviez auparavant

BigBearCasaOS Immich — variables docker-compose différentes, identifiants postgres différents, nom de base de données différent — incompatible avec une copie directe de pgdata depuis l'application officielle

🔑 Les variables docker-compose — nom d'utilisateur postgres, mot de passe, nom de la base de données, mode réseau — sont intégrées dans la définition de l'application. Toute incompatibilité entre les variantes source et destination de l'application empêchera Immich de se connecter à la base de données restaurée. C'est le point de défaillance le plus courant lors des migrations Immich.

Après l’installation, ne lancez pas l’application immédiatement. Immich détectera le répertoire pgdata existant au premier lancement et s’y connectera au lieu d’initialiser une nouvelle base de données vide.

Recherche de l’application 'immich' dans la boutique d’applications ZimaOS / CasaOS lors de la configuration du NAS

Étape 5 : Se connecter avec les identifiants existants

Ouvrez Immich à l’adresse http://192.168.x.x:2283 et connectez-vous avec le même nom d’utilisateur et mot de passe que sur l’instance source. Votre bibliothèque complète — albums, visages, personnes, paramètres — sera exactement comme avant.

Écran d’accueil de l’application Immich et bouton de démarrage après une migration réussie de la base de données

Étape 6 : Vérifier les files d’attente des tâches

Allez dans Profil → Administration → Files d’attente des tâches. Après une migration pgdata, la base de données contient déjà tous les résultats traités précédemment, donc la plupart des files d’attente devraient afficher Actif : 0 / En attente : 0.

Si une file d’attente affiche un compte sous Manquants, cliquez sur le bouton Manquants pour traiter uniquement les éléments non traités :

File d’attente Quand exécuter Manquants
Génération de vignettes Si certaines photos affichent des aperçus vides
Extraction des métadonnées Si des fichiers manquent de GPS/emplacement/date
Recherche intelligente Si la recherche sémantique ne renvoie aucun résultat
Détection faciale Si les données faciales semblent incomplètes

Les statistiques de migration

Métrique Valeur
Photos migrées 14,505
Vidéos migrées 925
Données totales 134 Gio
Temps de transfert (2,5 GbE) ~12 minutes
Albums préservés Tout
Tags de visage préservés Tout
Liens partagés préservés Tout
Perte de données Zéro

Pourquoi le ZimaCube 2 a rendu cela utile

Je ne suis pas passé à autre chose pour retrouver la même expérience. Le ZimaCube 2 apporte trois améliorations que mon ancien boîtier DIY ZimaOS ne pouvait pas égaler :

Transferts 2,5 GbE. Les bibliothèques photo grandissent. Chaque sauvegarde complète, chaque importation importante, chaque migration profite de la bande passante 2,5× supérieure au gigabit standard. Le ZimaCube 2 avec double 2,5 GbE me permet de saturer une sauvegarde pendant que le reste du réseau reste réactif.

Stockage NVMe pour la base de données. La base de données Immich PostgreSQL fonctionne bien mieux sur NVMe que sur disque dur classique. La génération de vignettes, les requêtes de recherche intelligente, la reconnaissance faciale — tout cela lit depuis pgdata. Sur le pool NVMe du ZimaCube 2, les opérations de base de données qui bégayaient auparavant sur HDD sont maintenant instantanées.

Extensibilité 6 baies. 134 Gio aujourd’hui. Et l’année prochaine ? Le ZimaCube 2 dispose de six baies SATA plus quatre emplacements M.2 dans la 7e baie, ce qui signifie que cette bibliothèque photo peut grandir pendant des années sans atteindre de limite de stockage.

IceWhale ZimaCube 2 NAS 6 baies montrant les baies de disques amovibles à chaud à l’avant pour un stockage auto-hébergé haute performance

Migrez votre bibliothèque photo vers ZimaCube 2 →

Vous construisez votre installation photo auto-hébergée ? Lisez notre guide sur le dispositif de stockage cloud personnel, notre analyse approfondie de Docker & CI/CD sur ZimaCube 2, et notre Déballage du ZimaCube 2 Pro.

Questions fréquemment posées

Puis-je migrer Immich vers le ZimaCube 2 sans perdre mes albums et mes tags de visage ?

Oui — mais vous devez copier à la fois les fichiers photo et le répertoire pgdata (base de données PostgreSQL). La base stocke tous les albums, vecteurs faciaux, groupes de personnes et métadonnées. Déplacer uniquement les photos vous donne des fichiers sans organisation. Copiez les deux répertoires ensemble, et votre bibliothèque reste intacte.

Quelle est la façon la plus rapide de transférer les données Immich vers le ZimaCube 2 ?

Si les deux machines sont sur le même LAN et utilisent ZimaOS, utilisez l’application Fichiers intégrée avec montage de stockage LAN. Sur la connexion 2.5 GbE du ZimaCube 2, 134 Gio se transfèrent en environ 10 à 15 minutes. Pour des bibliothèques plus volumineuses ou des machines sur des réseaux différents, un disque USB externe est la meilleure option suivante.

La version Immich de l’App Store importe-t-elle lors de la migration ?

Oui — c’est crucial. Le ZimaOS App Store peut afficher plusieurs variantes d’Immich (officielle vs BigBearCasaOS). Elles utilisent des variables docker-compose différentes — identifiants postgres, noms de base de données et configurations réseau sont incompatibles. Installez exactement la même variante que celle utilisée sur votre machine source, sinon la base restaurée ne se connectera pas.

Dois-je arrêter Immich sur la source avant de copier ?

Oui. Une instance PostgreSQL en fonctionnement écrit en continu. Copier une base de données active risque un état incohérent. Arrêtez Immich sur la machine source, copiez les dossiers, puis démarrez-le sur la destination. La machine source peut rester éteinte ou allumée en tant que sauvegarde jusqu’à ce que vous ayez vérifié la migration.

De combien d’espace de stockage Immich a-t-il besoin sur le ZimaCube 2 ?

Prévoyez la taille de votre bibliothèque photo plus de la place pour la base de données PostgreSQL (qui grandit avec votre bibliothèque), le cache des miniatures et les versions vidéo transcodées. Une bibliothèque de 134 Gio avec 14 500 photos utilise environ 150 à 160 Gio au total avec les frais généraux. Les six baies SATA du ZimaCube 2 vous offrent de la marge pour évoluer.

Centre de Campagne Zima

Plus à lire

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.