Saltar a contenido

Immich

Galería de fotos propia con reconocimiento facial e IA. URL: https://immich.matias7235.com.ar

📁 Rutas y configs

Qué Dónde
Compose /opt/docker/immich/docker-compose.yml
Variables de entorno /opt/docker/immich/.env
Fotos Definido en .env como UPLOAD_LOCATION=/mnt/ssd_512/immich/library (SSD dedicado)
Base de datos Definido en .env como DB_DATA_LOCATION; actualmente /opt/docker/immich/postgres (no se migró al SSD dedicado)
Cache ML Volumen Docker model-cache (SSD para mayor velocidad)

Contenedores: immich_server, immich_machine_learning, immich_postgres, shared_redis Puerto: 8503

immich_server usa shared_redis (DB 0) mediante la red externa shared_net. La red externa immich_net conecta el servidor, ML y PostgreSQL.

💾 Backups y Restauración

Extracción de Base de Datos (Volcado en caliente): Immich actualiza su estructura de base de datos seguido. NUNCA copiar los datos sin hacer un dump primero:

docker exec -t immich_postgres pg_dumpall -c -U postgres > /opt/docker/immich/immich_dump.sql

⚠️ Las fotos de UPLOAD_LOCATION no están incluidas en el backup automático. Respaldarlas por separado a un disco externo si es necesario. La biblioteca histórica permanece en el backup frío hasta que se restaure.

🔥 Problemas comunes

Problema Solución
Fotos no aparecen tras subir Administration → Jobs → Run all
Machine learning muy lento Normal en el primer análisis o si el volumen sale del SSD
Error EIO en encoded-video El disco puede tener problemas — revisar `sudo dmesg
ENOTFOUND shared_redis Confirmar que shared_redis y shared_net existen y que shared_net es external: true en el compose de Immich. No cambiarla a false: Compose crearía immich_shared_net, aislada de Redis.
ENOENT en cualquier subcarpeta al arrancar Verificar primero que UPLOAD_LOCATION monte la biblioteca correcta y no un directorio vacío. La biblioteca activa está en /mnt/ssd_512/immich/library y debe contener upload, library, thumbs, profile, backups y encoded-video, cada una con su marcador .immich.

🔐 Seguridad

  • Expuesto públicamente vía Caddy (HTTPS). La biblioteca activa está en el SSD; los assets históricos siguen en el backup frío.
  • Las credenciales de la base de datos están en .env.
  • Limitar los recursos de CPU/RAM en el compose para evitar que el ML cuelgue el servidor.