Skip to main content

Immich: Almacenamiento y organización de fotos y vídeos con sincronización automática


Introducción

Este artículo documenta el uso de Immich como plataforma self-hosted para la gestión, organización y respaldo de fotografías y vídeos personales. Immich está orientado a sustituir servicios cloud privativos tipo Google Photos o iCloud Photos, ofreciendo sincronización automática desde dispositivos móviles, búsqueda avanzada y organización inteligente, manteniendo el control total sobre los datos y la infraestructura.

Se integra dentro del stack multimedia como servicio centralizado de archivo fotográfico, con soporte multiusuario, procesamiento mediante GPU y capacidades avanzadas como reconocimiento facial y análisis automático de contenido.


Enfoque general / Arquitectura

El despliegue se realiza mediante Docker Compose, separando claramente los distintos componentes del sistema: servidor principal, motor de machine learning, base de datos PostgreSQL con extensión vectorial y Redis como backend de colas y caché. Esta separación permite escalar o ajustar recursos de forma independiente y aislar responsabilidades.

El almacenamiento de fotografías y vídeos se mantiene en volúmenes persistentes externos al contenedor, desacoplados completamente de la lógica de la aplicación. El procesamiento intensivo (indexación, reconocimiento facial, búsqueda semántica) se apoya en GPU para reducir tiempos y mejorar la experiencia de uso.

El acceso al servicio se realiza a través de la interfaz web y aplicaciones móviles oficiales, con autenticación federada gestionada externamente.


Desarrollo

Qué se hizo y por qué

  • Se eligió Immich como solución fotográfica por su enfoque moderno, rendimiento elevado y funcionalidad comparable a servicios cloud comerciales.
  • La sincronización automática desde la app móvil permite eliminar procesos manuales de copia de seguridad.
  • El uso de GPU acelera notablemente tareas de reconocimiento facial y búsqueda avanzada.
  • La arquitectura desacoplada facilita mantenimiento, actualizaciones y resolución de problemas.
  • La autenticación se delega en Authentik mediante OAuth para unificar el control de acceso dentro del stack.

Configuración utilizada (solo enlaces)

Tanto el docker-compose.yml como el archivo .env se mantienen versionados y pueden requerir ajustes en futuras actualizaciones del proyecto.


Notas personales

  • El servicio está protegido mediante Authentik utilizando OAuth.
  • Integración documentada en la wiki: Integrar Immich con Authentik (OAuth)
  • Las fotos y vídeos se sincronizan directamente desde la aplicación móvil oficial.
  • El reconocimiento facial funciona de forma fiable y acelera significativamente las búsquedas.
  • No se han detectado problemas de rendimiento utilizando GPU.

Validación

  • Sincronización automática de fotos y vídeos desde la aplicación móvil funcionando correctamente.
  • Indexación y reconocimiento facial operativos con aceleración por GPU.
  • Búsquedas rápidas por fecha, persona y metadatos.
  • Persistencia correcta de datos tras reinicios y actualizaciones de contenedores.
  • Integración OAuth con Authentik funcionando sin incidencias.

Decisiones importantes o problemas detectados

  • Immich es un proyecto en evolución activa; los ficheros de configuración pueden requerir cambios entre versiones.
  • El uso de GPU es altamente recomendable para colecciones grandes.
  • Se evita cualquier exposición directa sin autenticación, delegando el acceso en el sistema de identidad central.

Resumen breve

Immich se utiliza como sistema centralizado de gestión y respaldo de fotos y vídeos, ofreciendo sincronización automática, búsqueda avanzada y organización inteligente en entorno self-hosted. El despliegue en Docker, con soporte GPU y autenticación federada, permite una solución potente, privada y mantenible, con toda la configuración versionada en Gitea.


Referencias