Immich: Solución autohospedada de gestión de fotos y vídeos de alto rendimiento

Publicado por


immich
Open Source · Self-hosted

Immich: Solución autohospedada de gestión de fotos y vídeos de alto rendimiento

Alternativa a Google Photos con respaldo automático, reconocimiento facial, búsqueda por metadatos y soporte multiusuario, desplegable mediante Docker.

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Immich: Solución autohospedada de gestión de fotos y vídeos de alto rendimiento en el canal GENBYTE:

¿Qué es Immich: Solución autohospedada de gestión de fotos y vídeos de alto rendimiento?

Immich es una plataforma de gestión de fotos y vídeos de alto rendimiento diseñada para ejecutarse en infraestructura propia. Ofrece una experiencia similar a Google Photos o iCloud, pero con control total sobre los datos, privacidad y personalización. El proyecto está desarrollado como monorepo con tecnologías modernas: backend en NestJS (Node.js/TypeScript), frontend web en SvelteKit y aplicaciones móviles en Flutter. Se distribuye bajo licencia AGPL-3.0 y cuenta con una comunidad activa de más de 115.000 estrellas en GitHub.

Combina respaldo automático desde móviles, reconocimiento facial y de objetos, búsqueda semántica con CLIP, álbumes compartidos, Live Photos, mapas globales y arquitectura multiusuario en una única solución autohospedada.

Características principales

Respaldo automático y manual

Subida de fotos y vídeos desde la app móvil al abrirla (auto backup) o en segundo plano, con prevención de duplicados y selección de álbumes específicos para respaldo.

Búsqueda avanzada

Búsqueda por metadatos EXIF, objetos detectados, reconocimiento facial, y búsqueda semántica vectorial mediante CLIP para encontrar imágenes por descripción natural.

Gestión multiusuario y compartida

Soporte nativo para múltiples usuarios, álbumes compartidos, uso compartido con pareja (Partner Sharing), enlaces públicos de solo lectura y funciones administrativas en la interfaz web.

Compatibilidad de formatos y metadatos

Soporte para formatos RAW, Live Photos / Motion Photos, imágenes 360° (solo web), visualización de EXIF y mapa global de ubicaciones.

Organización inteligente

Álbumes, favoritos, archivo, apilado de fotos (stacked), etiquetas (solo web), vista de carpetas, recuerdos (x años atrás) y modo galería de solo lectura.

Autenticación y acceso programático

Inicio de sesión OAuth, claves API para integraciones, acceso offline en móviles y descarga de assets al dispositivo local.

Requisitos del sistema

  • Servidor con arquitectura x86_64 o ARM64
  • Docker y Docker Compose (v2) instalados
  • Mínimo 2 GB de RAM recomendados (4 GB o más para reconocimiento facial y ML)
  • Espacio en disco según volumen de biblioteca multimedia
  • Puertos 2283 (HTTP) y 2284 (HTTPS opcional) disponibles
  • Base de datos PostgreSQL 15+ y Redis 7+ (gestionados vía contenedores en la pila oficial)

Instalación con Docker Compose

Instalación rápida con script oficial

El repositorio incluye un script `install.sh` que descarga la plantilla `docker-compose.yml` y el archivo `.env` de ejemplo, crea los directorios de datos y levanta la pila completa. Requiere revisar y ajustar variables de entorno antes de iniciar.

curl -fsSL https://immich.app/install.sh | bash

Despliegue manual con Docker Compose

Descarga los archivos de configuración desde la documentación oficial, adapta `UPLOAD_LOCATION`, `DB_PASSWORD`, `REDIS_PASSWORD` y demás variables en `.env`, y lanza los contenedores. La pila incluye servicios: immich-server, immich-machine-learning, postgres, redis y opcionalmente immich-web (sirve el frontend).

wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env.example https://github.com/immich-app/immich/releases/latest/download/.env.example
cp .env.example .env
# Edita .env con tus valores
docker compose up -d

Acceder al proyecto

Interfaz web local

Tras el despliegue, accede a `http://<IP_DEL_SERVIDOR>:2283`. El primer usuario que se registre obtiene rol de administrador.

Demo pública

Disponible en https://demo.immich.app con credenciales de prueba: email `[email protected]`, contraseña `demo`. Útil para evaluar funcionalidades antes de instalar.

Aplicaciones móviles

Apps oficiales para iOS (TestFlight / App Store) y Android (Play Store / F-Droid / APK). Configura `Server Endpoint URL` apuntando a tu instancia (ej. `https://fotos.midominio.com` o `http://192.168.1.50:2283`).

Casos de uso

  • Sustitución privada de Google Photos / iCloud con propiedad total de los datos
  • Respaldo automático de fotos y vídeos del móvil a servidor propio (NAS, VPS, mini PC)
  • Galería familiar multiusuario con álbumes compartidos y control de permisos
  • Archivo fotográfico profesional con búsqueda por metadatos EXIF, ubicación y contenido visual
  • Integración en flujos de trabajo mediante API Keys y webhooks (automatización, copias de seguridad externas)

Configuración avanzada

Configuración de almacenamiento personalizado

La variable `UPLOAD_LOCATION` define la ruta raíz de los assets. Immich permite estructura de carpetas definida por usuario (`user-defined storage structure`) y montaje de volúmenes NFS, SMB o discos locales en el contenedor `immich-server`.

UPLOAD_LOCATION=/data/immich/library

Autenticación OAuth / OIDC

Soporte para proveedores OAuth 2.0 / OpenID Connect (Google, Microsoft, GitHub, Authelia, Keycloak, etc.). Se configura mediante variables de entorno `OAUTH_ENABLED`, `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, `OAUTH_ISSUER_URL`, `OAUTH_SCOPE` y `OAUTH_BUTTON_TEXT`.

OAUTH_ENABLED=true
OAUTH_CLIENT_ID=tu_client_id
OAUTH_CLIENT_SECRET=tu_client_secret
OAUTH_ISSUER_URL=https://accounts.google.com
OAUTH_SCOPE=openid email profile
OAUTH_BUTTON_TEXT=Iniciar con Google

Reconocimiento facial y machine learning

El servicio `immich-machine-learning` expone modelos de detección de caras, objetos y embeddings CLIP. Puede ejecutarse en CPU o GPU (NVIDIA CUDA). Variables relevantes: `MACHINE_LEARNING_URL`, `FACE_RECOGNITION_ENABLED`, `OBJECT_DETECTION_ENABLED`, `CLIP_ENABLED`.

MACHINE_LEARNING_URL=http://immich-machine-learning:3003
FACE_RECOGNITION_ENABLED=true
OBJECT_DETECTION_ENABLED=true
CLIP_ENABLED=true

Claves API para integraciones

Generación de API Keys desde la interfaz de administración (solo web) para scripts de respaldo, sincronización con Immich-Go, rclone, Home Assistant u otras herramientas.

# Ejemplo de uso con curl
curl -H "x-api-key: TU_API_KEY" https://fotos.midominio.com/api/albums

Gestión y mantenimiento

Actualizaciones

Las nuevas versiones se publican en GitHub Releases y Docker Hub. Para actualizar: detén la pila, descarga el nuevo `docker-compose.yml` y `.env.example`, combina cambios en tu `.env` y vuelve a levantar. Revisa siempre el changelog por migraciones de base de datos o cambios en variables.

docker compose down
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env.example https://github.com/immich-app/immich/releases/latest/download/.env.example
# Compara y actualiza tu .env
docker compose up -d

Estrategia de respaldo (3-2-1)

El proyecto advierte explícitamente seguir la regla 3-2-1: tres copias, dos medios distintos, una fuera del sitio. Respaldar: volúmenes de PostgreSQL (`/var/lib/postgresql/data`), Redis (`/data`), assets (`UPLOAD_LOCATION`) y archivo `.env`. Herramientas recomendadas: restic, borg, rclone, snapshots de ZFS/Btrfs.

# Ejemplo respaldo assets con rclone
rclone sync /mnt/data/immich/library remote:immich-backup/library –progress

Limpieza y mantenimiento de base de datos

Immich incluye tareas programadas (cron) para limpieza de trabajos fallidos, miniaturas huérfanas y optimización de índices. Se ejecutan dentro del contenedor `immich-server`. No se requiere intervención manual salvo revisión de logs.

docker compose logs -f immich-server

Stack técnico

  • TypeScript
  • Node.js
  • NestJS (backend API)
  • SvelteKit (frontend web)
  • Flutter (apps móviles iOS/Android)
  • PostgreSQL 15+ (base de datos principal)
  • Redis 7+ (caché, colas, sesiones)
  • TensorFlow / ONNX Runtime (machine learning: caras, objetos, CLIP)
  • Docker / Docker Compose (despliegue estándar)
  • pnpm (gestor de paquetes monorepo)
  • Nginx (reverse proxy en contenedor web opcional)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *