Solución de la comunidad

Cómo instalar Immich en otra unidad en ZimaOS

A community guide for moving Immich away from the ZimaOS system drive, followed by troubleshooting reports, storage-layout questions, and an official recommendation to use ZimaOS migration tools where possible.

Immich puede consumir mucho más almacenamiento del que la unidad del sistema de ZimaOS está diseñada para soportar, especialmente cuando empiezan a crecer las cargas del teléfono, las miniaturas, los vídeos codificados, los modelos de aprendizaje automático y la base de datos PostgreSQL. La guía original de IceWhale Community resolvió este problema en abril de 2025 cambiando determinadas asignaciones de volúmenes durante una Instalación personalizada de ZimaOS, para que los datos de Immich residieran en un volumen RAID en lugar de la unidad de ZimaOS.

Esa solución alternativa es útil para entender cómo está conectado el contenedor, pero no debe considerarse una receta universal actual. Respuestas posteriores informaron de instalaciones fallidas, reinicios repetidos, un contenedor de PostgreSQL en estado incorrecto e incluso cargas de fotos dañadas después de experimentar con las asignaciones. ZimaOS también añadió y perfeccionó herramientas de migración integradas, mientras que las versiones actuales de Docker Compose de Immich utilizan variables del lado del host, como UPLOAD_LOCATION y DB_DATA_LOCATION. En un sistema actual, utiliza primero la ruta de migración integrada de ZimaOS cuando se ajuste a tu objetivo y reserva la edición manual de volúmenes para los casos en los que necesites específicamente una distribución de almacenamiento personalizada para Immich.

Qué cambió la guía original de Immich para ZimaOS de 2025

El tutorial de la comunidad utilizaba Instalación personalizada de ZimaOS, o la pantalla de configuración de la aplicación después de la instalación, y recorría las pestañas del servicio una por una. Su objetivo era redirigir los datos persistentes de Immich a una ubicación RAID de mayor capacidad, manteniendo las rutas del lado del contenedor que Immich esperaba.

Pantalla de instalación personalizada de Immich en ZimaOS que muestra las pestañas de configuración del servicio
La guía original de abril de 2025 comienza en Instalación personalizada de Immich o en la pantalla de configuración de la aplicación en ZimaOS.

Base de datos: mueve la ruta del host y conserva la ruta del contenedor

En la pestaña de la base de datos, el autor cambió la ubicación de almacenamiento del lado de ZimaOS a una ruta RAID y conservó el sufijo del directorio de la base de datos. El principio importante era no reescribir la ruta del lado derecho dentro del contenedor. Cambiar el destino del contenedor puede interrumpir el servicio, porque PostgreSQL espera encontrar sus datos en la ruta definida por ese paquete de Immich o por esa configuración de Compose.

Asignación del volumen de la base de datos de Immich en ZimaOS redirigida a otra unidad de almacenamiento
El ejemplo de la comunidad cambia la ubicación de la base de datos en el host y conserva el destino del lado de Immich.

La documentación actual de Docker Compose de Immich expone esta ubicación del host mediante DB_DATA_LOCATION. Immich también advierte que los recursos compartidos de red no son compatibles con la base de datos PostgreSQL, por lo que la base de datos debe permanecer en un almacenamiento local conectado de forma fiable, en lugar de un recurso compartido SMB o NFS.

Aprendizaje automático: redirige la caché de modelos solo si es necesario

La guía original también redirigía la caché de modelos de aprendizaje automático del lado del host, dejando sin cambios la ruta de la caché del lado del contenedor. Mover esta caché puede ahorrar espacio en un disco del sistema pequeño, aunque es menos importante que proteger la biblioteca de fotos y la base de datos, ya que los modelos descargados normalmente se pueden volver a crear.

Caché de modelos de aprendizaje automático de Immich asignada a un almacenamiento alternativo de ZimaOS
La configuración de 2025 trasladó la ruta del host de la caché de modelos al grupo de almacenamiento seleccionado.

Servidor de Immich: la sección de volúmenes más delicada

La pestaña del servidor de Immich fue la parte que al autor le pareció más fácil de romper. Se añadieron asignaciones de host adicionales para que las cargas y otros directorios multimedia persistentes se resolvieran en el almacenamiento RAID. El hilo recalca repetidamente que solo deben cambiarse las ubicaciones del lado del host previstas y que las rutas del lado del contenedor no deben modificarse sin cuidado.

Asignaciones de volúmenes del servidor de Immich configuradas para almacenar archivos multimedia en una matriz RAID de ZimaOS
El ejemplo original de la pestaña del servidor añade varias asignaciones de host para el almacenamiento multimedia en la matriz RAID.

La pestaña de Redis no requería cambios de almacenamiento en el tutorial original. Esta es otra razón para no aplicar una búsqueda y reemplazo indiscriminados a todas las entradas de volúmenes: los distintos servicios de Immich tienen diferentes requisitos de persistencia.

La actualización más importante del debate posterior es que ZimaOS ahora ofrece un flujo de trabajo de migración específico. Una respuesta del equipo de IceWhale en el hilo advirtió expresamente que copiar manualmente los datos de las aplicaciones puede causar errores y recomendó usar la función de migración en la mayoría de los casos.

La guía actual de migración de datos de ZimaOS enumera tres categorías de almacenamiento que se pueden mover: imágenes de Docker, datos de aplicaciones de Docker y bases de datos de usuario. La ruta habitual es:

  1. Abre Configuración > Migración de datos.
  2. Selecciona la categoría de almacenamiento que quieres mover.
  3. Elige Modificar ubicación.
  4. Selecciona el disco de destino o el espacio de almacenamiento.
  5. Revisa la advertencia, inicia la migración y espera el informe de finalización.
Interfaz de migración de ZimaOS mencionada por un miembro del equipo de IceWhale en el debate sobre Immich
Más tarde, un miembro del equipo de IceWhale recomendó usar la función de migración de ZimaOS en lugar de copiar manualmente los datos de las aplicaciones.

Esta migración integrada es el mejor punto de partida cuando tu objetivo es simplemente mantener los datos de las aplicaciones de Docker fuera de la unidad del sistema de ZimaOS. También reduce la probabilidad de que queden rutas, permisos o enlaces simbólicos incoherentes después de un traslado manual.

¿Qué ocurre si quieres Immich en el SSD, pero las fotos en RAID?

Una pregunta posterior en el hilo planteó una distribución a largo plazo más útil: mantener la aplicación y los componentes sensibles al rendimiento en el SSD, pero colocar la biblioteca de fotos grande en RAID. El autor original no había probado esa configuración dividida, por lo que el propio hilo no proporciona una receta verificada para ZimaOS.

La documentación actual de Immich proporciona dos conceptos que ayudan a definir la distribución adecuada. Para los medios cargados en Immich, la configuración oficial de Docker Compose utiliza UPLOAD_LOCATION como ruta del host para el almacenamiento de medios. Para una colección existente de fotos que Immich deba indexar sin importarla a su área de cargas administrada, Immich admite bibliotecas externas.

En una implementación estándar actual de Immich con Compose, los valores de entorno relevantes tienen un aspecto conceptual como este:

UPLOAD_LOCATION=/ruta/al/almacenamiento-de-medios-de-gran-tamaño
DB_DATA_LOCATION=/ruta/al/almacenamiento-local-de-la-base-de-datos

No pegues esas rutas a ciegas en una definición de aplicación antigua de ZimaOS. Primero revisa la configuración de Compose o de instalación personalizada utilizada por el paquete exacto de Immich que tienes instalado. El archivo oficial actual de Compose de Immich monta ${UPLOAD_LOCATION} en el contenedor del servidor y ${DB_DATA_LOCATION} en PostgreSQL, mientras que las versiones anteriores y los paquetes de la comunidad pueden usar destinos internos diferentes.

Para consultar la información actualizada del proyecto, consulta la guía de instalación de Immich con Docker Compose y la guía de bibliotecas externas de Immich.

Por qué los cambios manuales de volúmenes pueden romper Immich

Las respuestas muestran varios modos de fallo después de que los usuarios cambiaran las asignaciones de almacenamiento. Un participante informó inicialmente de que la aplicación había dejado de funcionar y más tarde dijo que empezó a funcionar después de varios reinicios. Otro usuario afirmó que varios experimentos habían dejado Immich inutilizable y que algunas cargas desde el teléfono se habían dañado. Un informe posterior describió fallos de instalación repetidos relacionados con un servicio de PostgreSQL en estado no saludable.

Esos informes no demuestran que exista un único error compartido. Sí muestran por qué la migración del almacenamiento debe tratarse como una operación de integridad de datos y no como un simple cambio estético de ruta. Entre las causas habituales que conviene comprobar se incluyen:

  • Destino incorrecto dentro del contenedor: la ruta del host se puede personalizar, pero la ruta dentro del contenedor debe coincidir con la que espera esa implementación de Immich.
  • Permisos: el destino debe permitir escrituras al usuario del contenedor o al servicio propietario de los archivos.
  • Ubicación de la base de datos: PostgreSQL necesita un almacenamiento local fiable y no debe colocarse en un recurso compartido de red no compatible.
  • Movimientos incompletos: copiar manualmente solo una parte del árbol de datos existente de Immich puede dejar la base de datos y el almacén multimedia desincronizados.
  • Incompatibilidad de versiones: el diseño de volúmenes de Immich ha evolucionado, por lo que las instrucciones escritas para un paquete antiguo pueden no coincidir con Immich v2, v3 o una definición posterior de la tienda de aplicaciones de ZimaOS.

Lista de comprobación para una migración más segura del almacenamiento de Immich

  1. Haz una copia de seguridad de la base de datos de Immich y de los archivos multimedia irremplazables antes de cambiar cualquier asignación de volúmenes.
  2. Confirma qué versión de Immich y qué paquete de Immich de la tienda de aplicaciones de ZimaOS estás ejecutando.
  3. Decide si quieres mover todos los datos de la aplicación o solo la biblioteca multimedia grande.
  4. Si vas a mover los datos generales de las aplicaciones de ZimaOS, prueba primero Configuración > Migración de datos antes de editar las rutas de cada contenedor.
  5. Si utilizas una configuración personalizada de Immich, registra todas las rutas existentes del host y los destinos dentro del contenedor antes de cambiar nada.
  6. Mantén sin cambios las rutas de destino dentro del contenedor, a menos que la documentación de tu versión exacta de Immich indique explícitamente que se requiere una ruta diferente.
  7. Asegúrate de que el sistema de archivos de destino esté montado y permita escrituras antes de volver a crear los contenedores.
  8. No coloques el directorio de datos de PostgreSQL en un recurso compartido de red no compatible.
  9. Después de la migración, sube un pequeño conjunto de prueba y verifica los originales, las miniaturas, la reproducción de videos, los metadatos y las nuevas cargas desde el móvil antes de mover el resto de tu biblioteca.
  10. Conserva la copia antigua hasta haber verificado tanto la base de datos como los archivos multimedia en el nuevo almacenamiento.

Qué aportaron las respuestas de la comunidad a la guía original

Las respuestas más útiles cambiaron la interpretación del tutorial original de tres maneras. Primero, demostraron que la asignación manual podía funcionar, pero era sensible a la versión exacta de la aplicación, los permisos de almacenamiento y el estado tras el reinicio. Segundo, los usuarios querían una configuración dividida, con el SSD por un lado y RAID por otro, en lugar de mover todos los componentes de Immich al mismo arreglo. Tercero, un miembro del equipo de IceWhale recomendó utilizar la función de migración integrada y advirtió que la copia manual podía producir errores.

Por eso, la publicación original de 2025 debe entenderse como un ejemplo práctico de la comunidad para su época, no como una especificación inmutable para todas las versiones posteriores de Immich o ZimaOS. Si la interfaz actual de ZimaOS ya no muestra los mismos campos de Instalación personalizada que aparecen en las capturas de pantalla, sigue la interfaz de migración actual e inspecciona la configuración de Compose de la aplicación instalada en lugar de intentar recrear los campos antiguos.

Preguntas frecuentes sobre el almacenamiento de Immich en ZimaOS

¿Puedo instalar Immich en una unidad RAID en lugar de la unidad del sistema de ZimaOS?

Sí, pero distingue entre mover los datos de aplicaciones de ZimaOS y diseñar una estructura multimedia personalizada para Immich. En las versiones actuales de ZimaOS, usa primero la función integrada de Migración de datos cuando tu objetivo sea reubicar los datos de aplicaciones de Docker. Las asignaciones manuales de volúmenes deben reservarse para un diseño deliberado de almacenamiento dividido.

¿Debo cambiar la ruta del volumen de Immich que aparece a la derecha en Instalación personalizada?

No, a menos que la documentación de tu implementación exacta de Immich lo indique. La guía original de la comunidad cambiaba las ubicaciones en el host, pero conservaba los destinos dentro del contenedor. Reescribir un destino interno puede impedir que el servicio encuentre los directorios esperados de la base de datos, la caché o los archivos multimedia.

¿Puedo mantener Immich en el SSD y almacenar solo las fotos en RAID?

Sí, en principio, y las versiones actuales de Immich permiten elegir una ubicación de carga en el host, así como montar bibliotecas externas. La asignación exacta en ZimaOS depende del paquete y la versión de Immich instalados, así que verifica la definición actual de Compose antes de cambiar las rutas.

¿Por qué PostgreSQL aparece en estado no saludable después de cambiar la ubicación del almacenamiento?

Entre las posibles causas se incluyen un destino de montaje incorrecto, permisos insuficientes, archivos de base de datos incompletos o almacenamiento no compatible. Comprueba que todo el directorio de la base de datos se haya movido correctamente, que el destino sea local y permita escritura, y que el destino del contenedor siga coincidiendo con la configuración de Compose instalada.

¿Puedo simplemente copiar la carpeta AppData de Immich a otro disco?

Ese no es el procedimiento recomendado actualmente en ZimaOS. Un miembro del equipo de IceWhale advirtió específicamente en el hilo que la copia manual puede causar errores y recomendó usar la función de migración para la mayoría de los cambios de ubicación de aplicaciones.

¿La guía ilustrada de abril de 2025 sigue vigente?

Sigue siendo útil como explicación histórica de las asignaciones de volúmenes de ZimaOS, pero tanto las funciones de migración de ZimaOS como la estructura de Compose de Immich han cambiado desde entonces. Trata las capturas de pantalla como referencia de la configuración original y, antes de aplicar cualquier cambio, verifica los campos y las rutas que muestra tu instalación actual.