Saltar al contenido principal

Preguntas Frecuentes

Usuario

¿Cómo puedo restablecer la contraseña de administrador?

La contraseña de administrador puede ser restablecida ejecutando el comando reset-admin-password en el servidor de Immich.

¿Cómo puedo ver una lista de todos los usuarios en Immich?

Puedes ver la lista de todos los usuarios ejecutando el comando list-users en el servidor de Immich.


Aplicación Móvil

¿Cuál es la diferencia entre los íconos de nube en la aplicación móvil?

ÍconoDescripción
cloudEl recurso está disponible solo en el servidor y fue subido desde otro dispositivo (como el cliente web) o fue eliminado de este dispositivo después de la carga
cloud-crossEl recurso está disponible solo localmente y aún no se ha respaldado
cloud-doneEl recurso fue subido desde este dispositivo y ahora está respaldado en el servidor; el archivo original aún está en el dispositivo

No puedo iniciar sesión en la aplicación después de una actualización. ¿Qué puedo hacer?

Verifica que tanto la aplicación móvil como el servidor estén ejecutando la misma versión (mayor y menor).

nota

Las actualizaciones en las tiendas de aplicaciones a veces toman más tiempo porque las tiendas (Google Play Store y Apple App Store) necesitan aprobar la actualización primero, y eso puede tomar un tiempo.

Si aún no puedes iniciar sesión en la aplicación, prueba lo siguiente:

  • Verifica los registros móviles
  • Asegúrate de que las credenciales de inicio de sesión sean correctas iniciando sesión en la aplicación web

¿Por qué el respaldo en primer plano se detiene cuando salgo de la aplicación? ¿No debería transferirse la tarea al respaldo en segundo plano?

El respaldo en primer plano y el respaldo en segundo plano son dos mecanismos separados. No se comunican ni interactúan entre sí.

El respaldo en primer plano es controlado por la acción del usuario, mientras que el respaldo en segundo plano es controlado por el sistema operativo de tu dispositivo. Cuando la aplicación se pone en segundo plano, la invocación de tareas en segundo plano se delega al programador del sistema operativo del dispositivo. Este decide cuándo y por cuánto tiempo puede ejecutarse la tarea en segundo plano.

Los comportamientos varían según el fabricante del dispositivo y el sistema operativo, pero están mayormente relacionados con las políticas de ahorro de batería.

¿Por qué no funciona el respaldo en segundo plano en iOS?

En iOS (iPhone y iPad), el sistema operativo determina si una aplicación particular puede invocar tareas en segundo plano basándose en múltiples factores, sobre los cuales la aplicación Immich no tiene control. Para aumentar la probabilidad de que se ejecute la tarea de respaldo en segundo plano, sigue los pasos a continuación:

  • Habilita la Actualización en Segundo Plano para Immich en los ajustes de iOS en Ajustes > General > Actualización en Segundo Plano.
  • Desactiva el Modo de Bajo Consumo cuando no sea necesario, ya que esto puede prevenir que las aplicaciones se ejecuten en segundo plano.
  • Desactiva la Actualización en Segundo Plano para aplicaciones que no necesiten ejecutar tareas en segundo plano. Esto reducirá la competencia por la invocación de tareas en segundo plano para Immich.
  • Usa la aplicación Immich con más frecuencia.

¿Por qué no funcionan las funcionalidades de la aplicación móvil con un certificado autofirmado, Autenticación Básica, encabezados personalizados o TLS mutuo?

Estas características de red son experimentales. A menudo no funcionan con la reproducción de videos, la carga o descarga de recursos y otras funcionalidades. Muchas de estas limitaciones están documentadas en #15230. En lugar de estas características experimentales, recomendamos usar la funcionalidad de cambio de URL, una VPN o un certificado SSL de confianza gratuito para tu dominio.

No estamos desarrollando activamente estas características y no podremos proporcionar soporte, pero damos la bienvenida a las contribuciones para mejorarlas. Por favor, discute cualquier PR grande con nuestro equipo de desarrollo para asegurarte de que tu tiempo no sea desperdiciado.

¿Por qué aún no se ha actualizado la aplicación móvil?

Las tiendas de aplicaciones pueden tardar unos días en aprobar nuevas versiones de la aplicación. Si estás impaciente, los APKs de Android pueden descargarse desde los releases de GitHub.


Recursos

¿Immich modifica los archivos?

No, Immich no modifica los archivos originales. Todos los metadatos editados se guardan en archivos secundarios .xmp y en la base de datos. Sin embargo, Immich eliminará los archivos originales que hayan sido enviados a la papelera cuando ésta se vacíe desde la interfaz de usuario de Immich.

¿Por qué los nombres de mis archivos aparecen como una cadena aleatoria en el gestor de archivos?

Cuando el Plantilla de Almacenamiento está desactivado (por defecto), Immich guarda los nombres de los archivos como una cadena aleatoria (también conocida como UUIDs aleatorios) para evitar duplicados. Para recuperar los nombres originales de los archivos, debes habilitar la Plantilla de Almacenamiento y luego ejecutar la tarea de MIGRACIÓN DE PLANTILLA DE ALMACENAMIENTO. Se recomienda leer sobre la Plantilla de Almacenamiento antes de activarla.

¿Puedo agregar mi biblioteca de fotos existente?

Sí, con una Biblioteca Externa.

¿Qué sucede con los archivos existentes después de elegir una nueva Plantilla de Almacenamiento?

Los cambios en la plantilla solo se aplicarán a los nuevos recursos. Para aplicar la plantilla retroactivamente a los recursos subidos previamente, ejecuta la Tarea de Migración de Almacenamiento, disponible en la página de Tareas.

¿Por qué solo las fotos y no los videos se están cargando en Immich?

Esto sucede frecuentemente al usar un proxy inverso frente a Immich. Asegúrate de configurar tu proxy inverso para permitir solicitudes grandes. Además, verifica el espacio en disco de tu proxy inverso. En algunos casos, los proxies almacenan en caché las solicitudes en disco antes de pasarlas, y si el disco se llena, la solicitud falla.

Si estás usando Cloudflare Tunnel, ten en cuenta que establecen un tamaño máximo de archivo de 100 MB que no puede ser cambiado. A veces, archivos más grandes que esto pueden funcionar, potencialmente hasta 1 GB. Sin embargo, el límite oficial es de 100 MB. Si tienes problemas, recomendamos cambiar a otra forma de implementación de red.

¿Por qué algunas fotos se almacenan en el sistema de archivos con la fecha incorrecta?

Hay diferentes escenarios que pueden llevar a esta situación. La solución es volver a ejecutar la tarea de migración de almacenamiento. La tarea se ejecuta automáticamente una vez por recurso después de la carga. Si originalmente falló la extracción de metadatos, las tareas fueron borradas/canceladas, etc., la tarea puede no haberse ejecutado automáticamente en la primera ocasión.

¿Cómo puedo ocultar fotos de la línea de tiempo?

Puedes archivarlas.

¿Cómo puedo respaldar datos desde Immich?

Consulta Respaldo y Restauración.

¿Immich soporta la lectura de metadatos existentes de etiquetas faciales?

Sí, crea nuevas caras y personas a partir de los metadatos de los recursos importados. Para más detalles, consulta la solicitud de funcionalidad #4348 y el PR #6455.

¿Immich soporta el filtrado de imágenes NSFW?

No, actualmente no lo hace. Hay una solicitud de funcionalidad abierta en GitHub.

¿Por qué hay tantas tareas de generación de miniaturas?

Hay tres tareas de miniaturas para cada recurso:

  • Desenfoque (thumbhash)
  • Vista previa (Webp)
  • Miniatura (Jpeg)

Además, hay tareas adicionales para miniaturas de personas (caras).

¿Por qué los archivos de WhatsApp no aparecen con la fecha correcta?

Los archivos enviados en WhatsApp son guardados sin metadatos. Por lo tanto, Immich no tiene forma de saber la fecha original del archivo cuando estos son subidos desde WhatsApp, ni el orden de llegada al dispositivo. Consulta #9116.

¿Qué sucede si un recurso existe en más de una cuenta?

No hay requisitos para que los recursos sean únicos entre los usuarios. Si varios usuarios suben la misma imagen, se procesa como si fuera un recurso distinto, y las tareas se ejecutan y las miniaturas se generan en consecuencia.

¿Por qué los videos HDR aparecen pálidos en el reproductor de Immich pero se ven normales después de la descarga?

Immich usa un reproductor con problemas conocidos de visualización de colores HDR. Estamos experimentando con un reproductor diferente que proporcione mejores perfiles de color para contenido HDR para futuras mejoras.

¿Por qué Immich transcodifica mis videos a una calidad más baja?

Immich siempre conserva tus archivos originales. Además de esto, genera una versión transcodificada por razones de compatibilidad y rendimiento.

¿Cómo puedo eliminar videos transcodificados sin eliminar el original?

La versión transcodificada de un recurso puede ser eliminada estableciendo una política de transcodificación que lo haga innecesario y luego ejecutando una tarea de transcodificación para ese recurso. Esto puede hacerse por recurso iniciando una tarea de transcodificación para un recurso único con el botón Actualizar videos codificados en las opciones del visor de recursos o para todos los recursos ejecutando tareas de transcodificación para todos los recursos desde la página de administración.

Para actualizar la política de transcodificación, navega a Administración > Configuración de Transcodificación de Videos > Política de Transcodificación y selecciona una política del menú desplegable. Esta política determinará si una transcodificación existente será eliminada o sobrescrita en la tarea de transcodificación. Si un video debe ser transcodificado según esta política, una transcodificación existente es sobrescrita. Si no, entonces es eliminada.

nota

Por ejemplo, supongamos que tienes transcodificaciones existentes con la política "Videos con resolución mayor a la normal o que no están en el formato deseado" y cambias a una política más restrictiva: "Videos que no están en el formato deseado." Si un recurso fue transcodificado solo debido a su resolución, ejecutar una tarea de transcodificación para ese recurso eliminará la transcodificación existente. Esto se debe a que la resolución ya no forma parte de la política de transcodificación y la transcodificación es innecesaria. De igual manera, si configuras la política a "No transcodificar ningún video" y ejecutas tareas de transcodificación para todos los recursos, esto eliminará todas las transcodificaciones existentes ya que son innecesarias.

¿Es posible comprimir imágenes durante el respaldo?

No. Nuestro principio de diseño es que los recursos originales deben permanecer siempre intactos.

¿Cómo puedo montar un volumen CIFS/Samba dentro de Docker?

Si no puedes o prefieres no montar Samba en el host (como en un entorno Windows), puedes montar el volumen dentro de Docker. A continuación, hay un ejemplo en el archivo docker-compose.yml.

Cambia tu nombre de usuario, contraseña, IP local y nombre del recurso compartido, y observa a continuación donde la línea - originals:/usr/src/app/originals, corresponde a la sección donde se creó el volumen originals. Puedes llamarlo como desees, y mapearlo al contenedor de Docker como prefieras. Por ejemplo, podrías cambiar originals: a Photos:, y cambiar - originals:/usr/src/app/originals por Photos:/usr/src/app/photos.

...
services:
immich-server:
...
volumes:
# No edites la siguiente línea. Si deseas cambiar la ubicación de almacenamiento de medios en tu sistema, edita el valor de UPLOAD_LOCATION en el archivo .env
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
+ - originals:/usr/src/app/originals
...
volumes:
model-cache:
+ originals:
+ driver_opts:
+ type: cifs
+ o: 'iocharset=utf8,username=USUARIO_AQUÍ,password=CONTRASEÑA_AQUÍ,rw' # cambia a `ro` si deseas solo lectura
+ device: '//direccioniplocal/nombredelrecurso'

Álbumes

¿Puedo conservar mi estructura de álbum existente al importar activos en Immich?

Sí, utilizando el CLI de Immich junto con la opción --album.

¿Existe una forma de reordenar las fotos dentro de un álbum?

No, no todavía. Para actualizaciones sobre esta característica planificada, sigue la discusión en GitHub.


Biblioteca Externa

¿Puedo agregar una biblioteca externa mientras conservo la estructura de álbum existente?

No hemos implementado un mecanismo oficial para crear álbumes a partir de bibliotecas externas, pero hay algunos trucos de la comunidad que pueden ayudarte a lograrlo.

¿Qué sucede con los duplicados en las bibliotecas externas?

La verificación de duplicados solo existe para las bibliotecas de carga, utilizando el hash del archivo. Además, la verificación de duplicados no es global, sino por biblioteca. Por lo tanto, es posible una situación en la que el mismo archivo aparezca dos veces en la línea de tiempo, especialmente para bibliotecas externas.

¿Por qué mis ediciones de archivos no se guardan en bibliotecas externas de solo lectura?

Las imágenes en bibliotecas externas de lectura/escritura (el valor predeterminado) pueden editarse de manera normal. En las bibliotecas de solo lectura (:ro en el archivo docker-compose.yml), Immich no puede crear los archivos auxiliares .xmp para almacenar metadatos de archivos editados. Por esta razón, los metadatos (marca de tiempo, ubicación, descripción, calificación por estrellas, etc.) no pueden editarse para archivos en bibliotecas externas de solo lectura.

¿Cómo se manejan las eliminaciones de archivos en bibliotecas externas?

Immich intentará eliminar archivos originales que hayan sido enviados a la papelera cuando esta se vacíe. En bibliotecas externas de lectura/escritura (el valor predeterminado), Immich eliminará el archivo original. En las bibliotecas de solo lectura (:ro en el archivo docker-compose.yml), los archivos aún pueden enviarse a la papelera en la interfaz de usuario. Sin embargo, cuando se vacíe la papelera, los archivos volverán a aparecer en la línea de tiempo principal, ya que Immich no puede eliminar el archivo original.


Aprendizaje Automático

¿Cómo funciona la búsqueda inteligente?

Immich utiliza modelos CLIP. Un modelo de aprendizaje automático convierte cada imagen en una "representación", que es básicamente una cadena de números que codifica semánticamente lo que hay en la imagen. Lo mismo ocurre con el texto que introduces al realizar una búsqueda, y esa representación de texto se compara con las de las imágenes para encontrar las más similares. Por lo tanto, no se generan "etiquetas", "etiquetas descriptivas" ni "descripciones" que puedas consultar. Para obtener más información sobre CLIP y sus capacidades, lee sobre ello aquí.

¿Cómo funciona el reconocimiento facial?

Consulta Cómo funciona el reconocimiento facial para más detalles.

¿Cómo puedo desactivar el aprendizaje automático?

información

Desactivar el aprendizaje automático resultará en una mala experiencia de búsqueda y de la página 'Explorar', ya que dependen de él para funcionar correctamente.

El aprendizaje automático puede desactivarse en Administración > Configuración > Configuración de Aprendizaje Automático, ya sea completamente o por tipo de modelo. Por ejemplo, puedes optar por desactivar la búsqueda inteligente con CLIP, pero dejar habilitado el reconocimiento facial. Esto significa que el servicio de aprendizaje automático solo procesará los trabajos habilitados.

Sin embargo, desactivar todos los trabajos no desactivará el servicio de aprendizaje automático en sí. Para evitar que se inicie por completo en este caso, puedes comentar la sección immich-machine-learning en el archivo docker-compose.yml.

Estoy recibiendo errores sobre modelos corruptos o que fallan al descargar. ¿Qué hago?

Puedes eliminar el volumen de caché del modelo, donde se descargan los modelos. Esto proporcionará al servicio un entorno limpio para volver a descargar el modelo. Si los modelos fallan completamente al descargar, puedes descargarlos manualmente desde Hugging Face y colocarlos en la carpeta de caché.

¿Puedo usar un modelo CLIP personalizado?

No, esto no es compatible. Solo son compatibles los modelos enumerados en la página de Hugging Face. No dudes en hacer una solicitud de función si hay un modelo no incluido aquí que crees que debería ser agregado.

Quiero poder buscar en otros idiomas además del inglés. ¿Cómo puedo hacerlo?

Puedes cambiar a un modelo CLIP multilingüe. Consulta aquí para obtener instrucciones.

¿Soporta Immich el reconocimiento facial para videos?

La función de aprendizaje automático de Immich opera en la miniatura generada. Si hay un rostro visible en la miniatura del video, será detectado por el reconocimiento facial. El escaneo del video completo para detectar rostros podría ser implementado en el futuro.

¿Tiene Immich reconocimiento de animales?

No.

consejo

Puedes usar Búsqueda Inteligente para esto hasta cierto punto. Por ejemplo, si tienes un Golden Retriever y un Chihuahua, escribe estas palabras en la búsqueda inteligente y mira los resultados.

Estoy recibiendo muchas 'caras' que no son caras, ¿qué puedo hacer?

Puedes aumentar el PUNTAJE MÍNIMO DE DETECCIÓN a 0.8 para ayudar a prevenir miniaturas incorrectas. Configurar un puntaje demasiado alto (por encima de 0.9) podría filtrar demasiadas caras reales dependiendo de la biblioteca utilizada. Si solo deseas ocultar caras específicas, puedes ajustar la configuración 'CARAS MÍNIMAS DETECTADAS' en el panel de administración para elevar el estándar de lo que el algoritmo considera como una 'cara principal' para esa persona, reduciendo la probabilidad de que se elijan miniaturas incorrectas.

El volumen immich_model-cache ocupa mucho espacio, ¿cuál podría ser el problema?

Si instalaste varios modelos y elegiste no usar algunos de ellos, podría valer la pena eliminar los modelos antiguos que están en immich_model-cache. Para esto, puedes montar la caché del modelo y eliminar los modelos no deseados.

Pasos
docker run -it --rm -v immich_model-cache:/mnt-models alpine sh
cd /mnt-models
ls clip/ facial-recognition/
# rm -r clip/ABC facial-recognition/DEF # elimina modelos no usados

Rendimiento

¿Por qué Immich es lento en sistemas de baja memoria como la Raspberry Pi?

Immich utiliza opcionalmente transcodificación y aprendizaje automático para varias características. Sin embargo, puede ser demasiado pesado ejecutarlo en una Raspberry Pi. Puedes mitigarlo o alojar el contenedor de aprendizaje automático de Immich en un sistema más potente, o desactivar el aprendizaje automático por completo.

¿Puedo reducir el uso de CPU y RAM?

La copia de seguridad inicial es la más intensiva debido a la cantidad de trabajos en ejecución. Los trabajos que consumen más CPU son los de transcodificación y aprendizaje automático (Búsqueda Inteligente, Detección Facial), y en menor medida la generación de miniaturas. Aquí hay algunas formas de reducir su uso de CPU:

  • Reduce la concurrencia de trabajos a 1.
  • En Configuración > Configuración de Transcodificación > Hilos, configura el número de hilos a un número bajo como 1 o 2.
  • En Configuración > Configuración de Aprendizaje Automático > Reconocimiento Facial > Nombre del Modelo, puedes cambiar el modelo de reconocimiento facial a buffalo_s en lugar de buffalo_l. El primero es un modelo más pequeño y rápido, aunque menos preciso.
    • Para que el reconocimiento facial en nuevas imágenes funcione correctamente, debes volver a ejecutar el trabajo de detección facial para todas las imágenes después de esto.
  • A nivel de contenedor, puedes establecer restricciones de recursos para reducir aún más el uso.
    • Se recomienda aplicar estas restricciones después de tomar algunas de las medidas aquí para un mejor rendimiento.
  • Si estos cambios no son suficientes, consulta más arriba para obtener instrucciones sobre cómo desactivar el aprendizaje automático.

¿Puedo limitar el uso de CPU y RAM?

Por defecto, un contenedor no tiene restricciones de recursos y puede usar tanto de un recurso dado como permita el planificador del núcleo del host. Para limitar esto, puedes añadir lo siguiente al bloque docker-compose.yml de cualquier contenedor que desees tener recursos limitados.

docker-compose.yml
deploy:
resources:
limits:
# Número de hilos de CPU
cpus: '1.00'
# Gigabytes de memoria
memory: '1G'

Para más detalles, puedes consultar la documentación original de Docker o usar esta guía.

Ten en cuenta que las restricciones de memoria funcionan terminando el contenedor, por lo que esto puede introducir inestabilidad si se establece demasiado bajo.

¿Cómo puedo aumentar la velocidad del aprendizaje automático?

nota

Este consejo mejora el rendimiento general, no la latencia. Es decir, hará que los trabajos de Búsqueda Inteligente se procesen más rápido, pero no hará que las búsquedas individuales sean más rápidas.

Puedes aumentar el rendimiento general aumentando la concurrencia en los trabajos de aprendizaje automático (Búsqueda Inteligente, Detección Facial). Con mayor concurrencia, el sistema trabajará en más activos en paralelo. Puedes hacerlo navegando a Administración > Configuración > Configuración de Trabajos y aumentando la concurrencia según sea necesario.

peligro

En una máquina normal, 2 o 3 trabajos concurrentes probablemente puedan maximizar la CPU. La velocidad y latencia del almacenamiento pueden convertirse rápidamente en el factor limitante más allá de esto, especialmente al usar discos duros (HDDs).

La concurrencia puede aumentarse de manera más cómoda con una GPU, pero no debería superar los 16 en la mayoría de los casos.

No exagere con la concurrencia de trabajos porque probablemente estará sobrecargando el servidor considerablemente.

Mi servidor muestra Estado del Servidor Offline | Versión Desconocida. ¿Qué puedo hacer?

Necesitas habilitar WebSockets en tu proxy inverso.


Docker

¿Cómo puedo ver los registros de Immich?

Los componentes de Immich suelen implementarse usando Docker. Para ver los registros de los contenedores desplegados de Docker, puedes usar el CLI de Docker, específicamente el comando docker logs. Para ejemplos, consulta Ayuda de Docker.

¿Cómo puedo reducir la verbosidad de los registros de Redis?

Para disminuir los registros de Redis, puedes añadir la siguiente línea a la sección redis: en el archivo docker-compose.yml:

command: redis-server --loglevel warning

¿Cómo puedo ejecutar Immich como un usuario no root?

Puedes cambiar el usuario en el contenedor configurando el argumento user en el archivo docker-compose.yml para cada servicio. Es posible que necesites agregar puntos de montaje o volúmenes Docker para las siguientes rutas internas del contenedor:

  • immich-machine-learning:/.config
  • immich-machine-learning:/.cache
  • redis:/data

El usuario/grupo no root necesita acceso de lectura/escritura a los puntos de montaje de los volúmenes, incluyendo UPLOAD_LOCATION y /cache para machine-learning.

Volúmenes de Docker Compose

El elemento de volumen de nivel superior de Docker Compose no admite acceso no root; todos los volúmenes mencionados deben ser puntos de montaje locales.

Para un sistema más seguro, puedes agregar el siguiente bloque a cada contenedor.

docker-compose.yml
security_opt:
# Prevenir la elevación de privilegios después de que el contenedor ha iniciado
- no-new-privileges:true
cap_drop:
# Prevenir el acceso a tráfico de red sin procesar
- NET_RAW

¿Cómo puedo purgar datos de Immich?

Los datos de Immich vienen en dos formas:

  1. Metadata almacenada en una base de datos Postgres, ubicada en la carpeta DB_DATA_LOCATION (previamente en el volumen Docker pg_data).
  2. Archivos (originales, miniaturas, perfiles, etc.), almacenados en la carpeta UPLOAD_LOCATION, más información.
advertencia

Esto destruirá tu base de datos y reiniciará tu instancia, significando que empezarás desde cero.

Eliminar Immich (contenedores y volúmenes)
docker compose down -v

Después de eliminar los contenedores y volúmenes, hay algunos directorios que deben ser eliminados para restablecer Immich a una instalación nueva. Una vez eliminados, Immich puede reiniciarse y será una instalación limpia.

  • DB_DATA_LOCATION contiene la base de datos, información de medios y configuraciones.
  • UPLOAD_LOCATION contiene todos los medios cargados a Immich.
Portainer

Si usas portainer, detén la pila en portainer. Ve a la sección de volúmenes
y elimina todos los volúmenes relacionados con Immich, luego reinicia la pila.

¿Por qué el servicio de machine learning informa que los trabajadores se están bloqueando?

nota

Si el error dice que el trabajador se está saliendo, esto es normal. Es una característica diseñada para reducir el consumo de RAM cuando el servicio no está en uso.

Existen varias razones por las que esto puede ocurrir.

Si el error menciona SIGKILL o el código de error 137, lo más probable es que el servicio se esté quedando sin memoria. Considera aumentar la RAM del servidor o mover el servicio a un servidor con más RAM.

Si menciona SIGILL (nótese la falta de una K) o el código de error 132, lo más probable es que la CPU de tu servidor sea incompatible con Immich.

Base de Datos

¿Por qué estoy recibiendo errores de propiedad de la base de datos?

Si recibes errores de la base de datos como FATAL: data directory "/var/lib/postgresql/data" has wrong ownership al iniciar la base de datos, esto probablemente se deba a un problema con tu sistema de archivos. Los sistemas de archivos NTFS y ex/FAT/32 no son compatibles. Consulta aquí para más detalles.

¿Cómo puedo verificar la integridad de mi base de datos?

Los checksums de la base de datos están habilitados de forma predeterminada para nuevas instalaciones desde la versión v1.104.0. Puedes verificar si están habilitados ejecutando el siguiente comando. Un resultado de on significa que los checksums están habilitados.

Verificar si los checksums están habilitados
docker exec -it immich_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="show data_checksums"
data_checksums
----------------
on
(1 fila)

Si los checksums están habilitados, puedes verificar el estado de la base de datos con el siguiente comando. Un resultado normal es que todos sean 0s.

Verificar corrupción en la base de datos
docker exec -it immich_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="SELECT datname, checksum_failures, checksum_last_failure FROM pg_stat_database WHERE datname IS NOT NULL"
datname | checksum_failures | checksum_last_failure
-----------+-------------------+-----------------------
postgres | 0 |
immich | 0 |
template1 | 0 |
template0 | 0 |
(4 filas)

También puedes escanear la estructura de archivos de la base de datos de Postgres en busca de errores:

Escanear errores en la estructura de archivos
docker exec -it immich_postgres pg_amcheck --username=<DB_USERNAME> --heapallindexed --parent-check --rootdescend --progress --all --install-missing

Un resultado normal terminará algo así y regresará con un código de salida 0:

7470/8832 relaciones (84%), 730829/734735 páginas (99%)
8425/8832 relaciones (95%), 734367/734735 páginas (99%)
8832/8832 relaciones (100%), 734735/734735 páginas (100%)

Si se detecta corrupción, debes realizar una copia de seguridad inmediatamente antes de realizar cualquier otro trabajo en la base de datos. Para hacerlo, es posible que necesites establecer la bandera zero_damaged_pages=on para el servidor de la base de datos y permitir que pg_dumpall tenga éxito. Después de guardar una copia de seguridad, el siguiente paso recomendado es restaurar la base de datos desde una copia de seguridad saludable previa a la detección de la corrupción. El volcado de la base de datos dañada puede ser utilizado para recuperar manualmente cualquier cambio realizado desde la última copia de seguridad, si es necesario.

Las causas de una posible corrupción son variadas, pero pueden incluir apagados inesperados, desmontajes no adecuados, uso de un recurso compartido de red para los datos de Postgres o un medio de almacenamiento deficiente como una tarjeta SD o un HDD/SSD defectuoso.