Immich Avanzado: Migración desde Google Photos, External Libraries y Optimización Profesional (Guía Completa 2026)

¿Ya tienes Immich funcionando pero necesitas migrar tus 50.000 fotos desde Google Photos? ¿Quieres usar tus fotos existentes en NAS sin duplicarlas? ¿Necesitas optimizar Immich para bibliotecas grandes o uso profesional? Esta guía avanzada es para ti: migración completa desde Google Photos, configuración de external libraries, optimización de IA/ML, integraciones con homelab, y troubleshooting de problemas reales.

En esta guía avanzada te enseño a migrar desde Google Photos sin perder datos, configurar external libraries para integrar fotos existentes, optimizar modelos de IA para mejor rendimiento, integrar con Nextcloud y n8n, y resolver los problemas más comunes que enfrentan usuarios avanzados. Todo con scripts automatizados, configuraciones optimizadas y casos de uso reales.

Después de seguir esta guía, tendrás Immich optimizado para producción con migración completa desde Google Photos, external libraries configuradas, integraciones con tu homelab, y conocimiento para resolver problemas avanzados. Perfecto para fotógrafos profesionales, familias grandes, o archivistas que necesitan gestión masiva de fotos.

📋 TL;DR

¿Para quién es este artículo? Usuarios que ya tienen Immich funcionando o están migrando desde Google Photos, fotógrafos profesionales, sysadmins avanzados.

¿Qué aprenderás? Migración completa desde Google Photos, external libraries, optimización de IA/ML, integraciones con homelab, troubleshooting avanzado.

¿Qué necesitas? Immich funcionando (o instalarlo primero), conocimientos básicos de Docker-2025/) y terminal, 1-2 horas.

¿Resultado? Immich optimizado con migración completa, external libraries, integraciones, y capacidad para resolver problemas avanzados.

⏱️ Tiempo de lectura: 30 minutos | Nivel: Avanzado

> 📌 Nota: Si aún no tienes Immich instalado, consulta primero el artículo básico de Immich para instalación inicial.

📚 Tabla de Contenidos

  1. ¿En qué se diferencia este artículo del básico?
  2. Migración Completa desde Google Photos
  3. External Libraries: Gestión de Bibliotecas Externas
  4. Optimización de IA y Modelos ML
  5. Integración con Ecosistema Homelab
  6. Troubleshooting Avanzado
  7. Comparativa Detallada: Immich vs PhotoPrism vs LibrePhotos
  8. Casos de Uso Avanzados
  9. Backup y Recuperación Avanzada
  10. Optimización de Almacenamiento
  11. Descargar Ejemplos
  12. Preguntas Frecuentes
  13. Conclusión

> 📅 Última actualización: Enero 2026

> ✅ Verificado con: Immich v2.4.0 – Enero 2026

> 🔄 Próxima revisión: Abril 2026

¿En qué se diferencia este artículo del básico? {#diferencias}

El artículo básico de Immich cubre:

  • ✅ Qué es Immich y por qué usarlo
  • ✅ Instalación básica con Docker Compose
  • ✅ Configuración inicial y apps móviles
  • ✅ Funciones básicas (reconocimiento facial, búsqueda)

Este artículo avanzado cubre lo que el básico NO incluye:

  • 🔥 Migración completa desde Google Photos (Google Takeout, normalización, deduplicación)
  • 🔥 External Libraries (configuración, casos de uso, troubleshooting)
  • 🔥 Optimización de IA/ML (modelos CLIP, InsightFace, GPU, benchmarks)
  • 🔥 Integraciones avanzadas (Nextcloud, n8n, Traefik, backups automatizados)
  • 🔥 Troubleshooting real (problemas móviles, duplicados, sincronización, errores ML)
  • 🔥 Comparativa detallada (Immich vs PhotoPrism vs LibrePhotos)
  • 🔥 Casos de uso profesionales (fotógrafos, familias grandes, archivistas)
  • 🔥 Backup y recuperación avanzada (estrategias 3-2-1, S3/Backblaze, disaster recovery)

¿Cuándo usar cada artículo?

  • Artículo básico: Si estás empezando con Immich o necesitas instalación inicial
  • Este artículo avanzado: Si ya tienes Immich funcionando y necesitas migración, optimización o integraciones avanzadas

Imagen 1

Migración Completa desde Google Photos {#migracion-google-photos}

Migrar desde Google Photos puede ser un proceso complejo si tienes miles de fotos. Te guío paso a paso para hacerlo sin perder datos ni metadatos.

Paso 1: Exportar desde Google Takeout

  1. Ir a Google Takeout:

– Visitar: https://takeout.google.com/

– Iniciar sesión con tu cuenta de Google

  1. Seleccionar datos a exportar:

– Seleccionar «Fotos de Google»

Importante: Incluir metadatos JSON (opción «Incluir todos los álbumes y fotos»)

– Formato: ZIP o TGZ

– Tamaño máximo por archivo: 50GB (Google divide automáticamente si es mayor)

  1. Descargar archivos:

– Google enviará email cuando esté listo

– Descargar todos los archivos ZIP/TGZ

– Verificar integridad (tamaños, hashes si están disponibles)

Paso 2: Descomprimir y Normalizar

Script automatizado de migración:

BASH
# Descargar script
wget https://github.com/ziruelen/learningaiagents/raw/main/immich/immich-avanzado/scripts/migracion_google_photos.sh
chmod +x migracion_google_photos.sh

# Ejecutar migración
./migracion_google_photos.sh \
  /mnt/storage/google_takeout \
  /mnt/storage/immich_library \
  /var/log/immich_migration.log

Qué hace el script:

  1. Descomprime todos los archivos ZIP/TGZ
  2. Normaliza estructura por fecha: YYYY/YYYY-MM/YYYY-MM-DD/
  3. Usa exiftool para extraer fecha de EXIF o fecha de modificación
  4. Deduplica por hash (elimina duplicados exactos)
  5. Genera log completo del proceso

Normalización manual (si prefieres control total):

BASH
# Instalar exiftool
sudo apt-get install -y libimage-exiftool-perl

# Normalizar estructura
find /mnt/google_takeout/extracted -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) | while read file; do
    DATE=$(exiftool -DateTimeOriginal -d "%Y/%Y-%m/%Y-%m-%d" "$file" | awk -F': ' '{print $2}')
    mkdir -p "/mnt/immich_library/$DATE"
    cp "$file" "/mnt/immich_library/$DATE/"
done

Paso 3: Preservar Metadatos de Google Photos

Los JSON de Google Takeout contienen metadatos valiosos (descripciones, álbumes, ubicaciones). Puedes normalizarlos:

PYTHON
# Usar script de normalización
python3 normalizar_metadatos.py \
  /mnt/immich_library \
  /mnt/google_takeout/json

Qué metadatos se preservan:

  • Fecha de captura original
  • Descripciones y títulos
  • Ubicación GPS (si está disponible)
  • Información de álbumes (para recrear después en Immich)

Paso 4: Deduplicación

Deduplicación por hash (duplicados exactos):

BASH
# Instalar fdupes
sudo apt-get install -y fdupes

# Eliminar duplicados exactos
fdupes -rdN /mnt/immich_library

Deduplicación visual (fotos similares pero no idénticas):

BASH
# Instalar immich-deduper
pip3 install immich-deduper

# Ejecutar deduplicación visual (dry-run primero)
immich-deduper \
  --immich-url https://immich.tu-dominio.com \
  --api-key tu-api-key \
  --library-id library-id \
  --similarity-threshold 0.95 \
  --dry-run \
  --output duplicates.json

# Revisar resultados
cat duplicates.json | jq '.[] | select(.similarity > 0.98)'

# Ejecutar eliminación real (quitar --dry-run)
immich-deduper \
  --immich-url https://immich.tu-dominio.com \
  --api-key tu-api-key \
  --library-id library-id \
  --similarity-threshold 0.98 \
  --delete-duplicates

Paso 5: Importar a Immich

Opción 1: External Library (recomendado para migraciones grandes)

  1. Configurar external library en Immich:

– Settings → Libraries → Create External Library

– Path: /mnt/storage/immich_library

– User: admin

– Read-only: true (protege archivos originales)

– Exclusions: .tmp, Thumbs.db, .DS_Store

  1. Iniciar escaneo:

– Settings → Libraries → Scan Library

– Esperar a que complete (puede tardar horas para bibliotecas grandes)

Opción 2: CLI de Immich (para importación masiva)

BASH
# Instalar CLI de Immich
npm install -g @immich/cli

# Autenticarse
immich login https://immich.tu-dominio.com

# Importar directorio
immich upload \
  --recursive \
  /mnt/storage/immich_library \
  --album-name "Google Photos Migrado"

External Libraries: Gestión de Bibliotecas Externas {#external-libraries}

Las external libraries son una de las funciones más potentes de Immich para usuarios avanzados. Te permiten usar fotos existentes sin duplicarlas.

¿Qué son External Libraries?

Las external libraries permiten que Immich escanee y gestione archivos que residen fuera de la biblioteca interna de Immich, en directorios existentes (NAS, discos externos, estructuras de carpetas organizadas).

Características principales:

  • Solo lectura (read-only): Por defecto, Immich no modifica archivos externos
  • Escaneo periódico: Detecta cambios mediante escaneos programados
  • File watching experimental: Detección automática de archivos nuevos (beta en v2.4.0)
  • Metadatos: Las modificaciones en Immich (descripciones, álbumes) NO se escriben en archivos externos
  • Permisos: Puede montarse como :ro (read-only) o :rw (read-write) en Docker

Configuración de External Library

1. Añadir volumen en Docker Compose:

YAML
services:
  immich-server:
    volumes:
      - ./library:/usr/src/app/upload
      # External library (read-only para proteger archivos)
      - /mnt/nas/fotos_antiguas:/mnt/nas/fotos_antiguas:ro
      - /mnt/nas/videos_antiguos:/mnt/nas/videos_antiguos:ro

2. Crear external library desde UI:

  1. Ir a Settings → Libraries
  2. Clic en «Create External Library»
  3. Configurar:

Name: «Fotos Antiguas NAS»

Path: /mnt/nas/fotos_antiguas

Owner: Seleccionar usuario propietario

Exclusions: .raw, *.cr2, Thumbs.db, .DS_Store

Import paths: Añadir rutas específicas si quieres limitar escaneo

Scan settings: Daily, Weekly, o Manual

  1. Iniciar escaneo:

– Settings → Libraries → [Tu Library] → Scan Library

Casos de Uso de External Libraries

Caso 1: Integrar Fotos de NAS Existente

Tienes un NAS con 10 años de fotos organizadas por año. No quieres duplicarlas.

Configuración:

YAML
volumes:
  - /mnt/nas/fotos_por_ano:/mnt/nas/fotos_por_ano:ro

Ventajas:

  • Mantienes organización original
  • No duplicas archivos (ahorro de espacio)
  • Immich solo indexa para búsqueda/IA

Limitaciones:

  • Metadatos modificados en Immich no se sincronizan con archivos
  • No se pueden crear álbumes automáticos desde estructura de carpetas

Caso 2: Separar Fotos Profesionales de Personales

Fotógrafo con RAW profesionales y fotos personales del móvil.

Configuración:

  • Upload library: Fotos personales del móvil
  • External library 1: RAW profesionales (read-only)
  • External library 2: JPEG procesados (read-only)

Workflow:

  1. RAW se mantienen en estructura original (external library)
  2. JPEG procesados se suben a upload library o otra external library
  3. Búsqueda unificada en Immich para ambas

Caso 3: Migración Gradual desde Google Photos

Migrar fotos antiguas sin interrumpir uso diario.

Estrategia:

  1. Migrar fotos antiguas (2010-2020) → External library
  2. Fotos recientes (2021+) → Upload library desde móvil
  3. Gradualmente migrar fotos recientes a external library

Mejores Prácticas para External Libraries

  1. Siempre usar read-only (:ro) para proteger archivos originales
  2. Fragmentar bibliotecas grandes (>500K fotos) en múltiples external libraries más pequeñas
  3. Configurar exclusiones para archivos que no quieres procesar (RAW, temporales, caché)
  4. Escaneo manual para bibliotecas estáticas (fotos antiguas que no cambian)
  5. Escaneo diario/semanal para bibliotecas que cambian frecuentemente
  6. Monitorear recursos durante escaneos grandes (CPU, RAM, I/O)

Troubleshooting External Libraries

Problema: External library no detecta archivos nuevos

Soluciones:

  1. Verificar permisos de montaje (debe ser accesible por contenedor)
  2. Verificar configuración de external library en UI (path correcto)
  3. Forzar escaneo manual desde Settings → Libraries
  4. Habilitar file watching experimental:
YAML
environment:
  - IMMICH_EXTERNAL_LIBRARY_WATCH_ENABLED=true
  1. Verificar logs:
BASH
docker logs immich-server | grep -i "external\|scan"

Problema: Escaneo consume mucha RAM/CPU

Soluciones:

  1. Fragmentar biblioteca en múltiples external libraries más pequeñas
  2. Limitar trabajos concurrentes:
YAML
environment:
  - IMMICH_CONCURRENT_JOBS=2  # Reducir de 4 a 2
  1. Escanear en horarios de bajo uso
  2. Aumentar RAM del servidor (32GB+ recomendado para >500K fotos)

Optimización de IA y Modelos ML {#optimizacion-ia}

Immich usa modelos de machine learning para reconocimiento facial, búsqueda semántica y detección de objetos. Puedes optimizarlos según tu hardware y necesidades.

Modelos Utilizados

1. CLIP (Contrastive Language-Image Pre-training):

  • Función: Búsqueda semántica por texto natural
  • Modelos disponibles:

ViT-B-32: Ligero, rápido, menor calidad (recomendado para hardware modesto)

ViT-L-14: Potente, más lento, mayor calidad (recomendado para hardware potente)

ViT-H-14: Muy potente, muy lento, máxima calidad (solo para hardware muy potente)

2. InsightFace:

  • Función: Reconocimiento facial con clustering automático
  • Parámetros ajustables: Distancia de reconocimiento, mínimo de apariciones por cluster

3. YOLO:

  • Función: Detección automática de objetos
  • Configuración: Umbrales de confianza

Configuración de Modelos CLIP

Hardware modesto (16GB RAM, 4 cores):

YAML
services:
  immich-machine-learning:
    environment:
      - CLIP_MODEL=ViT-B-32  # Modelo ligero

Hardware potente (32GB+ RAM, 8+ cores):

YAML
services:
  immich-machine-learning:
    environment:
      - CLIP_MODEL=ViT-L-14  # Modelo potente

Hardware con GPU:

YAML
services:
  immich-machine-learning:
    environment:
      - CLIP_MODEL=ViT-L-14
      - CUDA_VISIBLE_DEVICES=0
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

Benchmarks aproximados:

  • ViT-B-32: ~2-3 segundos por foto (CPU), ~0.5s (GPU)
  • ViT-L-14: ~5-7 segundos por foto (CPU), ~1s (GPU)
  • ViT-H-14: ~10-15 segundos por foto (CPU), ~2s (GPU)

Optimización de Reconocimiento Facial

Ajustar parámetros de clustering:

  1. Ir a Settings → Machine Learning
  2. Ajustar «Face Recognition Distance» (0.4-0.6 recomendado):

0.4: Más estricto (menos falsos positivos, puede separar misma persona)

0.6: Más permisivo (más agrupa, puede juntar personas diferentes)

  1. Ajustar «Minimum Faces per Cluster» (2-5 recomendado):

2: Agrupa con solo 2 apariciones

5: Requiere 5+ apariciones para crear cluster

  1. Reiniciar trabajos de reconocimiento facial:

– Settings → Jobs → Reiniciar trabajos de ML

Mejores resultados:

  • Fotos con buena iluminación y cara visible
  • Múltiples fotos de la misma persona (mejora clustering)
  • Ajustar parámetros según resultados (probar y ajustar)

Optimización de Recursos

Para bibliotecas grandes (>500K fotos):

  • CPU: 16+ cores (procesamiento paralelo)
  • RAM: 64GB+ (modelos CLIP grandes cargan en memoria)
  • GPU: NVIDIA con CUDA (acelera significativamente)
  • Almacenamiento: SSD para thumbnails, HDD para archivos originales

Para bibliotecas medianas (100K-500K fotos):

  • CPU: 8 cores
  • RAM: 32GB
  • GPU: Opcional pero recomendado
  • Almacenamiento: SSD mixto

Para bibliotecas pequeñas (<100K fotos):

  • CPU: 4 cores
  • RAM: 16GB
  • Almacenamiento: Cualquiera

Integración con Ecosistema Homelab {#integracion-homelab}

Immich se integra perfectamente con otros servicios de tu homelab. Te muestro las integraciones más útiles.

Integración con Nextcloud

Caso de uso: Compartir almacenamiento entre Nextcloud e Immich.

Configuración:

  1. Compartir volumen entre servicios:
YAML
# docker-compose.yml - Nextcloud
services:
  nextcloud:
    volumes:
      - nextcloud-data:/var/www/html/data

# docker-compose.yml - Immich
services:
  immich-server:
    volumes:
      - nextcloud-data:/mnt/nextcloud/photos:ro  # External library
  1. Configurar external library en Immich:

– Path: /mnt/nextcloud/photos

– Read-only: true (protege archivos de Nextcloud)

Ventajas:

  • Fotos subidas a Nextcloud aparecen automáticamente en Immich
  • Búsqueda semántica y reconocimiento facial en fotos de Nextcloud
  • Sin duplicar archivos

Integración con n8n

Caso de uso: Automatizar backups, notificaciones, procesamiento.

Workflow ejemplo: Backup automático a S3:

JSON
{
  "name": "Immich Backup Automático",
  "nodes": [
    {
      "parameters": {
        "method": "GET",
        "url": "https://immich.tu-dominio.com/api/asset",
        "authentication": "genericCredentialType",
        "options": {
          "headers": {
            "X-API-KEY": "={{ $credentials.immichApiKey }}"
          }
        }
      },
      "name": "Obtener Assets Nuevos",
      "type": "n8n-nodes-base.httpRequest"
    },
    {
      "parameters": {
        "conditions": {
          "conditions": [
            {
              "leftValue": "={{ $json.createdAt }}",
              "rightValue": "={{ $now.minus({days: 7}) }}",
              "operator": "smaller"
            }
          ]
        },
        "name": "Filtrar Últimos 7 Días",
        "type": "n8n-nodes-base.if"
    },
    {
      "parameters": {
        "method": "GET",
        "url": "https://immich.tu-dominio.com/api/asset/{{ $json.id }}/download",
        "name": "Descargar Asset",
        "type": "n8n-nodes-base.httpRequest"
    },
    {
      "parameters": {
        "method": "PUT",
        "url": "https://s3.tu-dominio.com/immich-backups/{{ $json.id }}",
        "name": "Subir a S3",
        "type": "n8n-nodes-base.httpRequest"
    }
  ]
}

Otros workflows útiles:

  • Notificación por Telegram cuando se suben fotos nuevas
  • Procesamiento automático de RAW a JPEG
  • Sincronización con servicios cloud externos
  • Generación de álbumes automáticos por fecha/evento

Integración con Traefik

Caso de uso: Acceso seguro con SSL automático.

Configuración Traefik:

YAML
# docker-compose.yml - Immich
services:
  immich-server:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.immich.rule=Host(`immich.tu-dominio.com`)"
      - "traefik.http.routers.immich.entrypoints=websecure"
      - "traefik.http.routers.immich.tls.certresolver=letsencrypt"
      - "traefik.http.services.immich.loadbalancer.server.port=2283"

Ventajas:

  • SSL automático con Let’s Encrypt
  • Acceso seguro desde internet
  • Integración con Authelia para autenticación adicional

Imagen 2

Troubleshooting Avanzado {#troubleshooting}

Problema 1: App móvil se congela o no sincroniza

Síntomas:

  • App iOS/Android se congela al abrir
  • Sincronización en segundo plano no funciona
  • Uploads se detienen

Soluciones:

  1. Verificar versión de Immich:

– Versiones v2.0.0+ tienen mejoras significativas de sincronización

– Actualizar si estás en versión antigua

  1. Limpiar caché de la app móvil:

– iOS: Eliminar y reinstalar app

– Android: Settings → Apps → Immich → Clear Cache

  1. Verificar permisos de fondo:

– iOS: Settings → Immich → Background App Refresh (ON)

– Android: Settings → Apps → Immich → Battery → Unrestricted

  1. Revisar logs del servidor:
BASH
docker logs immich-server | grep -i "mobile\|sync\|error"
  1. Usar modo «Background Sync» (beta):

– Habilitar en Settings → Mobile → Background Sync

– Mejora significativamente sincronización en segundo plano

Problema 2: External library no detecta archivos nuevos

Síntomas:

  • Archivos añadidos a carpeta externa no aparecen en Immich
  • Escaneo manual no encuentra archivos

Soluciones:

  1. Verificar permisos de montaje:
BASH
# Verificar que el contenedor puede acceder
docker exec immich-server ls -la /mnt/nas/fotos_antiguas
  1. Verificar configuración de external library:

– Path debe coincidir exactamente con el montaje en Docker

– Verificar exclusiones (pueden estar excluyendo archivos)

  1. Forzar escaneo manual:

– Settings → Libraries → [Tu Library] → Scan Library

  1. Habilitar file watching experimental:
YAML
environment:
  - IMMICH_EXTERNAL_LIBRARY_WATCH_ENABLED=true
  1. Verificar logs:
BASH
docker logs immich-server | grep -i "external\|scan\|error"

Problema 3: Reconocimiento facial no funciona bien

Síntomas:

  • Caras no se detectan
  • Múltiples clusters para la misma persona
  • Reconocimiento muy lento

Soluciones:

  1. Ajustar parámetros de clustering:

– Settings → Machine Learning → Face Recognition

– Ajustar «Face Recognition Distance» (0.4-0.6)

– Ajustar «Minimum Faces per Cluster» (2-5)

  1. Reiniciar trabajos de reconocimiento facial:

– Settings → Jobs → Reiniciar trabajos de ML

  1. Verificar recursos:
BASH
docker stats immich-machine-learning
# Verificar que no está al 100% CPU constantemente
  1. Usar GPU si está disponible:

– Acelera significativamente reconocimiento facial

– Configurar en docker-compose.yml (ver sección Optimización IA)

Problema 4: Biblioteca grande consume mucha RAM

Síntomas:

  • Servidor se queda sin memoria
  • Immich se vuelve lento
  • OOM (Out of Memory) kills

Soluciones:

  1. Fragmentar external library:

– Dividir en múltiples external libraries más pequeñas

– Ejemplo: Por año (2020, 2021, 2022, etc.)

  1. Limitar trabajos concurrentes:
YAML
environment:
  - IMMICH_CONCURRENT_JOBS=2  # Reducir de 4 a 2
  1. Aumentar RAM del servidor:

– 32GB+ recomendado para >500K fotos

– 64GB+ para >1M fotos

  1. Usar modelo CLIP más ligero:
YAML
- CLIP_MODEL=ViT-B-32  # En lugar de ViT-L-14
  1. Deshabilitar funciones no esenciales temporalmente:

– Deshabilitar reconocimiento facial si no es crítico

– Deshabilitar búsqueda semántica si no se usa

Problema 5: Duplicados después de migración

Síntomas:

  • Mismas fotos aparecen múltiples veces
  • Duplicados visuales (mismo contenido, diferente hash)

Soluciones:

  1. Usar immich-deduper para duplicados visuales:
BASH
immich-deduper \
  --immich-url https://immich.tu-dominio.com \
  --api-key tu-api-key \
  --library-id library-id \
  --similarity-threshold 0.95 \
  --dry-run
  1. Limpiar duplicados por hash antes de importar:
BASH
fdupes -rdN /ruta/a/fotos
  1. Verificar que external library no se solapa con upload library:

– Asegurar que rutas no se superponen

– Verificar exclusiones

Comparativa Detallada: Immich vs PhotoPrism vs LibrePhotos {#comparativa}

CriterioImmichPhotoPrismLibrePhotos
Experiencia móvil⭐⭐⭐⭐⭐ Excelente (apps nativas)⭐⭐ Básica (solo web)⭐⭐ Básica (solo web)
Backup automático móvil✅ Sí (nativo)❌ No❌ No
Búsqueda semántica⭐⭐⭐⭐⭐ CLIP (muy buena)⭐⭐⭐⭐ TensorFlow (buena)⭐⭐ Limitada
Reconocimiento facial⭐⭐⭐⭐⭐ InsightFace (excelente)⭐⭐⭐⭐ TensorFlow (buena)⭐⭐ Limitado
External libraries✅ Sí (read-only)✅ Sí (más flexible)❌ No
Soporte RAW⭐⭐ Básico⭐⭐⭐⭐⭐ Excelente⭐⭐ Básico
Mapas/Geolocalización⭐⭐ Básico⭐⭐⭐⭐⭐ Excelente⭐⭐ Básico
Multi-usuario⭐⭐⭐⭐⭐ Completo⭐⭐⭐ Básico⭐⭐⭐ Sí
Desarrollo activo⭐⭐⭐⭐⭐ Muy activo⭐⭐⭐⭐ Activo⭐⭐ Menos activo
Complejidad setup⭐⭐⭐ Media⭐⭐⭐ Media⭐⭐ Baja
Recomendado paraBackup móvil, familiasFotógrafos, archivistasUsuarios básicos

Veredicto detallado:

Immich gana en:

  • ✅ Experiencia móvil (apps nativas excelentes)
  • ✅ Backup automático desde móvil
  • ✅ Reconocimiento facial (InsightFace es superior)
  • ✅ Desarrollo activo (nuevas features frecuentes)
  • ✅ Multi-usuario completo

PhotoPrism gana en:

  • ✅ Soporte RAW (muy completo)
  • ✅ Mapas y geolocalización (excelente)
  • ✅ Búsqueda avanzada con múltiples criterios
  • ✅ External libraries más flexibles

LibrePhotos gana en:

  • ✅ Simplicidad de setup
  • ✅ Menor consumo de recursos

¿Cuándo usar cada uno?

  • Immich: Backup móvil automático, familias, experiencia tipo Google Photos
  • PhotoPrism: Fotógrafos profesionales, archivistas, búsqueda avanzada, mapas
  • LibrePhotos: Usuarios que buscan simplicidad, hardware limitado

Estrategia híbrida (recomendada para algunos casos):

  • Immich para backup móvil y uso diario
  • PhotoPrism para curación y búsqueda avanzada de fotos antiguas
  • Ambos apuntando a mismo almacenamiento (external libraries)

Casos de Uso Avanzados {#casos-uso}

Caso 1: Fotógrafo Profesional

Escenario:

  • Biblioteca de 200K+ fotos RAW
  • Necesita búsqueda rápida por cliente/evento
  • Mantener estructura de carpetas original

Configuración:

  • External library para RAW (read-only)
  • Upload library para JPEG procesados
  • Modelo CLIP potente (ViT-L-14) para búsqueda semántica
  • GPU para acelerar procesamiento
  • Backup automático a S3

Workflow:

  1. RAW se mantienen en estructura original (external library)
  2. JPEG procesados se suben a upload library
  3. Búsqueda por texto: «sesión boda playa 2025»
  4. Reconocimiento facial para clientes frecuentes

Hardware recomendado:

  • CPU: 16 cores
  • RAM: 64GB
  • GPU: NVIDIA RTX 3060+ (12GB VRAM)
  • Almacenamiento: 10TB+ SSD para trabajo activo, HDD para archivo

Caso 2: Familia Grande (10+ usuarios)

Escenario:

  • Múltiples usuarios con móviles
  • Backup automático desde todos los dispositivos
  • Compartir álbumes familiares

Configuración:

  • Upload library para cada usuario
  • Álbumes compartidos para eventos familiares
  • Límites de almacenamiento por usuario
  • Backup centralizado automático

Consideraciones:

  • Hardware: 64GB RAM, 16 cores CPU
  • Almacenamiento: 10TB+ SSD
  • Ancho de banda: 1Gbps para múltiples uploads simultáneos
  • Monitoreo: Verificar uso de recursos durante picos

Caso 3: Archivista/Conservador

Escenario:

  • Preservación de fotos históricas escaneadas
  • Metadatos críticos (fecha, ubicación, personas)
  • Búsqueda por contenido histórico

Configuración:

  • External library para archivos escaneados (read-only)
  • OCR multilingüe habilitado
  • Búsqueda semántica para encontrar contenido histórico
  • Backup 3-2-1 (local, S3, cinta)

Workflow:

  1. Fotos escaneadas se mantienen en estructura original
  2. Immich indexa para búsqueda y reconocimiento
  3. OCR extrae texto de documentos históricos
  4. Búsqueda semántica: «foto de guerra civil española»

Imagen 3

Backup y Recuperación Avanzada {#backup}

Estrategia 3-2-1

3 copias, 2 medios diferentes, 1 offsite:

  1. Copia 1: Immich en producción (servidor principal)
  2. Copia 2: Backup local (NAS, disco externo)
  3. Copia 3: Backup remoto (S3, Backblaze, otro servidor)

Script de Backup Automatizado

BASH
#!/bin/bash
# backup_immich_db.sh

BACKUP_DIR="/mnt/backups/immich"
DATE=$(date +%Y%m%d_%H%M%S)

# 1. Backup de PostgreSQL
docker exec immich-postgres pg_dump -U immich immich | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"

# 2. Backup de library
tar -czf "$BACKUP_DIR/library_$DATE.tar.gz" ./library

# 3. Sincronizar con S3/Backblaze
rclone sync "$BACKUP_DIR" s3:immich-backups/ --delete-after

# 4. Limpiar backups antiguos (>30 días)
find "$BACKUP_DIR" -name "*.gz" -mtime +30 -delete

Añadir a crontab (backup diario a las 2 AM):

BASH
0 2 * * * /ruta/a/backup_immich_db.sh >> /var/log/immich_backup.log 2>&1

Backup Incremental con rclone

Para bibliotecas muy grandes, usar backup incremental:

BASH
# Sincronización incremental (solo cambios)
rclone sync /mnt/immich/library s3:immich-backups/library/ \
  --transfers 4 \
  --checkers 8 \
  --log-level INFO

Recuperación ante Desastres

Escenario: Servidor se rompe, necesitas restaurar todo.

Proceso de recuperación:

  1. Restaurar base de datos:
BASH
# Descomprimir backup
gunzip db_20260119_020000.sql.gz

# Restaurar
docker exec -i immich-postgres psql -U immich immich < db_20260119_020000.sql
  1. Restaurar library:
BASH
# Descomprimir
tar -xzf library_20260119_020000.tar.gz -C /mnt/immich/

# O desde S3
rclone sync s3:immich-backups/library/ /mnt/immich/library/
  1. Reiniciar servicios:
BASH
docker-compose up -d
  1. Verificar integridad:

– Revisar que todas las fotos están accesibles

– Verificar que reconocimiento facial funciona

– Comprobar que búsqueda semántica funciona

Optimización de Almacenamiento {#optimizacion-almacenamiento}

Compresión y Deduplicación

Immich-Deduper para duplicados visuales:

BASH
# Instalar
pip3 install immich-deduper

# Ejecutar deduplicación
immich-deduper \
  --immich-url https://immich.tu-dominio.com \
  --api-key tu-api-key \
  --library-id library-id \
  --similarity-threshold 0.95 \
  --delete-duplicates

Deduplicación por hash (duplicados exactos):

BASH
fdupes -rdN /mnt/immich/library

Gestión de Thumbnails

Immich genera thumbnails de múltiples tamaños. Puedes optimizar:

Estrategias:

  • SSD para thumbnails: Montar volumen de thumbnails en SSD para acceso rápido
  • Limpiar thumbnails antiguos: Script para limpiar thumbnails de fotos eliminadas
  • Comprimir thumbnails: Ajustar calidad de thumbnails en configuración

Almacenamiento por Capas

Estrategia recomendada para bibliotecas grandes:

  1. Capa caliente (SSD): Fotos recientes (<1 año), thumbnails
  2. Capa templada (HDD rápido): Fotos antiguas (1-5 años)
  3. Capa fría (HDD lento/tape): Archivo (>5 años)

Configuración:

  • External libraries apuntando a cada capa
  • Migración automática entre capas con scripts
  • Backup de capa fría a S3/Backblaze

Imagen 4

📦 Descargar Ejemplos {#descargar-ejemplos}

Todos los ejemplos de esta guía están disponibles en GitHub:

🔗 https://github.com/ziruelen/learningaiagents/tree/main/immich/immich-avanzado-migracion-google-photos-external-libraries-optimizacion-profesional-2026

Incluye:

  • docker-compose.avanzado.yml – Configuración optimizada con external libraries
  • scripts/migracion_google_photos.sh – Script de migración completo
  • scripts/normalizar_metadatos.py – Normalización de metadatos EXIF
  • scripts/deduplicar_visual.sh – Deduplicación visual
  • scripts/backup_immich_db.sh – Backup automatizado
  • configs/immich_external_libraries.yml – Configuración de external libraries
  • n8n/workflows/immich_backup_automatico.json – Workflow n8n
  • README.md – Instrucciones de uso

Preguntas Frecuentes {#faqs}

¿Puedo usar Immich con fotos que ya están en mi NAS?

Sí, usando external libraries. Immich escaneará tus fotos existentes sin duplicarlas. Configura external library apuntando a la carpeta de tu NAS.

¿Immich modifica mis archivos originales en external libraries?

No, si configuras external library como read-only (:ro en Docker). Immich solo lee los archivos, no los modifica. Las modificaciones (descripciones, álbumes) se guardan en la base de datos de Immich, no en los archivos.

¿Cuánto tiempo tarda migrar desde Google Photos?

Depende del tamaño de tu biblioteca:

  • 10K fotos: 1-2 horas
  • 50K fotos: 4-6 horas
  • 100K+ fotos: 8-12 horas

El tiempo incluye: descarga de Google Takeout, descompresión, normalización, deduplicación, e importación a Immich.

¿Puedo usar Immich y PhotoPrism al mismo tiempo?

Sí, ambos pueden apuntar a las mismas carpetas usando external libraries. Immich para backup móvil y uso diario, PhotoPrism para búsqueda avanzada y curación.

¿Qué modelo CLIP debo usar?

  • ViT-B-32: Hardware modesto (16GB RAM, 4 cores)
  • ViT-L-14: Hardware potente (32GB+ RAM, 8+ cores)
  • ViT-H-14: Hardware muy potente (64GB+ RAM, 16+ cores, GPU)

¿Immich funciona con GPU?

Sí, Immich soporta GPU NVIDIA con CUDA para acelerar reconocimiento facial y búsqueda semántica. Configura en docker-compose.yml (ver sección Optimización IA).

¿Puedo automatizar backups con n8n?

Sí, Immich tiene API completa que permite automatizar backups, notificaciones, y procesamiento. Ver sección Integración con n8n para ejemplos.

¿External libraries funcionan con archivos RAW?

Sí, pero Immich tiene soporte básico para RAW. Si necesitas procesamiento avanzado de RAW, considera usar PhotoPrism o mantener RAW en external library y JPEG procesados en upload library.

¿Cuánto espacio necesito para Immich?

Depende del tamaño de tu biblioteca:

  • Fotos: Tamaño original (sin compresión)
  • Thumbnails: ~5-10% del tamaño original
  • Base de datos: ~1-2% del tamaño original
  • Modelos ML: ~2-5GB (se descargan una vez)

Ejemplo: 1TB de fotos = ~1.1-1.2TB total (con thumbnails y DB)

¿Puedo usar Immich sin internet?

Sí, Immich funciona completamente offline. Solo necesitas internet para:

  • Descargar imágenes Docker (una vez)
  • Actualizar Immich (opcional)
  • Apps móviles para backup (si usas desde fuera de tu red)

¿Immich es estable para producción?

Sí, desde la versión v2.0.0 (octubre 2025) Immich se considera estable. Antes de eso tenía advertencia de «versión inestable» que ya se eliminó.

¿Puedo migrar desde PhotoPrism a Immich?

Sí, puedes exportar fotos desde PhotoPrism y importarlas a Immich usando external library o CLI. Los metadatos (etiquetas, álbumes) pueden requerir migración manual.

¿Immich soporta videos?

Sí, Immich soporta videos (MP4, MOV, etc.) con transcodificación automática. Los videos se procesan similar a las fotos (thumbnails, metadatos).

¿Cuántos usuarios puedo tener en Immich?

Ilimitados. Immich soporta multi-usuario completo con permisos granulares. Cada usuario puede tener su propia upload library o compartir external libraries.

¿Puedo usar Immich con Traefik?

Sí, Immich se integra perfectamente con Traefik para SSL automático y acceso seguro. Ver sección Integración con Traefik.

Conclusión {#conclusion}

Immich avanzado te da control total sobre tu biblioteca de fotos con funciones profesionales: migración desde Google Photos, external libraries para integrar fotos existentes, optimización de IA para mejor rendimiento, e integraciones con tu homelab.

Cuándo usar Immich avanzado:

  • ✅ Necesitas migrar desde Google Photos sin perder datos
  • ✅ Tienes fotos existentes en NAS que quieres usar sin duplicar
  • ✅ Quieres optimizar para bibliotecas grandes (>100K fotos)
  • ✅ Necesitas integraciones con Nextcloud, n8n, o Traefik
  • ✅ Eres fotógrafo profesional o archivista con necesidades avanzadas

Cuándo usar Immich básico:

  • ✅ Estás empezando con Immich
  • ✅ Tienes biblioteca pequeña (<50K fotos)
  • ✅ Solo necesitas backup móvil y búsqueda básica

Próximos pasos:

  1. Si vienes de Google Photos: Ejecutar script de migración
  2. Si tienes fotos en NAS: Configurar external libraries
  3. Si tienes biblioteca grande: Optimizar modelos ML y recursos
  4. Integrar con tu homelab: Nextcloud, n8n, Traefik
  5. Configurar backups automatizados: Estrategia 3-2-1

¿Necesitas ayuda? Únete a nuestra comunidad Discord o consulta los artículos relacionados sobre homelab y gestión de fotos.

Artículos relacionados:

Por ziru

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
El Diario IA
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.