SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor · Actualizado 2026-08-27

PhotoPrism frente a Immich: ¿qué servidor de fotos elegir?

Compara PhotoPrism e Immich con sus mínimos reales de RAM, aplicaciones móviles, mapas y comandos exactos de copia de seguridad para un VPS.

PhotoPrism frente a Immich: respuesta breve

PhotoPrism frente a Immich es una elección entre dos funciones distintas, no entre dos versiones del mismo producto. Immich sustituye a Google Photos: una aplicación para el teléfono hace copias de seguridad automáticas del carrete, y la línea temporal resultará familiar a cualquiera que deje atrás la galería del teléfono. PhotoPrism organiza una biblioteca de fotos que ya existe: indexa carpetas de archivos en el disco, lee sus metadatos, las muestra en un mapa y deja los archivos exactamente donde estaban.

Elija Immich si el problema es «el teléfono está lleno y quiero dejar de usar Google Photos». Elija PhotoPrism si el problema es «tengo 400 GB de fotos en una unidad y no encuentro nada». Ambos son de código abierto, ambos se ejecutan como contenedores Docker en un VPS normal y ambos indexan y permiten buscar en su biblioteca sin enviar nada a terceros.

La división filosófica y por qué lo determina todo

Immich es el propietario de los archivos. Se le indica una ubicación de carga, la aplicación del teléfono o el cargador web envía los originales y Immich los almacena en su propia ruta con su propia nomenclatura. La base de datos contiene la información fiable sobre los álbumes, las caras y las búsquedas. Este diseño permite ofrecer una buena experiencia en el teléfono, porque el servidor siempre conoce el estado completo de cada recurso.

PhotoPrism lee los archivos. Se monta una carpeta originals que ya está bajo su control y PhotoPrism crea un índice sobre ella. El árbol de directorios sigue siendo suyo. Si mañana elimina PhotoPrism, las fotos permanecen en las mismas carpetas y con los mismos nombres, y PhotoPrism habrá escrito archivos YAML auxiliares a su lado para describir la información que ha obtenido.

Esta única diferencia explica la mayor parte de lo demás. Immich ofrece una integración móvil sólida porque controla la incorporación de archivos. PhotoPrism ofrece una gestión sólida de la biblioteca porque no entra en conflicto con la estructura existente. Immich es la mejor opción para una familia cuyas fotos están en los teléfonos. PhotoPrism es la mejor opción para un archivo almacenado en un disco.

Apetito de hardware: Immich pide más

Los mínimos de memoria documentados están muy alejados, y en un VPS pequeño este suele ser el factor decisivo.

ChartDocumented memory requirement, as of July 2026
The data behind this chart
[
  {
    "label": "Immich",
    "min_ram_gb": 6,
    "recommended_ram_gb": 8
  },
  {
    "label": "PhotoPrism",
    "min_ram_gb": 3,
    "recommended_ram_gb": 4
  }
]

Immich documenta 6 GB de RAM como mínimo y 8 GB como cantidad recomendada. También indica que una máquina con 4 GB sólo puede ejecutarlo si se desactiva el aprendizaje automático. PhotoPrism documenta 3 GB de memoria física y dos núcleos de CPU, y señala que la cantidad de RAM debe corresponderse con el número de núcleos.

La diferencia es real y se debe al contenedor de aprendizaje automático. Immich ejecuta sus modelos en un servicio immich-machine-learning independiente que carga en memoria CLIP (preentrenamiento contrastivo de lenguaje e imágenes) y modelos de detección de rostros. En una máquina con 2 GB, el kernel termina ese contenedor y se muestra con el código de salida 137, que es el aspecto que tiene un proceso terminado por falta de memoria desde Docker. Los modelos de TensorFlow de PhotoPrism son más pequeños y el servicio se degrada en lugar de terminar: en máquinas con 1 GB o menos, desactiva la conversión RAW y TensorFlow en lugar de bloquearse.

Ambos proyectos requieren swap. La documentación de PhotoPrism indica explícitamente que el servidor debe tener al menos 4 GB de swap. Añádala antes de instalar cualquiera de los dos.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

free -h ahora debería mostrar una línea Swap: con 4.0Gi. Si muestra 0B, entonces swapon ha fallado, normalmente porque el sistema de archivos no admite fallocate, y sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 es la alternativa. Los límites de memoria de los contenedores también importan aquí, y configurar límites de memoria en Docker Compose permite evitar que un servicio con un consumo excesivo deje fuera de servicio toda la máquina.

Hay otro requisito que suele pasar desapercibido. La base de datos Postgres de Immich debe estar en un sistema de archivos Unix normal, con propiedad y permisos reales, en almacenamiento local, nunca en un recurso compartido de red. PhotoPrism indica lo mismo para sus archivos de base de datos. Ninguna de las dos aplicaciones debe ejecutarse con la base de datos en un almacén de objetos montado.

Cómo instalar cada uno

Ambas instalaciones consisten en un archivo Compose del proveedor y un comando. Configure primero Docker Engine y el plugin de Compose, como se explica en nuestra guía de Docker Compose en un VPS.

Immich publica su archivo Compose y un archivo de entorno de ejemplo con cada versión.

sudo mkdir -p /opt/immich && cd /opt/immich
wget -O docker-compose.yml 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

Edite .env antes de iniciar nada. UPLOAD_LOCATION es la ubicación donde se guardarán los originales y DB_PASSWORD debe cambiarse del valor predeterminado usando sólo los caracteres A-Za-z0-9, porque los caracteres especiales rompen la cadena de conexión. Después, inícielo.

docker compose up -d
docker compose ps

La interfaz web responde en el puerto 2283. La primera cuenta registrada desde esa página se convierte en la cuenta de administrador. Acceda a ella y regístrese de inmediato. No deje una instancia abierta en Internet.

PhotoPrism proporciona un archivo Compose que ya incluye MariaDB.

sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yaml

Abra compose.yaml y cambie PHOTOPRISM_ADMIN_PASSWORD antes del primer inicio. La documentación lo indica claramente: la aplicación se inicia con la contraseña inicial que figure en ese archivo, la longitud mínima es de 8 caracteres y el valor predeterminado nunca debe usarse en un servidor público. Configure también el volumen originals para que apunte a la carpeta que contiene sus fotos.

docker compose up -d
docker compose logs -f photoprism

PhotoPrism responde en el puerto 2342 con el usuario admin. Ninguna de las dos aplicaciones debe quedar expuesta directamente. Coloque un reverse proxy con TLS (seguridad de la capa de transporte) delante, con una configuración similar a la de un Nextcloud autoalojado con Docker, TLS y copias de seguridad. Si ese VPS termina alojando algo más que fotos, aplique la misma restricción a cada servicio que añada, porque un relay de RustDesk autoalojado sólo necesita que sus dos puertos estén accesibles, y ningún otro.

Cuál tiene una mejor aplicación para el teléfono

Esta es la diferencia más importante entre los dos proyectos y es la razón por la que la mayoría de las personas acaba usando Immich.

Immich publica aplicaciones oficiales para Android e iOS. Estas aplicaciones hacen copias de seguridad en segundo plano del carrete de la cámara. Las fotos nuevas salen del teléfono sin que nadie tenga que abrir una aplicación. La aplicación necesita un endpoint HTTPS, por lo que el reverse proxy es obligatorio si se va a usar fuera de casa.

PhotoPrism no tiene una aplicación nativa oficial. Publica una aplicación web progresiva que se añade a la pantalla de inicio desde el navegador. También documenta WebDAV (web distributed authoring and versioning) como método para sincronizar desde un teléfono. El proyecto recomienda usar una aplicación de terceros llamada PhotoSync para este fin, configurada con el directorio /import/ o /originals/ mediante WebDAV. Funciona, pero es una aplicación de terceros de pago que realiza una tarea que Immich integra en su propio cliente.

Si el requisito es hacer copias de seguridad automáticas del teléfono para varios miembros de la familia, la decisión está clara: Immich.

Qué aporta realmente el aprendizaje automático

Immich realiza búsquedas semánticas en la biblioteca mediante CLIP. Por eso, una consulta como "bicicleta roja en la nieve" encuentra fotos que nadie ha etiquetado. También detecta y agrupa rostros, y detecta duplicados. La indexación de una importación grande usando la CPU puede ejecutarse durante horas en segundo plano. Es normal y no requiere una GPU (unidad de procesamiento gráfico).

PhotoPrism clasifica las imágenes con TensorFlow mediante etiquetas, detecta rostros y los agrupa por personas, y lee los metadatos de ubicación para crear un mapa de lugares. El mapa es la función que hace que muchos usuarios sigan utilizando el producto: una biblioteca indexada por el lugar donde se tomaron las fotos ofrece una forma realmente distinta de explorar veinte años de fotografías. La misma idea funciona con otras colecciones multimedia, y la interfaz de videoclub de los años 90 de Halcyon para Jellyfin es su versión para películas, ya que permite explorar por estantería en lugar de hacerlo mediante una lista. El reconocimiento facial está incluido en la edición gratuita Community. Las suscripciones de pago Essentials y Plus añaden funciones como capas de mapa más completas, más roles de usuario y una interfaz de gestión de usuarios, desde unos pocos euros al mes en julio de 2026.

Immich es completamente gratuito y no tiene un nivel de pago. El núcleo de PhotoPrism es gratuito, con funciones adicionales de pago opcionales.

Las copias de seguridad determinan si conserva sus datos

Un servidor de fotos sin copias de seguridad puede perder todas las fotos de una familia por un único fallo de disco. Ambas aplicaciones necesitan dos copias de seguridad: una de la base de datos y otra de los archivos.

En Immich, vuelque la base de datos desde el contenedor de Postgres y copie la ubicación de carga.

docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gz

Después, haga una copia de seguridad de UPLOAD_LOCATION. Las carpetas que contienen datos irremplazables son upload, library y profile. Las carpetas thumbs y encoded-video se pueden regenerar, aunque eso puede consumir horas de CPU. Un volcado de la base de datos por sí solo no restaura nada, porque sólo contiene metadatos.

En PhotoPrism, el índice tiene su propio comando.

docker compose exec photoprism photoprism backup -i -f

Ese comando escribe un volcado SQL en storage/backup/. Después, copie la carpeta originals y la carpeta storage. PhotoPrism también escribe archivos YAML auxiliares que describen cada foto. Por tanto, el índice perdido se puede reconstruir sólo a partir de los archivos. Esto es una ventaja importante para un archivo que planea conservar durante décadas.

Elija la opción que elija, envíe esas copias de seguridad fuera del servidor según un programa mediante copias de seguridad restic cifradas y con deduplicación en almacenamiento remoto. Una copia de seguridad almacenada en el mismo disco que la biblioteca no es una copia de seguridad. Configure el trabajo para que avise cuando falle, porque una copia de seguridad que dejó de ejecutarse silenciosamente en marzo parece exactamente igual que una que se ejecutó anoche hasta el día en que la necesita, y un servidor ntfy autohospedado enviará ese fallo a su teléfono esa misma tarde.

Cuál debería ejecutar

Ejecute Immich si sus fotos están en teléfonos, si más de una persona necesita hacer una copia de seguridad del carrete de la cámara y si puede asignar al servidor 6 GB de RAM o más. Es lo más parecido a Google Photos que puede alojar usted mismo, y la experiencia móvil es su principal ventaja. Nuestra guía paso a paso para instalar Immich explica en detalle los cierres por falta de memoria y los problemas habituales durante las actualizaciones.

Ejecute PhotoPrism si ya tiene un archivo de fotos en disco, si le importan los mapas y los metadatos y quiere conservar su propia estructura de carpetas, o si su VPS tiene 4 GB de RAM y prefiere una biblioteca funcional en lugar de una que use swap constantemente. Es una herramienta de curación mejor y consume menos recursos en hardware limitado.

También es razonable ejecutar ambos. Immich gestiona la incorporación diaria de fotos desde los teléfonos. Una vez al año, clasifica las fotos que quiere conservar en su archivo y deje que PhotoPrism las indexe. No entran en conflicto porque PhotoPrism lee las carpetas, mientras que Immich administra sus propios datos.

FAQ

¿Pueden PhotoPrism e Immich compartir la misma carpeta de fotos?

No de forma segura en ambas direcciones. PhotoPrism lee una carpeta originals y escribe archivos YAML auxiliares junto a las imágenes, mientras que Immich espera controlar el contenido de su ubicación de carga. Puede apuntar PhotoPrism a una copia de solo lectura de la carpeta library de Immich para explorarla, pero no permita que ambas aplicaciones administren los mismos archivos, porque la plantilla de almacenamiento de Immich puede mover o cambiar el nombre de los recursos mientras PhotoPrism los indexa.

¿Immich es suficientemente estable para guardar la única copia de mis fotos?

Ninguna aplicación autoalojada debería guardar nunca la única copia de ningún archivo. Immich publica cambios incompatibles con frecuencia, y un docker compose pull realizado sin cuidado puede impedir que la base de datos arranque, así que fije la versión y lea las notas de la versión antes de actualizar. Mantenga los archivos originales respaldados fuera del servidor y el riesgo será reducido.

¿Por qué el contenedor de machine learning de Immich se reinicia continuamente?

El sistema lo termina porque usa demasiada memoria. Ejecute docker compose ps y busque que el servicio de machine learning termine con el código 137, que indica la intervención del out of memory killer del kernel. Añada swap, o asigne al contenedor un límite de memoria para que se limite su consumo en lugar de terminarlo, o desactive por completo machine learning en una máquina con 4 GB. La búsqueda deja de funcionar sin este componente, pero el resto de Immich funciona correctamente.

¿PhotoPrism necesita MariaDB o sirve SQLite?

SQLite funciona y es adecuado para una biblioteca personal, pero PhotoPrism se limita a cuatro workers cuando lo usa, y la documentación recomienda cambiar a MariaDB porque gestiona mejor una concurrencia alta. El archivo compose que publica el proyecto ya incluye MariaDB, por lo que la opción recomendada también es la predeterminada.

¿Cuánto espacio de disco debería reservar por encima del tamaño de mi biblioteca?

Añada entre 10 y 20 por ciento al tamaño de los originales, independientemente de la aplicación. Esto cubre las miniaturas generadas y las vistas previas de vídeo transcodificadas. Una colección de 200 GB necesita aproximadamente un volumen de 300 GB cuando se deja espacio para la base de datos, la copia de respaldo local y el crecimiento.