Saltar al contenido
●homelab@casa:~/servidor
~$homelabista

// IMMICH

Guía de Immich: tus fotos en tu propio servidor

Guía de Immich paso a paso: instala con Docker Compose el Google Photos autoalojado, con requisitos de hardware, copia de seguridad y app móvil.

15 min de lecturaGonzalo
  • #immich
  • #fotos
  • #docker
  • #autoalojado
  • #self-hosted
Immich como Google Photos autoalojado: la galería del móvil guardada en tu propio servidor casero en vez de en la nube
Logotipo oficial de Immich

Google Photos te avisa de que se te acaban los 15 GB gratis y te ofrece pagar todos los meses para siempre. Ese es, casi siempre, el momento en que uno descubre Immich. Yo llegué igual.

Immich es un servidor de fotos y vídeos que corre en tu propia máquina. Subes desde el móvil igual que con Google Photos —copia automática en segundo plano, timeline, álbumes, búsqueda—, pero los archivos se quedan en tu disco, en tu casa, sin cuota mensual y sin que nadie entrene nada con tus recuerdos. Es de los proyectos autoalojados que más rápido enganchan, porque resuelve un problema que todo el mundo tiene.

La galería de Immich con las fotos organizadas por fecha, igual que en Google Fotos
La galería de Immich: la misma timeline que Google Fotos, pero corriendo en tu servidor. La biblioteca de la captura es de ejemplo, no la nuestra —nuestras fotos son nuestras, que es justo de lo que va esto.

Aquí va la guía completa: qué es, qué hardware pide de verdad, cómo se instala con Docker paso a paso, y —lo que casi nadie explica bien— cómo hacer una copia de seguridad que sirva para restaurar.

¿Ya lo tienes instalado? Ve directamente a qué guardar y cómo ensayar la recuperación.

[aff]Hay enlaces de afiliado más abajo: si compras algo desde ellos me llevo una pequeña comisión y a ti no te cuesta ni un céntimo más. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables.

Qué es Immich y qué te da

Immich (se pronuncia “emich”, es un juego con “image”) es software libre. Un equipo muy activo lo actualiza casi cada semana, así que da algo de vértigo al principio, pero la instalación base lleva tiempo siendo estable.

Lo que hace, en cristiano:

  • Copia automática de la galería del móvil en cuanto entras en la wifi de casa, como la de Google.
  • Reconocimiento facial y búsqueda por IA: busca “playa”, “perro” o la cara de tu sobrina y los encuentra. Eso lo hace un contenedor aparte, en tu servidor, sin mandar nada fuera.
  • Álbumes compartidos, líneas de tiempo, mapa por geolocalización, usuarios múltiples para toda la familia.
  • Apps de iOS y Android decentes de verdad, más una web para el escritorio.

No es un clon pixel a pixel de Google Photos, y conviene saberlo: al ser un proyecto en desarrollo rápido, de vez en cuando una actualización trae cambios que hay que leer antes de aplicar. A cambio, tus fotos son tuyas y el almacenamiento solo depende del disco que le pongas.

Búsqueda por inteligencia artificial en Immich: al escribir 'playa' encuentra las fotos de playa sin haberlas etiquetado a mano
Escribes “playa” en el buscador y las encuentra solo, sin etiquetas: eso es el motor de IA corriendo en tu propio servidor. Biblioteca de ejemplo, igual que la de arriba.

Qué hardware necesita de verdad

Buenas noticias: menos del que la gente teme. Immich no es Plex transcodificando 4K. Según la documentación oficial, el mínimo son 2 núcleos de CPU y 6 GB de RAM, con 8 GB para ir cómodo, sobre todo mientras suben muchas fotos a la vez. Con 4 GB también arranca, pero desactivando las funciones de IA.

Traducido a equipos: cualquier mini PC de gama baja con 16 GB de RAM va sobrado para una biblioteca doméstica. En uno de los equipos del banco de pruebas, un Intel N100 con 16 GB, Immich corre con reconocimiento facial y su motor de IA junto a otros servicios sin inmutarse; el reconocimiento tira de CPU en ráfagas cuando procesa fotos nuevas, y luego se calma. Un detalle técnico que conviene comprobar: desde la versión 2.6, el contenedor de IA en equipos x86 pide un nivel de microarquitectura x86-64-v2, que soporta prácticamente cualquier CPU de 2012 en adelante. Un N100 o un N150 lo cumplen de sobra.

Si tu servidor es una Raspberry Pi 5 (que es ARM), Immich también corre; ahí sí conviene la de 8 GB y no exprimir la IA con bibliotecas enormes. Lo tratamos en la guía de la Raspberry Pi 5 como servidor casero.

El mini PC con el que yo empezaría para esto —y para el resto del homelab— es un N100 con 16 GB. Silencioso, x86 total y con margen para Immich más una docena de contenedores.

Mini PC Beelink Mini S12 Pro con procesador Intel N100 para homelab
Intel N100 · equipo completo

Beelink Mini S12 Pro — Intel N100, 16 GB

Una opción de entrada para servicios ligeros y multimedia compatible con QuickSync. Comprueba las tareas simultáneas y la configuración concreta; no hay una cifra de consumo o reproducciones garantizada por llevar un N100.

  • +iGPU con QuickSync para formatos y software compatibles
  • +16 GB de RAM en la configuración de referencia
  • +Plataforma x86-64 para software compatible con esa arquitectura
  • -Un solo puerto Gigabit: no es una opción de red de 2,5 GbE
  • -Para máquinas virtuales, calcula la RAM disponible; confirma si la revisión lleva M.2 SATA o NVMe

≈ 359 €

26 sep 2026

Ver precio en Amazon →

Para elegir con criterio según tu presupuesto y ver qué RAM admite cada equipo, tienes la comparativa de mini PC con el filtro de memoria y almacenamiento.

Una nota sobre discos: las fotos ocupan, y crecen. Immich guarda los originales tal cual, así que dimensiona el almacenamiento pensando en años, no en la biblioteca de hoy.

Cómo se organiza por dentro

Antes de instalar, ayuda entender las piezas, porque luego la copia de seguridad depende de saber qué es qué. Immich no es un programa, son cuatro contenedores Docker que trabajan juntos más una carpeta con tus archivos.

Arquitectura de Immich: los contenedores immich-server, machine-learning, PostgreSQL y Redis junto a la carpeta UPLOAD_LOCATION con las fotos

El immich-server es la web y la API: lo que ves y por donde suben las fotos. El contenedor de machine-learning hace el reconocimiento facial y la búsqueda. PostgreSQL guarda los metadatos (álbumes, caras, ajustes), Redis gestiona la cola de trabajos en segundo plano. Y aparte de todo eso, una carpeta en tu disco, UPLOAD_LOCATION, donde viven las fotos de verdad. Quédate con esto: la base de datos y las fotos son cosas separadas. Lo retomamos en la copia de seguridad.

Instalación con Docker Compose, paso a paso

Doy por hecho que ya tienes Docker y el plugin de Docker Compose instalados en el servidor. Si vienes de montar Plex o cualquier otro contenedor, ya lo tienes; si no, en la guía de servidor multimedia con Plex y Docker está el punto de partida.

La forma recomendada por el propio proyecto es descargar sus ficheros oficiales, no copiar y pegar un compose de un tutorial cualquiera (que envejece mal). Son cuatro pasos.

Instalación de Immich en cuatro pasos con Docker Compose: crear la carpeta y bajar los ficheros oficiales, editar el .env, levantar los contenedores y abrir la web en el puerto 2283

1. Crea la carpeta y baja los ficheros oficiales.

mkdir immich && cd 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

2. Edita el .env. Es un fichero de texto con las variables de configuración. Los dos valores que sí o sí quieres tocar:

  • UPLOAD_LOCATION: la ruta de tu disco donde se guardarán las fotos. Ponla en un sitio con espacio de sobra (un disco de datos, no el del sistema).
  • DB_PASSWORD: una contraseña para la base de datos. Cámbiala por una tuya.
  • TZ: tu zona horaria, por ejemplo Europe/Madrid, para que las fechas cuadren.

3. Levanta los contenedores. Desde la misma carpeta:

docker compose up -d

Ojo: es docker compose (con espacio), la versión moderna. El viejo docker-compose con guion puede dar errores. La primera vez tarda un rato porque se descarga las imágenes.

4. Abre la web. En el navegador, http://IP-de-tu-servidor:2283. La primera cuenta que registres es la de administrador. Creas usuario, entras y ya está el servidor listo.

Para actualizar Immich cuando salga una versión nueva (repasa antes las notas de la versión por si hay cambios importantes), desde la carpeta:

docker compose pull && docker compose up -d
docker image prune   # limpia las imágenes viejas

Las apps del móvil

Aquí es donde Immich se gana el sueldo. Instala la app de Immich desde la App Store o la Play Store, mete la dirección de tu servidor (http://IP:2283) y tu usuario. Activas la copia automática, eliges qué álbumes del móvil se suben, y a partir de ahí funciona sola: cada foto nueva se sube cuando el móvil está en tu red.

Un consejo de seguridad: para subir desde fuera de casa no abras el puerto 2283 a internet a pelo. Monta una VPN (un WireGuard va perfecto) o un proxy inverso con HTTPS. Entrar en tu red de casa desde el móvil es justo para lo que sirve una VPN doméstica, y es lo que uso yo para llegar a Immich desde la calle.

Backup de Immich: qué guardar y cómo recuperarlo

Actualizado el 29 de septiembre de 2026. Que aparezca un fichero en backups no significa que tus fotos tengan otra copia. Immich genera volcados de la base de datos; copiar los originales a otro destino sigue siendo tarea tuya.

Backup de Immich: volcado de base de datos y archivos, con UPLOAD_LOCATION completo y bibliotecas externas

Lo que debe salir del servidor

  • Base de datos: un volcado válido conserva rutas, usuarios, álbumes y metadatos. Los automáticos se guardan en UPLOAD_LOCATION/backups; la documentación indica una copia diaria y retención de 14 por defecto, pero comprueba tu programación real. Esa carpeta en el mismo disco no te protege si el disco muere.
  • Archivos: la recomendación oficial es copiar UPLOAD_LOCATION completo. No te quedes solo con library: según la configuración, los originales también viven en upload. profile contiene las imágenes de perfil; thumbs y encoded-video son derivados que se pueden regenerar, a costa de tiempo y procesamiento. Si has repartido carpetas entre discos, incluye sus destinos reales.
  • Bibliotecas externas: añade las carpetas originales que montaste aparte. No pasan a estar dentro de UPLOAD_LOCATION por aparecer en la galería. Conserva también los montajes y las rutas que Immich ve dentro del contenedor.
  • Configuración: guarda el Compose, la versión de Immich y el .env de esa instalación junto al registro de la copia. El .env contiene secretos: protégelo con cifrado y acceso restringido, no lo pegues en una consulta de soporte.

Una copia de DB_DATA_LOCATION mientras PostgreSQL escribe no sustituye sin más a un volcado. Para esta guía, usa el backup de base de datos que genera Immich y copia los archivos con tu herramienta habitual, por ejemplo Restic o Borg. La guía de copias 3-2-1 explica cómo separar copia local, destino externo y prueba de recuperación.

Primero la base de datos, después los archivos

Si las fotos siguen entrando mientras copias, la base de datos y el disco pueden representar momentos distintos. La documentación de Immich recomienda detener immich-server durante la copia para evitar ese desfase. Planifica esa pausa: la app no podrá subir fotos mientras el servicio esté parado.

Si necesitas mantenerlo disponible, el orden recomendado es volcado de base de datos primero y archivos después. Así pueden quedar archivos posteriores al volcado que haya que volver a subir tras restaurar. Al hacerlo al revés, la base de datos puede apuntar a fotos que nunca llegaron a la copia. No son dos formas equivalentes de hacer lo mismo.

En la interfaz descrita por la documentación actual puedes pedir un volcado desde Administración → Colas de trabajos → Crear trabajo → Create Database Dump. Espera a que termine y comprueba qué fichero ha generado antes de copiarlo. Los nombres pueden cambiar con la versión o el idioma.

Un comando en verde no demuestra que haya backup

Un error fácil de pasar por alto: en Bash, pg_dump | gzip puede terminar con código cero aunque falle el volcado, porque por defecto manda el resultado del último comando. Esta prueba no toca Docker ni tus fotos:

bash -c 'false | gzip > /dev/null'
echo "$?"  # 0: gzip ha terminado, pero el primer comando falló

bash -o pipefail -c 'false | gzip > /dev/null'
echo "$?"  # 1: ahora se propaga el fallo

Ejecutado el 29 de septiembre: devuelve 0 y 1, respectivamente. Es una prueba del comportamiento de Bash, no una restauración de Immich. Si automatizas el volcado, activa pipefail y haz que el trabajo se detenga ante el error; no publiques una copia parcial como buena. Que gzip -t pase solo acredita que el archivo comprimido es legible, no que contenga una base de datos completa ni las fotos.

Ensaya la recuperación sin tocar la galería que usas

Prepara otra instancia con carpetas, base de datos y puerto propios. Trabaja sobre copias, nunca sobre los directorios de producción, y no conectes a ella la subida automática de los móviles.

  1. Anota la fecha del volcado, la versión de Immich y qué carpetas entraron en esa copia. Empieza con la misma versión para no mezclar una recuperación con una actualización.
  2. Lleva los archivos a la nueva UPLOAD_LOCATION y, si existen, restaura las bibliotecas externas con las mismas rutas internas. Comprueba que la instancia de prueba no tiene acceso de escritura a los originales.
  3. Sigue las instrucciones de restauración de tu versión. La documentación actual ofrece restauración desde la pantalla inicial o desde Mantenimiento. Restaurar reemplaza la base de datos del destino: revisa la dirección del navegador antes de confirmar. Para volcados anteriores a v2.5.0, usa el selector de versiones de la documentación.
  4. Entra con un usuario recuperado, abre un álbum, descarga una foto original y reproduce un vídeo. Incluye elementos antiguos y recientes respecto a la fecha de la copia; si usas bibliotecas externas, prueba también un archivo de ellas. Ver miniaturas no basta: podrían seguir visibles aunque falten originales.

Deja anotados fecha, copia utilizada, comprobaciones y fallos. Esta lista es un procedimiento para ensayar, no una promesa de que cualquier copia restaurará. Antes de borrar los originales de otro servicio, necesitas haber recuperado y abierto tus archivos desde el backup.

Tres cosas que se atascan (y cómo salir)

Ningún montaje sale perfecto a la primera. Los tropiezos más habituales con Immich, y por dónde tirar cuando pasan:

El contenedor de IA se reinicia solo o se queda sin memoria. Casi siempre es RAM. El reconocimiento facial y la búsqueda inteligente son lo más goloso de Immich. Si vas justo de memoria, la primera opción es darle más; la segunda, entrar en los ajustes y bajar la concurrencia de los trabajos de IA para que no procese tantas fotos a la vez. Y si tu equipo es muy modesto, siempre puedes desactivar la IA y quedarte con la copia de seguridad y los álbumes, que van sobrados con 4 GB.

La app del móvil no encuentra el servidor. Nueve de cada diez veces es la dirección. Comprueba que pones http:// (no https:// si no has montado certificado), la IP correcta de tu servidor en la red local y el puerto :2283. Si desde el navegador del propio móvil, en la wifi de casa, no abre esa dirección, el problema es de red, no de Immich: revisa que el servidor y el móvil están en la misma red.

Una actualización rompió algo. Revisa los registros y las notas de esa versión antes de recrear contenedores. Un fallo de migración, permisos o disco lleno no se arregla necesariamente reiniciando. Conserva la copia anterior y no borres volúmenes para probar suerte; si necesitas recuperar, sigue el ensayo de restauración y las instrucciones de la versión correspondiente.

La lección general, que sirve para Immich y para todo el homelab: si algo falla, mira los registros del contenedor con docker compose logs, que casi siempre te dicen qué pasa en la última línea. Medio homelab se arregla leyendo el error en vez de reinstalar a ciegas.

// preguntas frecuentes

Preguntas frecuentes

¿Qué hardware necesito para Immich?
El mínimo oficial son 2 núcleos de CPU y 6 GB de RAM, con 8 GB para ir holgado. En la práctica, cualquier mini PC de gama baja con 16 GB de RAM mueve una biblioteca doméstica con reconocimiento facial sin problema. Con 4 GB también funciona si desactivas las funciones de IA.
¿Immich es de verdad una alternativa a Google Photos?
Para el uso doméstico, sí: copia automática desde el móvil, timeline, álbumes, búsqueda por IA y reconocimiento facial, todo en tu servidor. No es un clon exacto y, al estar en desarrollo activo, conviene leer las notas antes de actualizar. A cambio, no hay cuota mensual y tus fotos no salen de casa.
¿Puedo instalar Immich en una Raspberry Pi?
Sí, corre en ARM. Para una Pi tira de la de 8 GB de RAM y no fuerces la IA con bibliotecas enormes, porque el reconocimiento facial es lo más pesado. Para bibliotecas grandes con búsqueda por IA, un mini PC x86 va más suelto.
¿Cómo hago copia de seguridad de Immich?
Guarda un volcado de la base de datos y UPLOAD_LOCATION completo en otro destino. Incluye las bibliotecas externas y la configuración protegida si las usas. Lo más consistente es detener immich-server durante la copia; si permanece disponible, copia primero la base de datos y después los archivos. Ensaya la restauración en una instancia separada antes de dar la copia por buena.
¿El backup automático de Immich incluye las fotos?
No. Los ficheros de UPLOAD_LOCATION/backups son volcados de base de datos: guardan metadatos, no los originales. Debes copiar también fotos y vídeos, incluidas las bibliotecas externas. Una copia guardada en el mismo disco no protege frente a la pérdida de ese disco.
¿Puedo acceder a mis fotos desde fuera de casa?
Sí, pero no abras el puerto directamente a internet. Usa una VPN doméstica (WireGuard, por ejemplo) o un proxy inverso con HTTPS. Así entras a tu servidor desde la calle sin exponerlo al mundo.

Immich es, para mí, el mejor primer proyecto “que importa” de un homelab: útil desde el minuto uno, agradecido con hardware modesto y con una recompensa clara cuando cancelas la cuota de fotos en la nube. Móntalo, dale unos días para que procese tu biblioteca, y configura la copia de seguridad antes de borrar nada de la nube. En ese orden.