Instalación
Pon en marcha Noodle Gallery con Docker Compose en menos de cinco minutos. Compatible con cualquier instalación de Immich existente.
¿Buscas guías detalladas? Lee la documentación completaMigrar desde Immich
¿Ya usas Immich? La migración es sencilla — reemplaza dos nombres de imagen en tu docker-compose.yml y actualiza IMMICH_VERSION en tu .env.
La versión actual es v4.
docker exec -t immich_postgres pg_dumpall -U postgres > backup.sql image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} image: ghcr.io/open-noodle/gallery-server:${IMMICH_VERSION:-release} image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} image: ghcr.io/open-noodle/gallery-ml:${IMMICH_VERSION:-release} image: ghcr.io/open-noodle/gallery-server:${IMMICH_VERSION:-release}
image: ghcr.io/open-noodle/gallery-ml:${IMMICH_VERSION:-release} IMMICH_VERSION=v2 IMMICH_VERSION=v4 Después descarga las nuevas imágenes y reinicia:
docker compose pull && docker compose up -d Tus datos, base de datos y configuración son totalmente compatibles — no se necesita ningún paso de migración.
Gallery incluye un script de limpieza en SQL que elimina todas las tablas, columnas y entradas de migración específicas de Gallery — Espacios compartidos, detección de mascotas, clasificaciones, datos de duplicados — y deja una base de datos de Immich limpia. Tus fotos y vídeos nunca se tocan. Simplemente reemplaza los dos nombres de imagen en sentido inverso y vuelves a estar en la versión upstream.
Leer la guía para volver a Immich¿Tienes curiosidad por lo que Gallery aporta a Immich? Lee la comparativa completa Gallery vs. Immich →
Requisitos
docker compose (plugin v2) Descargar los archivos de configuración
Crea un directorio para Noodle Gallery y descarga el archivo de Docker Compose junto con la plantilla de entorno.
mkdir ./noodle-gallery
cd ./noodle-gallery
wget -O docker-compose.yml https://github.com/open-noodle/gallery/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/open-noodle/gallery/releases/latest/download/example.env example.env a .env. Configurar el entorno
Abre el archivo .env y ajusta tus parámetros. Las opciones principales están arriba — el almacenamiento S3 es opcional.
# ── Parámetros básicos ─────────────────────────────────────────
# Ubicación de almacenamiento de fotos y vídeos
UPLOAD_LOCATION=./library
# Ubicación de los datos de PostgreSQL (debe ser un disco local, no una unidad de red)
DB_DATA_LOCATION=./postgres
# Zona horaria: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Etc/UTC
# Etiqueta de la imagen del contenedor — "release" para la versión actual, "v4" para la última v4.x o fijar p. ej. "v4.0.1"
IMMICH_VERSION=release
# IMPORTANTE: Reemplázalo por una contraseña aleatoria (solo A-Za-z0-9)
DB_PASSWORD=change-me-to-something-random
# Estos valores por defecto rara vez necesitan modificarse
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
# ── Almacenamiento compatible con S3 (opcional) ────────────────
# Descomenta para almacenar las subidas en S3 en lugar del disco local.
# Funciona con AWS S3, MinIO, Cloudflare R2, Backblaze B2, Wasabi, etc.
# IMMICH_STORAGE_BACKEND=s3
# IMMICH_S3_BUCKET=mi-bucket-gallery
# IMMICH_S3_REGION=eu-central-1
# IMMICH_S3_ENDPOINT=https://s3.eu-central-1.amazonaws.com
# IMMICH_S3_ACCESS_KEY_ID=
# IMMICH_S3_SECRET_ACCESS_KEY=
# IMMICH_S3_SERVE_MODE=redirect
# IMMICH_S3_PRESIGNED_URL_EXPIRY=3600 Referencia de variables
UPLOAD_LOCATION Ruta para los medios subidos. En producción, usa una ruta absoluta. DB_DATA_LOCATION Ruta para los datos de PostgreSQL. Debe ser un disco local — las unidades de red no son compatibles. DB_PASSWORD Contraseña de la base de datos. Solo caracteres A-Za-z0-9. Modifícala antes del primer arranque. IMMICH_VERSION Etiqueta del contenedor. release = actual, v4 = última v4.x, o fija una versión específica. IMMICH_STORAGE_BACKEND Define como s3 para almacenar las nuevas subidas en S3. Por defecto: disk. Los archivos existentes en disco siguen funcionando. IMMICH_S3_BUCKET Nombre del bucket S3. Obligatorio si se usa almacenamiento S3. IMMICH_S3_ENDPOINT Endpoint personalizado para servicios no-AWS (MinIO, R2, B2). Omítelo para AWS S3. IMMICH_S3_SERVE_MODE redirect devuelve URL prefirmadas (más rápido). proxy transmite a través del servidor. Por defecto: redirect. Iniciar los contenedores
Ejecuta el siguiente comando desde el directorio noodle-gallery:
docker compose up -d Este comando descarga las imágenes de los contenedores, crea la base de datos e inicia todos los servicios. En el primer arranque se descargan unos 2 GB de imágenes, lo que puede tardar unos minutos.
docker compose (con espacio), no docker-compose (con guion). El binario independiente docker-compose está obsoleto. Acceder a la interfaz web
Abre http://ip-de-tu-servidor:2283 en tu navegador. Se te pedirá crear la primera cuenta de administrador.
http://localhost:2283 La aplicación móvil (Android & iOS) se conecta a la misma URL. Descárgala en Play Store o la App Store e introduce la URL de tu servidor.
Aceleración por GPU opcional
Para una inferencia de ML más rápida (reconocimiento facial, CLIP, detección de mascotas), usa una imagen de ML acelerada por GPU:
# En docker-compose.yml, cambia la etiqueta de la imagen de ML:
image: ghcr.io/open-noodle/gallery-ml:${IMMICH_VERSION:-release}-cuda
Etiquetas disponibles: -cuda (NVIDIA), -rocm (AMD), -openvino (Intel).
Actualizar
Actualizar a la última versión:
docker compose pull
docker compose up -d Las migraciones de la base de datos se ejecutan automáticamente al iniciar. Haz siempre una copia de seguridad de tu base de datos antes de las actualizaciones mayores.
Documentación de la API
Gallery expone una API REST completa documentada mediante OpenAPI. Cada instancia en ejecución ofrece una interfaz Swagger interactiva en /doc — incluyendo todos los endpoints específicos del fork para los Espacios compartidos, los grupos de usuarios y la detección de mascotas.
http://tu-servidor:2283/doc La API también se puede consultar en la demo en vivo:
Explorar la API en demo.opennoodle.dePreguntas frecuentes
¿Cómo migro de Immich a Noodle Gallery?
Reemplaza dos nombres de imagen en tu docker-compose.yml: cambia ghcr.io/immich-app/immich-server por ghcr.io/open-noodle/gallery-server y ghcr.io/immich-app/immich-machine-learning por ghcr.io/open-noodle/gallery-ml. Después ejecuta 'docker compose pull && docker compose up -d'. Tus datos, base de datos y configuración son totalmente compatibles — no se requiere ningún paso de migración. Haz siempre una copia de seguridad de tu base de datos antes con pg_dumpall.
¿Puedo importar mis fotos desde Google Photos?
Sí. Noodle Gallery incluye un asistente de importación integrado que lee tu archivo de Google Takeout directamente en el navegador. La fecha, las coordenadas GPS, las descripciones, los favoritos y la estructura de álbumes se conservan por completo. Sin scripts, sin línea de comandos — basta con subir el archivo ZIP.
¿Cuáles son los requisitos del sistema?
2 núcleos de CPU o más, mínimo 4 GB de RAM (6 GB o más recomendados para el aprendizaje automático), Docker Engine v25+ con el plugin docker compose v2, además de espacio en disco local o almacenamiento compatible con S3 para tu biblioteca y ~10 GB para los contenedores y la base de datos. Se recomienda Linux; macOS y Windows (con WSL2) también funcionan.
¿Noodle Gallery admite la aceleración por GPU?
Sí. Usa una imagen de ML acelerada por GPU: -cuda para NVIDIA, -rocm para AMD o -openvino para Intel. Cambia la etiqueta de la imagen gallery-ml en docker-compose.yml de 'release' a 'release-cuda' (o la etiqueta de tu fabricante) y reinicia el stack.
¿Puedo almacenar mis fotos en almacenamiento compatible con S3?
Sí. Noodle Gallery admite cualquier backend compatible con S3, incluidos AWS S3, MinIO, Cloudflare R2, Backblaze B2 y Wasabi. Define IMMICH_STORAGE_BACKEND=s3 con el bucket, la región, el endpoint y las credenciales en tu archivo .env.
¿Noodle Gallery es gratuito?
Sí. Noodle Gallery es gratuito y de código abierto bajo licencia AGPL-3.0. Puedes ejecutarlo en cualquier hardware propio — sin suscripción, sin límite de almacenamiento y sin tarifas de uso.
¿Cómo actualizo Noodle Gallery a la última versión?
Ejecuta 'docker compose pull && docker compose up -d' en tu directorio noodle-gallery. Las migraciones de la base de datos se aplican automáticamente al iniciar. Haz siempre una copia de seguridad de tu base de datos antes de las actualizaciones mayores.