Immich Docker Compose es la alternativa definitiva a Google Photos que mantiene tu privacidad intacta. Descubre cómo desplegar tu propio servidor de backup de fotos y vídeos con reconocimiento facial IA, búsqueda avanzada y sincronización automática desde móviles, todo sin depender de la nube de terceros.
Si estás cansado de pagar suscripciones mensuales por almacenamiento ilimitado o preocupado por la privacidad de tus fotos familiares, Immich Docker Compose te permite recuperar el control total de tu biblioteca multimedia mientras disfrutas de funciones premium similares a Google Photos.
¿Qué es Immich Docker Compose y por qué deberías usarlo?
Immich Docker Compose es un sistema self-hosted de backup de fotos y vídeos que se despliega mediante contenedores Docker. A diferencia de Google Photos o iCloud, te ofrece control absoluto sobre tus datos, sin límites de almacenamiento más allá de tu propio hardware y sin que terceros analicen tu contenido.
El proyecto Immich está diseñado específicamente para reemplazar Google Photos con características premium como reconocimiento facial mediante machine learning, búsqueda por contenido de imágenes, organización automática por ubicación y fechas, y aplicaciones móviles nativas para iOS y Android con backup automático en segundo plano.
Al usar Immich Docker Compose, obtienes una solución empresarial de gestión multimedia que puedes ejecutar en un Raspberry Pi, un NAS Synology, un servidor doméstico o cualquier VPS. La arquitectura basada en contenedores Docker facilita enormemente la instalación, actualización y mantenimiento del sistema completo.
Características principales de Immich Docker Compose
- Backup automático desde móviles: Apps nativas para iOS y Android que sincronizan automáticamente tus fotos y vídeos en segundo plano, exactamente como Google Photos
- Reconocimiento facial con IA: Detección y agrupación automática de personas usando modelos de machine learning que se ejecutan localmente en tu servidor
- Búsqueda visual inteligente: Busca fotos por contenido («playa», «perro», «montaña») gracias al análisis de imágenes mediante CLIP
- Gestión multiusuario: Crea cuentas separadas para cada miembro de tu familia con bibliotecas independientes
- Álbumes compartidos: Comparte colecciones de fotos con otros usuarios del sistema mediante enlaces o invitaciones directas
- Geolocalización: Organización automática de fotos por ubicación con visualización en mapas interactivos
- Soporte RAW y vídeo: Procesamiento de formatos profesionales (RAW, HEIC, HEVC, AV1) con transcodificación automática
- Timeline infinito: Navegación ultra-rápida por miles de fotos con scroll infinito y carga lazy optimizada
La implementación de Immich Docker Compose incluye componentes especializados: un servidor backend en Node.js/NestJS, worker de procesamiento para machine learning, base de datos PostgreSQL con extensión pgvector para búsquedas semánticas, Redis para caché, y Typesense para búsqueda full-text ultrarápida.
Requisitos previos para instalar Immich Docker Compose
Antes de desplegar Immich Docker Compose en tu infraestructura, verifica que cumples con los siguientes requisitos técnicos mínimos:
- Hardware mínimo:
- CPU: 2 cores (4 cores recomendados para machine learning)
- RAM: 4GB mínimo (8GB recomendados, 16GB para bibliotecas grandes)
- Almacenamiento: SSD con espacio según tu biblioteca (1TB+ recomendado)
- GPU (opcional): NVIDIA con CUDA para aceleración hardware del ML
- Software:
- Docker Engine 20.10+
- Docker Compose V2 (plugin compose)
- Sistema operativo: Linux (Ubuntu 22.04/Debian 12), macOS o Windows con WSL2
- Red:
- Puerto 2283 disponible para el servidor web
- Dominio o DNS dinámico si quieres acceso externo
- Certificado SSL/TLS (Let’s Encrypt recomendado) para HTTPS
Para instalar Docker y Docker Compose en Ubuntu/Debian, ejecuta:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
Archivo docker-compose.yml completo para Immich Docker Compose
Este es el archivo docker-compose.yml oficial y completo para desplegar Immich Docker Compose con todos sus componentes en producción:
version: "3.8"
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: unless-stopped
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: ['start.sh', 'microservices']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
depends_on:
- redis
- database
restart: unless-stopped
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
env_file:
- .env
restart: unless-stopped
redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:84882e87b54734154586e5f8abd4dce69fe7311315e2fc6d67c29614c8de2672
restart: unless-stopped
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pgdata:
model-cache:
Este archivo docker-compose.yml de Immich Docker Compose define cinco servicios esenciales: el servidor principal HTTP, el worker de microservicios para procesamiento asíncrono, el contenedor de machine learning con modelos CLIP y reconocimiento facial, Redis para gestión de colas, y PostgreSQL con la extensión pgvecto-rs para búsquedas vectoriales.
Configuración del archivo .env para Immich Docker Compose
Crea el archivo .env en el mismo directorio que tu docker-compose.yml para configurar las variables de entorno de Immich Docker Compose:
# Versión de Immich (release, v1.95.0, etc.)
IMMICH_VERSION=release
# Ubicación de almacenamiento de fotos (CAMBIAR RUTA)
UPLOAD_LOCATION=/ruta/a/tu/biblioteca/immich
# Base de datos PostgreSQL
DB_HOSTNAME=database
DB_USERNAME=postgres
DB_PASSWORD=postgres_password_super_segura_cambiar
DB_DATABASE_NAME=immich
# Redis
REDIS_HOSTNAME=redis
# Machine Learning (opcional, ajustar según hardware)
MACHINE_LEARNING_WORKERS=1
MACHINE_LEARNING_WORKER_TIMEOUT=120
# Log level (simple, verbose, debug)
LOG_LEVEL=simple
# Timezone
TZ=Europe/Madrid
IMPORTANTE: Cambia UPLOAD_LOCATION a la ruta donde quieres almacenar tus fotos. Esta ubicación debe tener suficiente espacio en disco y permisos de escritura. También cambia DB_PASSWORD a una contraseña segura única.
Para usuarios con GPUs NVIDIA que quieran acelerar el procesamiento de Immich Docker Compose, añade estas variables al .env:
# Aceleración GPU NVIDIA
MACHINE_LEARNING_DEVICE=cuda
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=compute,utility
Despliegue paso a paso de Immich Docker Compose
Sigue estos pasos para desplegar Immich Docker Compose en tu servidor:
Paso 1: Crea el directorio del proyecto y descarga los archivos:
mkdir -p ~/immich && cd ~/immich
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Paso 2: Edita el archivo .env con tus configuraciones personalizadas (ruta de almacenamiento, contraseñas, timezone).
Paso 3: Crea el directorio de almacenamiento y establece permisos:
sudo mkdir -p /mnt/immich-storage
sudo chown -R $USER:$USER /mnt/immich-storage
chmod 755 /mnt/immich-storage
Paso 4: Inicia todos los contenedores:
docker compose up -d
Paso 5: Verifica que todos los servicios están ejecutándose correctamente:
docker compose ps
docker compose logs -f immich-server
El despliegue inicial puede tardar 2-5 minutos mientras descarga las imágenes Docker (aproximadamente 4GB en total) y los modelos de machine learning. Podrás acceder a la interfaz web en http://tu-servidor:2283.
Configuración inicial y creación de usuario administrador en Immich Docker Compose
Una vez que Immich Docker Compose esté ejecutándose, accede a http://tu-servidor:2283 y completa el asistente de configuración inicial:
- Crear cuenta de administrador: La primera cuenta creada será el administrador del sistema. Introduce email y contraseña seguros.
- Configurar librerías: Define las rutas de escaneo para importar fotos existentes. Puedes añadir múltiples librerías (fotos, vídeos, RAW).
- Habilitar reconocimiento facial: Activa el análisis facial en Configuración → Machine Learning. El primer escaneo puede tardar varias horas según el tamaño de tu biblioteca.
- Configurar backup móvil: Descarga Immich desde App Store o Google Play, inicia sesión con tu usuario, y habilita backup automático en ajustes.
Para añadir usuarios adicionales a tu instalación, ve a Panel de Administración → Usuarios → Crear Usuario. Cada usuario tendrá su propia biblioteca aislada con cuota de almacenamiento configurable.
Acceso seguro externo con HTTPS para Immich Docker Compose
Para acceder desde fuera de tu red local de forma segura, necesitas configurar un proxy inverso con HTTPS. La configuración recomendada usa Nginx Proxy Manager o Traefik.
Opción A: Con Nginx Proxy Manager
Añade este servicio a tu docker-compose.yml:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data/nginx:/data
- ./letsencrypt:/etc/letsencrypt
Luego accede a http://tu-servidor:81, crea un Proxy Host apuntando a immich-server:3001, y habilita SSL con Let’s Encrypt.
Opción B: Con Caddy (más simple)
caddy:
image: caddy:alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
Y crea el Caddyfile:
photos.tudominio.com {
reverse_proxy immich-server:3001
encode gzip
}
Caddy obtendrá automáticamente certificados SSL de Let’s Encrypt para tu instalación.
Mantenimiento y actualización de Immich Docker Compose
Immich se actualiza frecuentemente con nuevas características. Para actualizar tu instalación a la última versión:
cd ~/immich
docker compose pull
docker compose up -d
Docker Compose descargará las nuevas imágenes, detendrá los contenedores antiguos, y los reemplazará automáticamente. Tus datos (fotos, base de datos) se preservan en los volúmenes Docker.
Backup de datos de Immich Docker Compose
Realiza copias de seguridad regulares de estos dos componentes críticos:
# Backup de fotos/vídeos
rsync -avh /mnt/immich-storage /ruta/backup/immich-photos
# Backup de base de datos PostgreSQL
docker exec -t immich_postgres pg_dumpall -c -U postgres > immich_dump_$(date +%Y%m%d).sql
Para restaurar la base de datos:
cat immich_dump_20250118.sql | docker exec -i immich_postgres psql -U postgres
Preguntas frecuentes sobre Immich Docker Compose
¿Cuántos recursos consume Immich Docker Compose?
La aplicación en idle consume aproximadamente 2-3GB de RAM y 5-10% de CPU en un sistema de 4 cores. Durante el procesamiento inicial de machine learning (reconocimiento facial, CLIP), el uso de CPU puede alcanzar el 100% durante varias horas. Con aceleración GPU NVIDIA, el procesamiento es 10-20x más rápido.
¿Immich Docker Compose funciona en Raspberry Pi?
Sí, funciona perfectamente en Raspberry Pi 4 con 4GB+ RAM. El procesamiento de machine learning será lento sin GPU, pero puedes deshabilitarlo o usar modelos ligeros. Para bibliotecas pequeñas (<10,000 fotos), un Pi 4 es totalmente viable.
¿Cómo migrar de Google Photos a Immich Docker Compose?
Usa Google Takeout para descargar tu biblioteca completa de Google Photos, luego copia los archivos al directorio de UPLOAD_LOCATION de tu instalación. Immich detectará automáticamente los metadatos EXIF (fechas, ubicación) y organizará las fotos en la timeline.
¿Immich Docker Compose soporta múltiples usuarios y familias?
Absolutamente. Tiene soporte multiusuario completo con bibliotecas separadas, álbumes compartidos opcionales entre usuarios, y gestión de permisos granular. Ideal para familias donde cada miembro quiere su propia biblioteca privada con opción de compartir álbumes específicos.
¿Qué hacer si Immich Docker Compose no arranca o falla?
Revisa los logs con docker compose logs -f. Los problemas comunes son: permisos incorrectos en UPLOAD_LOCATION, puerto 2283 ya en uso, falta de espacio en disco, o contraseña de PostgreSQL incorrecta en el .env. La documentación oficial de Immich tiene una sección completa de troubleshooting.
Conclusión: Tu alternativa privada a Google Photos con Immich Docker Compose
Immich Docker Compose representa el estado del arte en soluciones self-hosted de gestión multimedia. Con una arquitectura moderna basada en contenedores, funcionalidades de IA comparables a servicios comerciales, y control total sobre tu privacidad, es la opción perfecta para quienes quieren liberarse de las suscripciones cloud.
La instalación simplifica enormemente el despliegue y mantenimiento de esta compleja stack tecnológica. En menos de 15 minutos puedes tener tu propio servidor de fotos con apps móviles, backup automático, y todas las características premium que esperarías de Google Photos, pero ejecutándose en tu propio hardware.
Para más información sobre Docker Compose y otros proyectos self-hosted, visita nuestra categoría de Docker Compose donde encontrarás tutoriales completos sobre Nextcloud, Jellyfin, Home Assistant y muchos otros servicios.
Si tienes dudas sobre el despliegue o quieres compartir tu experiencia con la comunidad, deja un comentario abajo. ¡Recupera el control de tus fotos hoy mismo!
