SSD Nodes Learn 8GB de RAM — $66/año
Guías Matt ConnorPor Matt Connor · Actualizado 2026-08-02

PhotoPrism o Immich: qué servidor de fotos elegir

Compara PhotoPrism e Immich con datos prácticos: RAM mínima, apps móviles, mapas y comandos exactos de copia de seguridad para cada servidor en un VPS.

PhotoPrism frente a Immich: respuesta breve

PhotoPrism frente a Immich es una elección entre dos tareas diferentes, no entre dos versiones del mismo producto. Immich sustituye a Google Photos: una aplicación del teléfono hace una copia de seguridad automática del carrete, y la línea de tiempo resultante resulta familiar para cualquiera que deje de usar 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 coloca en un mapa y deja los archivos exactamente donde estaban.

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

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

Immich administra los archivos. Se le indica una ubicación de carga, la aplicación del teléfono o el cargador web envía los originales, e Immich los almacena en su propia ruta con sus propios nombres. La base de datos contiene la información real sobre los álbumes, las caras y las búsquedas. Este diseño permite 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 se administra, y PhotoPrism crea un índice sobre ella. El árbol de directorios sigue siendo suyo. Si mañana se elimina PhotoPrism, las fotos permanecen en las mismas carpetas y con los mismos nombres, y PhotoPrism habrá escrito archivos YAML sidecar junto a ellas para describir la información que obtuvo.

Esta única diferencia explica la mayor parte de lo demás. Immich ofrece una compatibilidad móvil sólida porque controla la ingestión. PhotoPrism ofrece una organización sólida de la biblioteca porque no interfiere 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 que se encuentra en un disco.

Requisitos de hardware: Immich exige más

Los requisitos mínimos de memoria documentados son muy diferentes, 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 solo puede ejecutarlo si el aprendizaje automático está desactivado. 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 los modelos CLIP (preentrenamiento contrastivo de imágenes y lenguaje) y de detección facial. En una máquina con 2 GB, el kernel termina ese contenedor y se muestra con el código de salida 137. Esto es lo que indica Docker cuando termina un proceso por falta de memoria. Los modelos de TensorFlow de PhotoPrism son más pequeños y el programa reduce sus funciones en lugar de terminar: en máquinas con 1 GB o menos, desactiva la conversión RAW y TensorFlow en vez 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 las dos aplicaciones.

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 falló, 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 son importantes aquí. Configurar límites de memoria en Docker Compose permite evitar que un servicio consuma toda la memoria de la máquina.

Hay otro requisito que suele pasarse por alto. La base de datos Postgres de Immich debe estar en un sistema de archivos Unix normal, con propietarios y permisos reales, y en almacenamiento local. Nunca debe estar 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 constan de un archivo compose del proveedor y un comando. Configure primero Docker Engine y el plugin de Compose, como se explica en nuestra guía sobre 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 cualquier proceso. UPLOAD_LOCATION es la ubicación de los archivos originales, y DB_PASSWORD debe cambiarse del valor predeterminado usando únicamente 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 mediante esa página se convierte en la cuenta de administrador. Acceda a la interfaz y regístrese de inmediato para no dejar una instancia abierta en Internet.

PhotoPrism distribuye un único 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 nunca debe usarse el valor predeterminado 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 exponerse directamente. Coloque delante un proxy inverso con TLS (seguridad de la capa de transporte), con una configuración del mismo tipo que la utilizada para un Nextcloud autohospedado con Docker, TLS y copias de seguridad.

Qué aplicación móvil es mejor

Aquí es donde los dos proyectos presentan la mayor diferencia. Es la razón por la que la mayoría de las personas termina usando Immich.

Immich ofrece aplicaciones oficiales para Android e iOS. Estas aplicaciones realizan 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 requiere un endpoint HTTPS. Por tanto, el proxy inverso es obligatorio si se planea usarla fuera de casa.

PhotoPrism no tiene una aplicación nativa oficial. Ofrece una aplicación web progresiva que se añade a la pantalla de inicio desde el navegador. También documenta WebDAV (creación y control de versiones distribuidos en la web) como método para sincronizar desde un teléfono. El proyecto recomienda una aplicación de terceros llamada PhotoSync para esta tarea, 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 realizar copias de seguridad automáticas del teléfono para varios miembros de la familia, la decisión está clara: Immich.

Lo que realmente ofrece 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" puede encontrar fotos que nadie ha etiquetado. También detecta y agrupa rostros, además de detectar duplicados. Indexar una importación grande con la CPU puede tardar 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. También lee los metadatos de ubicación para crear un mapa de lugares. El mapa es la función que hace que muchos usuarios sigan usando el producto. Una biblioteca indexada por el lugar donde se tomaron las fotos ofrece una forma realmente diferente de explorar veinte años de fotografías. El reconocimiento facial está incluido en la edición Community gratuita. Las suscripciones Essentials y Plus de pago añaden funciones como capas de mapa más completas, más roles de usuario y una interfaz de gestión de usuarios. En julio de 2026, sus precios comienzan en unos pocos euros al mes.

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 conservas tus datos

Un servidor de fotos sin copias de seguridad puede perder todos los datos de una familia por un solo fallo de disco. Ambas aplicaciones necesitan dos copias de seguridad: la base de datos y los archivos.

Para Immich, vuelca la base de datos desde el contenedor de Postgres y copia 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, haz una copia de seguridad de UPLOAD_LOCATION. Las carpetas que contienen datos irreemplazables son upload, library y profile. Las carpetas thumbs y encoded-video se pueden regenerar, pero esto puede consumir horas de CPU. Un volcado de la base de datos por sí solo no restaura nada, porque solo contiene metadatos.

Para PhotoPrism, el índice tiene su propio comando.

docker compose exec photoprism photoprism backup -i -f

El comando escribe un volcado SQL en storage/backup/. Después, copia 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 solo a partir de los archivos. Esto es una ventaja importante para un archivo que se conservará durante décadas.

Elijas la aplicación que elijas, envía esas copias fuera del servidor según una programación mediante copias de seguridad restic cifradas y deduplicadas en almacenamiento remoto. Una copia de seguridad que está en el mismo disco que la biblioteca no es una copia de seguridad.

Cuál deberías ejecutar

Ejecuta Immich si tus 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 puedes asignar al servidor 6 GB de RAM o más. Es lo más parecido a Google Photos que puedes alojar por tu cuenta, y la experiencia móvil es su principal ventaja. Nuestra guía paso a paso para instalar Immich explica en detalle las terminaciones por falta de memoria y los problemas habituales durante las actualizaciones.

Ejecuta PhotoPrism si ya tienes un archivo de fotos en el disco, si te importan los mapas y los metadatos y quieres conservar tu propia estructura de carpetas, o si tu VPS tiene 4 GB de RAM y prefieres una biblioteca funcional en lugar de una que use swap. Es la mejor herramienta para organizar colecciones y consume menos recursos en hardware limitado.

También es razonable ejecutar ambos. Immich gestiona la incorporación diaria de fotos desde el teléfono. Una vez al año, clasificas las fotos que quieres conservar en tu archivo y haces que PhotoPrism las indexe. No entran en conflicto porque PhotoPrism lee carpetas, mientras que Immich administra su propio almacenamiento.

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 sidecar junto a las imágenes, mientras que Immich espera ser el propietario del contenido de su ubicación de carga. Puede apuntar PhotoPrism a una copia de solo lectura de la carpeta library de Immich para examinarla, 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.

¿Es Immich suficientemente estable para conservar la única copia de mis fotos?

Ninguna aplicación autoalojada debe conservar la única copia de ningún archivo. Immich publica cambios incompatibles con frecuencia, y un docker compose pull incorrecto puede impedir que la base de datos se inicie, por lo que debe fijar la versión y leer las notas de la versión antes de actualizar. Mantenga los archivos originales respaldados fuera del servidor para reducir el riesgo.

¿Por qué el contenedor de aprendizaje automático de Immich se reinicia continuamente?

El sistema lo termina porque usa demasiada memoria. Ejecute docker compose ps y busque que el servicio de aprendizaje automático termine con el código 137, que indica la acción del kernel por falta de memoria. Añada swap, establezca un límite de memoria para el contenedor para que se limite en lugar de terminarse, o desactive completamente el aprendizaje automático en una máquina con 4 GB. La búsqueda deja de funcionar sin esta función, pero el resto de Immich funciona correctamente.

¿PhotoPrism necesita MariaDB o funciona con SQLite?

SQLite funciona y es suficiente para una biblioteca personal, pero PhotoPrism se limita a cuatro workers cuando lo utiliza, y la documentación recomienda cambiar a MariaDB porque gestiona mejor la 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 debo reservar además del tamaño de mi biblioteca?

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