Ir al contenido
  1. Posts/

Immich y almacenamiento barato: discos, NAS, backups y el miedo sano a perder fotos

Immich es uno de esos proyectos que te hacen mirar Google Photos con una mezcla rara de alivio y sospecha. Alivio porque por fin hay una alternativa self-hosted que no parece una demo abandonada. Sospecha porque las fotos familiares no son una colección cualquiera de archivos. Son el tipo de dato que no puedes descargar otra vez si algo sale mal.

Por eso no me gusta hablar de Immich como “lo instalas y ya tienes tu Google Photos casero”. Técnicamente puedes hacerlo. En la práctica, si vas a meter ahí años de fotos, vídeos, recuerdos familiares y móviles sincronizando cada noche, lo primero no debería ser el docker compose. Lo primero debería ser pensar dónde van a vivir esos datos, cómo se copian, cómo se restauran y qué pasa cuando el disco barato decide que hoy le apetece jubilarse.

Yo soy muy partidario de Immich. Me parece de lo mejor que ha salido en self-hosting doméstico en los últimos años. Pero precisamente por eso conviene tratarlo con respeto. Una biblioteca de fotos no es un contenedor más en el dashboard.

El dato importante no es Immich
#

La primera idea que intento tener clara es esta: Immich no es lo importante. Lo importante son los originales.

La aplicación se puede reinstalar. La base de datos se puede reconstruir si tienes copias sanas. Los thumbnails se pueden regenerar. Los modelos de reconocimiento pueden volver a correr. La interfaz puede cambiar. Lo que no vuelve son las fotos del primer año de tu hija, el viaje familiar, el vídeo tonto que solo existe en un móvil o el documento que fotografiaste porque no tenías escáner cerca.

Esto cambia por completo cómo diseño el almacenamiento. No pienso “dónde pongo Immich”. Pienso “dónde pongo los originales para que sobrevivan a mis propias ideas brillantes”.

En una instalación doméstica normal separaría mentalmente cuatro piezas:

  • Biblioteca de originales.
  • Base de datos de Immich.
  • Cachés, miniaturas y machine learning.
  • Backups y copias externas.

No todas tienen el mismo valor. Los originales son sagrados. La base de datos importa mucho porque contiene álbumes, metadatos, usuarios, relaciones y estado interno. Las miniaturas son cómodas, pero prescindibles. Los modelos y cachés me importan bastante poco.

Si no haces esta separación, acabas copiándolo todo igual o, peor, no copiando bien nada.

El atractivo peligroso del disco grande barato
#

El almacenamiento barato seduce mucho. Compras un disco grande, montas un NAS o una caja USB, creas una carpeta enorme y listo. Sobre el papel parece perfecto para fotos. Mucho espacio, bajo coste por terabyte y cero suscripciones.

El problema es que barato no significa malo, pero sí significa que tienes que asumir sus límites. Un disco grande concentra mucho riesgo. Si falla, no pierdes una carpeta pequeña. Pierdes años. Y cuanto más grande es el disco, más largas son las restauraciones, más lentas pueden ser las verificaciones y más tentador es posponer el mantenimiento.

Yo no pondría una biblioteca seria de Immich en un único disco sin copia. Ni aunque sea nuevo. Ni aunque tenga buenas reviews. Ni aunque SMART diga que está perfecto. SMART ayuda, pero no es un contrato firmado por el universo.

Tampoco me gusta la falsa tranquilidad de “lo tengo en RAID”. RAID puede salvarte de la caída de un disco. No te salva de borrar mal, de una corrupción silenciosa, de ransomware, de una actualización que toca lo que no debe, de un incendio, de un robo o de ti mismo haciendo una prueba a las tantas. RAID es disponibilidad. Backup es recuperación.

Para fotos, esa diferencia importa muchísimo.

NAS, servidor y discos: dónde lo pondría
#

Si tuviera que montar Immich en casa desde cero, intentaría no mezclar cálculo y almacenamiento más de lo necesario.

La app puede vivir en un mini PC, una VM, un contenedor Docker o un nodo del homelab con CPU decente. El almacenamiento puede vivir en un NAS o en un servidor con discos grandes. Lo importante es que la ruta entre ambos sea estable y que no dependa de una cadena absurda de servicios.

Una opción razonable es:

  • Immich en Docker Compose sobre una VM o servidor pequeño.
  • PostgreSQL en el mismo host o en un host que controles bien.
  • Biblioteca de fotos en un volumen montado desde NAS o almacenamiento local fiable.
  • Backups de base de datos y originales por separado.

Otra opción aún más simple es poner todo en un NAS que soporte contenedores, si el NAS tiene potencia suficiente y no vas a exigirle mucho machine learning. No es lo más elegante, pero para muchas casas puede ser más sensato que repartir piezas por medio rack.

Lo que evitaría es montar Immich sobre almacenamiento remoto frágil, WiFi, discos USB que se desconectan, shares que cambian de nombre o dependencias DNS raras. Si el servicio que guarda tus fotos necesita que funcionen cinco cosas antes de ver un archivo, estás comprando papeletas para una tarde desagradable.

Mi regla con los originales
#

Los originales deberían existir en más de un sitio y en un formato que puedas entender sin Immich.

Esto para mí es obligatorio. Si mañana Immich desaparece, cambia de rumbo o rompe una migración, quiero poder entrar en una carpeta y ver fotos y vídeos organizados de una forma razonable. No necesito que sea perfecta. Necesito que no sea una caja negra.

Immich guarda los archivos de forma bastante accesible si respetas su estructura, pero aun así conviene probar el escenario mental: tengo un disco con la biblioteca, no tengo la app funcionando, ¿puedo recuperar mis fotos?

Si la respuesta te incomoda, arregla eso antes de invitar a toda la familia a sincronizar móviles.

También me gusta mantener una exportación o copia adicional de los originales más importantes. No tiene que estar online. Puede ser un disco externo actualizado cada cierto tiempo y guardado fuera del servidor. Puede ser una copia cifrada en un proveedor cloud. Puede ser otro NAS en otra ubicación. Lo que no puede ser es “algún día lo haré”.

Las fotos familiares tienen una ventaja curiosa: no cambian hacia atrás. Entran nuevas fotos, pero las antiguas no deberían mutar cada día. Eso facilita hacer copias frías, verificarlas y dormir mejor.

Base de datos: pequeña, crítica y fácil de olvidar
#

La base de datos ocupa mucho menos que la biblioteca, pero no por eso es secundaria.

En Immich, PostgreSQL guarda el estado de la aplicación. Usuarios, álbumes, recursos, metadatos, trabajos, relaciones y mucha información que no quieres perder. Si conservas los originales pero pierdes la base de datos, no pierdes los recuerdos, pero sí puedes perder mucho orden y contexto. Es recuperable hasta cierto punto, pero no es divertido.

Aquí no haría inventos. Dump periódico, copia fuera del host principal y prueba de restauración. No basta con copiar la carpeta de PostgreSQL a lo bruto mientras está escribiendo. Para una base de datos viva prefiero un backup consistente.

Mi rutina ideal sería:

  • Dump diario de PostgreSQL.
  • Copia de ese dump a otro almacenamiento.
  • Retención corta local y retención más larga externa.
  • Prueba ocasional levantando una restauración aislada.

No hace falta complicarse con una plataforma enorme. Hace falta que el backup exista, que sea consistente y que alguien haya probado que arranca.

Qué haría con miniaturas y machine learning
#

Las miniaturas, previews y datos de machine learning ocupan espacio. También consumen CPU o GPU si toca regenerarlos. Aun así, yo no los trataría igual que los originales.

Si tengo espacio de sobra, puedo incluirlos en una copia local para acelerar restauraciones. Pero si tengo que elegir, priorizo originales y base de datos. Siempre.

La regeneración puede tardar muchas horas en bibliotecas grandes. Eso hay que tenerlo en cuenta. Restaurar Immich no termina cuando arranca el contenedor. Puede quedar un buen rato de trabajos internos, indexación, miniaturas y reconocimiento. Pero prefiero pagar ese coste antes que diseñar backups enormes donde lo prescindible tape lo importante.

También vigilaría el crecimiento. Las bibliotecas de fotos tienen una tendencia preciosa a parecer pequeñas hasta que varios móviles empiezan a subir vídeo 4K. El vídeo se come el NAS con modales de invitado educado y apetito de hipopótamo financiero.

El backup que me dejaría tranquilo
#

Para una casa normal, mi esquema mínimo sería algo así:

  • Originales en almacenamiento principal con redundancia local si es posible.
  • Backup local en otro equipo o disco.
  • Backup externo cifrado.
  • Dump de PostgreSQL incluido en ambos backups.
  • Prueba de restauración cada cierto tiempo.

Si el presupuesto es ajustado, prefiero una copia externa buena antes que comprar otro cacharro para hacer la arquitectura más bonita. Un disco externo rotado manualmente no es glamuroso, pero puede salvarte. Un backup cifrado a un proveedor tipo S3 compatible también puede encajar si controlas costes y ancho de banda.

La copia externa debería estar protegida contra borrados accidentales. Si sincronizas la carpeta principal y borras media biblioteca por error, puedes replicar el desastre. Mejor usar snapshots, versionado, retención o backups incrementales con historial. La sincronización pura es cómoda, pero no siempre es backup.

También pondría alertas simples. No necesito una catedral de observabilidad. Necesito saber si el backup ha fallado durante tres días, si el disco se está llenando o si el destino externo ya no acepta datos.

La restauración que probaría
#

Una prueba sensata no tiene que ser heroica. Yo haría esto:

  1. Levantar una VM o carpeta aislada.
  2. Restaurar un dump de PostgreSQL.
  3. Restaurar una parte de la biblioteca de originales.
  4. Arrancar Immich apuntando a esa copia.
  5. Verificar que aparecen usuarios, álbumes y fotos.
  6. Abrir varios vídeos y fotos antiguas.
  7. Comprobar que no he dependido de rutas absolutas absurdas.

La primera restauración suele enseñar vergüenzas. Una variable mal documentada, permisos raros, un volumen que creías incluido y no estaba, un dump que se generaba vacío, un script que solo funcionaba desde una ruta concreta. Mejor descubrirlo con calma.

También mediría tiempos. Si restaurar la base tarda minutos pero copiar la biblioteca tarda veinte horas, tu RTO real no es “cuando arranque Docker”. Es cuando los datos estén donde tienen que estar. Parece obvio, pero en homelab somos especialistas en ignorar lo obvio si hay un panel bonito cerca.

Coste real: euros, tiempo y ruido
#

El coste de Immich no es solo el servidor.

Hay discos. Hay backups externos. Hay electricidad. Hay tiempo de mantenimiento. Hay ancho de banda si subes copias fuera. Hay reemplazo de discos cada ciertos años. Hay una parte mental: saber que tú eres responsable de esas fotos.

Comparado con Google Photos o iCloud, puede seguir compensando. Sobre todo si tienes mucha biblioteca, quieres control local o te incomoda depender de una nube comercial. Pero no lo vendería como gratis. Self-hosting gratis suele significar que la factura viene camuflada de domingo por la tarde.

Mi forma de justificarlo es otra. No monto Immich solo para ahorrar. Lo monto para tener control, copias propias, acceso rápido en local y menos dependencia de cambios comerciales. El ahorro puede llegar, pero si es el único motivo, cuidado. La nube es cara, sí. Perder fotos por ahorrar mal sale peor.

Lo que no haría
#

No migraría toda la familia el primer día. Primero probaría con una biblioteca pequeña, un móvil, backups y restauración.

No usaría un disco único como destino final.

No confiaría en RAID como si fuera backup.

No dejaría PostgreSQL fuera del plan de copias.

No montaría la biblioteca en un share que a veces aparece y a veces no.

No expondría Immich a Internet sin pensar bien autenticación, actualizaciones y reverse proxy.

No actualizaría a ciegas si la instancia guarda fotos importantes. Leer notas de versión y hacer backup antes no es paranoia. Es higiene.

Mi conclusión
#

Immich merece sitio en un homelab serio, pero no como juguete impulsivo. Es una pieza que toca recuerdos, familia y datos únicos. Eso exige una mentalidad distinta.

Para mí, el buen diseño empieza por proteger originales y base de datos. Después viene la comodidad, la app móvil, el reconocimiento de caras, los álbumes y todo lo que hace que Immich sea tan atractivo. Si inviertes el orden, montas una experiencia bonita sobre una base nerviosa.

El almacenamiento barato está bien. Los discos grandes están bien. Un NAS casero está bien. Pero con fotos familiares hay que tener un miedo sano. No miedo paralizante, sino ese punto de respeto que te obliga a probar restauraciones, separar capas y no llamar backup a cualquier carpeta sincronizada.

Immich puede darte una nube de fotos propia muy digna. Solo conviene recordar que, cuando la nube es tuya, el susto también.