Instalacja
Uruchom Noodle Gallery za pomocą Docker Compose w niecałe pięć minut. Kompatybilne z każdą istniejącą instalacją Immich.
Szukasz szczegółowych instrukcji? Przeczytaj pełną dokumentacjęMigracja z Immich
Masz już uruchomiony Immich? Przejście jest proste — zamień dwie nazwy obrazów w pliku docker-compose.yml i podnieś IMMICH_VERSION w pliku .env.
Aktualna wersja to 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 Następnie pobierz nowe obrazy i zrestartuj:
docker compose pull && docker compose up -d Twoje dane, baza danych i konfiguracja są w pełni kompatybilne — żadne kroki migracji nie są potrzebne.
Gallery dostarcza skrypt czyszczący w formie SQL, który usuwa wszystkie tabele, kolumny i wpisy migracji specyficzne dla Gallery — Wspólne Przestrzenie, rozpoznawanie zwierząt, klasyfikacje, dane o duplikatach — i pozostawia czystą bazę danych Immich. Twoje zdjęcia i filmy nigdy nie są naruszane. Po prostu zamień z powrotem dwie nazwy obrazów i znów jesteś na wersji upstream.
Przeczytaj instrukcję powrotuCiekawi Cię, co Gallery dodaje do Immich? Przeczytaj pełne porównanie Gallery vs. Immich →
Wymagania
docker compose (wtyczka v2) Pobierz pliki konfiguracyjne
Utwórz katalog dla Noodle Gallery i pobierz plik Docker Compose oraz szablon środowiska.
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 na .env. Skonfiguruj środowisko
Otwórz plik .env i dostosuj swoje ustawienia. Najważniejsze opcje znajdują się na górze — pamięć masowa S3 jest opcjonalna.
# ── Ustawienia podstawowe ─────────────────────────────────────────
# Lokalizacja zapisu zdjęć i filmów
UPLOAD_LOCATION=./library
# Lokalizacja danych PostgreSQL (musi być lokalny dysk, nie zasób sieciowy)
DB_DATA_LOCATION=./postgres
# Strefa czasowa: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Etc/UTC
# Tag obrazu kontenera — "release" dla aktualnej, "v4" dla ostatniej v4.x lub np. "v4.0.1" aby przypiąć
IMMICH_VERSION=release
# WAŻNE: Zastąp losowym hasłem (tylko A-Za-z0-9)
DB_PASSWORD=change-me-to-something-random
# Te wartości domyślne rzadko trzeba zmieniać
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
# ── Pamięć masowa kompatybilna z S3 (opcjonalna) ────────────────────────
# Odkomentuj, aby zapisywać przesłane pliki w S3 zamiast na lokalnym dysku.
# Działa z AWS S3, MinIO, Cloudflare R2, Backblaze B2, Wasabi itd.
# IMMICH_STORAGE_BACKEND=s3
# IMMICH_S3_BUCKET=moj-gallery-bucket
# 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 Referencja zmiennych
UPLOAD_LOCATION Ścieżka do przesłanych mediów. W środowisku produkcyjnym użyj ścieżki bezwzględnej. DB_DATA_LOCATION Ścieżka do danych PostgreSQL. Musi być lokalny dysk — zasoby sieciowe nie są obsługiwane. DB_PASSWORD Hasło bazy danych. Tylko znaki A-Za-z0-9. Zmień przed pierwszym startem. IMMICH_VERSION Tag kontenera. release = aktualna, v4 = ostatnia v4.x, lub przypnij do konkretnej wersji. IMMICH_STORAGE_BACKEND Ustaw na s3, aby zapisywać nowe przesłane pliki w S3. Domyślnie: disk. Istniejące pliki na dysku nadal działają. IMMICH_S3_BUCKET Nazwa bucketa S3. Wymagana przy pamięci masowej S3. IMMICH_S3_ENDPOINT Niestandardowy punkt końcowy dla usług spoza AWS (MinIO, R2, B2). Pomiń dla AWS S3. IMMICH_S3_SERVE_MODE redirect zwraca presigned URL-e (szybciej). proxy streamuje przez serwer. Domyślnie: redirect. Uruchom kontenery
Z katalogu noodle-gallery wykonaj następujące polecenie:
docker compose up -d To polecenie pobiera obrazy kontenerów, tworzy bazę danych i uruchamia wszystkie usługi. Przy pierwszym starcie pobieranych jest ~2 GB obrazów, co może potrwać kilka minut.
docker compose (ze spacją), a nie docker-compose (z myślnikiem). Samodzielny plik binarny docker-compose jest przestarzały. Otwórz interfejs webowy
Otwórz http://twoj-adres-ip-serwera:2283 w przeglądarce. Zostaniesz poproszony o utworzenie pierwszego konta administratora.
http://localhost:2283 Aplikacja mobilna (Android & iOS) łączy się z tym samym adresem URL. Pobierz ją w Play Store lub App Store i wprowadź adres URL swojego serwera.
Akceleracja GPU opcjonalna
Dla szybszej inferencji ML (rozpoznawanie twarzy, CLIP, rozpoznawanie zwierząt) użyj obrazu ML z akceleracją GPU:
# W pliku docker-compose.yml zmień tag obrazu ML:
image: ghcr.io/open-noodle/gallery-ml:${IMMICH_VERSION:-release}-cuda
Dostępne tagi: -cuda (NVIDIA), -rocm (AMD), -openvino (Intel).
Aktualizacja
Zaktualizuj do najnowszej wersji:
docker compose pull
docker compose up -d Migracje bazy danych są wykonywane automatycznie przy starcie. Przed większymi aktualizacjami wersji zawsze najpierw wykonaj kopię zapasową bazy danych.
Dokumentacja API
Gallery udostępnia pełne REST API udokumentowane przez OpenAPI. Każda działająca instancja oferuje interaktywny interfejs Swagger pod adresem /doc — wraz ze wszystkimi specyficznymi dla forka punktami końcowymi dla Wspólnych Przestrzeni, grup użytkowników i rozpoznawania zwierząt.
http://twoj-serwer:2283/doc API można też przeglądać na demo na żywo:
Poznaj API na demo.opennoodle.deNajczęściej zadawane pytania
Jak zmigrować z Immich do Noodle Gallery?
Zamień dwie nazwy obrazów w swoim pliku docker-compose.yml: zastąp ghcr.io/immich-app/immich-server obrazem ghcr.io/open-noodle/gallery-server, a ghcr.io/immich-app/immich-machine-learning obrazem ghcr.io/open-noodle/gallery-ml. Następnie wykonaj 'docker compose pull && docker compose up -d'. Twoje dane, baza danych i konfiguracja są w pełni kompatybilne — żadne kroki migracji nie są wymagane. Zawsze najpierw wykonaj kopię zapasową bazy danych za pomocą pg_dumpall.
Czy mogę zaimportować swoje zdjęcia z Google Zdjęcia?
Tak. Noodle Gallery ma wbudowanego asystenta importu, który wczytuje archiwum Google Takeout bezpośrednio w przeglądarce. Data, współrzędne GPS, opisy, ulubione i struktura albumów zostają w pełni zachowane. Żadnego skryptu, żadnej wiersza poleceń — wystarczy przesłać plik ZIP.
Jakie są wymagania systemowe?
2+ rdzenie CPU, co najmniej 4 GB RAM (zalecane 6 GB+ dla uczenia maszynowego), Docker Engine v25+ z wtyczką docker compose v2 oraz lokalna przestrzeń dyskowa lub pamięć masowa kompatybilna z S3 na Twoją bibliotekę i ~10 GB na kontenery i bazę danych. Zalecany jest Linux; macOS i Windows (z WSL2) również działają.
Czy Noodle Gallery obsługuje akcelerację GPU?
Tak. Użyj obrazu ML z akceleracją GPU: -cuda dla NVIDIA, -rocm dla AMD lub -openvino dla Intela. Zmień tag obrazu gallery-ml w pliku docker-compose.yml z 'release' na 'release-cuda' (lub tag swojego producenta) i zrestartuj stos.
Czy mogę przechowywać zdjęcia w pamięci masowej kompatybilnej z S3?
Tak. Noodle Gallery obsługuje dowolny backend kompatybilny z S3, w tym AWS S3, MinIO, Cloudflare R2, Backblaze B2 i Wasabi. Ustaw IMMICH_STORAGE_BACKEND=s3 wraz z bucketem, regionem, punktem końcowym i danymi dostępu w pliku .env.
Czy Noodle Gallery jest darmowe?
Tak. Noodle Gallery jest darmowe i open source na licencji AGPL-3.0. Możesz uruchomić je na dowolnym własnym sprzęcie — bez abonamentu, bez limitu pamięci masowej i bez opłat za użytkowanie.
Jak zaktualizować Noodle Gallery do najnowszej wersji?
Wykonaj 'docker compose pull && docker compose up -d' w katalogu noodle-gallery. Migracje bazy danych są przeprowadzane automatycznie przy starcie. Przed większymi aktualizacjami wersji zawsze najpierw wykonaj kopię zapasową bazy danych.