UGREEN NAS: Immich für Fotos einrichten
Teil 75 der UGREEN-Serie: Immich mit der offiziellen Compose-Datei auf der UGREEN NAS, Speicherorte für Fotos und Datenbank, die Falle automatischer Updates für PostgreSQL und die eingebaute Sicherung der Datenbank.
Geprüft am 03.11.2026 · für UGOS Pro 1.21.0.0190
Mit KI erstellt – redaktionelle Prüfung ausstehend
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Immich ist eine Fotoverwaltung zum Selbsthosten, die sich anfühlt wie die bekannten Foto-Clouds: Zeitleiste, Alben, Suche nach Inhalten, Gesichter, Karte und eine App fürs Handy, die Fotos automatisch sichert. Diese Anleitung zeigt, wie Sie Immich mit der offiziellen Compose-Datei auf der UGREEN NAS einrichten, wo Fotos und Datenbank liegen sollten, welche Falle automatische Updates für die Datenbank bedeuten und wie Sie die eingebaute Sicherung der Datenbank nutzen.
Getestet auf einer UGREEN DXP4800 Pro mit UGOS Pro 1.21.0.0190 und Docker 29.6.2, mit Immich 3.3.5. Für den Test haben wir eigene künstliche Landschaftsbilder hochgeladen. Der Name des Administrators ist in den Bildern ersetzt.
Voraussetzungen
- Eine UGREEN NAS mit der App Docker, siehe Teil 63
- SSH-Zugang, siehe Teil 52
- Grundwissen zu Compose, siehe Docker Compose als Grundlage
- Laut Immich mindestens 6 GB Arbeitsspeicher (empfohlen 8 GB) und 2 Prozessorkerne (empfohlen 4), dazu rund 6 GB Platz für Images und Modelle und Platz für Ihre Fotos
- Etwa 30 Minuten
Was Immich aus mehreren Teilen zusammensetzt
Immich besteht aus vier Containern. Der Server liefert Oberfläche und Schnittstelle, Machine Learning erkennt Inhalte und Gesichter, PostgreSQL speichert die Datenbank und Valkey dient als schneller Zwischenspeicher. Bei uns waren die Images zusammen rund 3,3 GB groß: Server 1683 MB, Machine Learning 738 MB, PostgreSQL 756 MB und Valkey 123 MB. Beim ersten Durchlauf lädt Machine Learning zusätzlich seine Modelle, bei uns 2,1 GB in ein eigenes Docker-Volume. Im Ruhezustand nach dem Einlesen belegten die vier Container zusammen rund 2,4 GB Arbeitsspeicher.
Schritt 1: Speicherorte festlegen
Immich trennt zwei Speicherorte. UPLOAD_LOCATION nimmt die Fotos, Vorschaubilder und Sicherungen auf, DB_DATA_LOCATION die Datenbank. Die Fotos dürfen auf das große Volume mit Festplatten. Die Datenbank legen Sie auf ein SSD-Volume, denn sie arbeitet mit vielen kleinen Zugriffen. Laut Immich wird ein Netzwerkspeicher für die Datenbank nicht unterstützt, sie muss also auf einem lokalen Volume der NAS liegen. Liegt sie doch auf Festplatten, sieht die Compose-Datei dafür die Einstellung DB_STORAGE_TYPE: 'HDD' vor.
Für den Test lag bei uns alles im Projektordner auf dem SSD-Volume:
sudo mkdir -p /volume2/docker/immich
cd /volume2/docker/immich
Passen Sie volume2 an Ihre NAS an, auf vielen Geräten ist es volume1.
Verifizieren: Die Ausgabe von pwd zeigt den neuen Projektordner.
Schritt 2: Die offiziellen Dateien laden und anpassen
Immich verlangt, die Compose-Datei des aktuellen Release zu verwenden und nicht die aus dem Hauptzweig. Laden Sie beide Dateien direkt aus dem Release:
sudo wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
sudo wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Bei uns war das Release 3.3.5. Öffnen Sie die .env mit sudo vi .env oder nano, falls installiert, und passen Sie diese Zeilen an:
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
TZ=Europe/Berlin
IMMICH_VERSION=v3
DB_PASSWORD=ZUFALLSWERT
Liegen Ihre Fotos auf einem anderen Volume, tragen Sie einen absoluten Pfad ein, etwa UPLOAD_LOCATION=/volume1/fotos/immich. Bei TZ entfernen Sie das # am Zeilenanfang. Das Passwort darf laut Immich nur aus Buchstaben und Ziffern bestehen. Einen passenden Zufallswert erzeugt openssl, er erscheint dabei nur auf Ihrem Bildschirm:
openssl rand -hex 24
IMMICH_VERSION=v3 hält Immich in der Hauptversion 3, kleinere Updates kommen mit. Schränken Sie die Rechte der .env ein, sie enthält das Passwort der Datenbank:
sudo chmod 600 .env
Verifizieren: Die Ausgabe von ls -la zeigt docker-compose.yml und .env, die .env mit -rw-------.
Schritt 3: Immich von automatischen Updates ausschließen
Ohne diesen Schritt war unsere Datenbank im Test wenige Minuten nach dem ersten Start nicht mehr startfähig. Auf unserer NAS läuft What's Up Docker mit automatischen Updates für alle Container. Kurz nach dem ersten Start sah es den neuen Container der Datenbank, fand ein Image mit höherer Versionsnummer und tauschte PostgreSQL 14 gegen 18 aus. Die neue Version startete nicht mehr und meldete im Protokoll:
Error: in 18+, these Docker images are configured to store database data in a
format which is compatible with "pg_ctlcluster" ...
Der Server fand daraufhin keine Datenbank mehr und startete in einer Schleife neu. Den Sprung über eine Hauptversion verträgt PostgreSQL nicht ohne Umzug der Daten. Immich legt die Version der Datenbank deshalb in der Compose-Datei mit einem festen Digest fest, und daran sollte kein Werkzeug drehen.
Nutzen Sie What's Up Docker, ergänzen Sie bei jedem der vier Dienste ein Label, das ihn von der Überwachung ausnimmt:
container_name: immich_postgres
labels:
- wud.watch=false
Mit dem Label ließ What's Up Docker die Container bei uns in Ruhe. Andere Update-Werkzeuge haben eigene Labels für denselben Zweck. Updates von Immich spielen Sie dann bewusst ein, nach einem Blick in die Hinweise zum Release.
Verifizieren: Nach dem Start zeigt sudo docker compose ps beim Dienst database ein Image mit 14 im Namen.
Schritt 4: Immich starten
sudo docker compose pull
sudo docker compose up -d
Die Images kommen von ghcr.io. Bei uns brach das gleichzeitige Laden mit toomanyrequests ab, nacheinander mit einer Pause klappte es. Laden Sie die Dienste in dem Fall einzeln:
sudo docker compose pull database
sudo docker compose pull redis
sudo docker compose pull immich-server
sudo docker compose pull immich-machine-learning
Nach rund einer Minute melden alle vier Container healthy:
sudo docker compose ps --format "{{.Name}} {{.Status}}"
immich_machine_learning Up About a minute (healthy)
immich_postgres Up About a minute (healthy)
immich_redis Up About a minute (healthy)
immich_server Up About a minute (healthy)
Verifizieren: Alle vier Container stehen auf healthy, und http://ADRESSE-DER-NAS:2283 zeigt die Startseite von Immich.
Schritt 5: Den Administrator anlegen und einrichten
Öffnen Sie http://ADRESSE-DER-NAS:2283 und klicken Sie auf der Willkommensseite auf die Schaltfläche zum Start, bei uns Getting Started. Das erste Konto wird Administrator. Immich schützt diese Ersteinrichtung nicht mit einem Token, legen Sie das Konto deshalb direkt nach dem Start an. Danach führt ein Assistent durch einige Einstellungen. Die Seite zur Privatsphäre auf dem Server ist die wichtigste:

Beide Funktionen sprechen externe Dienste von Immich an. Die Karte lädt Kacheln für die Kartenansicht, die Versionsprüfung fragt regelmäßig nach neuen Versionen. Wer nichts nach außen senden möchte, schaltet beide ab, das geht später unter Einstellungen jederzeit. Auf der Seite für die Nutzer ist Google Cast bei uns ab Werk aus. Danach folgt die Speichervorlage:

Mit YYYY/MM/DD legt Immich die Originale in Ordnern nach Aufnahmedatum ab. Das macht die Dateien auch ohne Immich auffindbar, etwa in einer Sicherung. Die nächste Seite erinnert an eine Sicherung nach der 3-2-1-Regel:

Zum Schluss verweist der Assistent auf die App fürs Handy, mit Fertig landen Sie in der Zeitleiste.
Verifizieren: Nach Fertig zeigt Immich die leere Zeitleiste mit dem Hinweis, das erste Foto hochzuladen.
Schritt 6: Fotos hochladen und die Ablage prüfen
Laden Sie über Hochladen oben rechts einige Fotos hoch. Immich liest das Aufnahmedatum aus den EXIF-Daten und sortiert danach.

Die Anzeige Speicherplatz unten links bezieht sich auf das ganze Volume, auf dem UPLOAD_LOCATION liegt, nicht nur auf Immich. Auf der NAS liegen die Originale nach der Speichervorlage:
sudo find library/library -name "*.jpg"
library/library/admin/2025/05/14/berge.jpg
library/library/admin/2025/07/02/see.jpg
library/library/admin/2024/12/28/schnee.jpg
Die Ausgabe ist ein Auszug. Daneben legt Immich die Ordner thumbs für Vorschaubilder, encoded-video für umgewandelte Videos, upload, profile und backups an. thumbs und encoded-video lassen sich neu erzeugen, für die Sicherung wichtig sind library, upload, profile und backups.
Verifizieren: Unter library/library erscheinen die Fotos in Ordnern nach Datum.
Schritt 7: Hintergrundaufgaben verstehen
Nach dem Hochladen arbeitet Immich eine Reihe von Aufgaben ab: Vorschaubilder erzeugen, Metadaten auslesen, Inhalte für die Suche erfassen und Gesichter erkennen. Den Stand zeigt die Verwaltung unter Server-Tasks.

Wie lange das dauert, hängt von der Zahl der Fotos und vom Prozessor ab. Unsere sechs Testbilder waren nach wenigen Minuten fertig. Die Container für Server und Machine Learning belegten bei uns danach zusammen rund 1,9 GB Arbeitsspeicher. Planen Sie das erste Einlesen einer großen Sammlung deshalb für eine Zeit, in der die NAS sonst wenig zu tun hat. Den Überblick über Fotos, Videos und Speicher je Nutzer zeigen die Server-Statistiken:

Verifizieren: Unter Server-Tasks stehen bei allen Aufgaben 0 aktive und 0 wartende Aufträge, sobald das Einlesen fertig ist.
Schritt 8: Die Sicherung der Datenbank prüfen
Ohne Datenbank sind die Fotos zwar noch da, Alben, Gesichter und Einstellungen aber verloren. Immich sichert die Datenbank deshalb selbst. Unter Verwaltung, Einstellungen, Einstellungen zum Datenbankexport war das bei uns ab Werk eingeschaltet:

Die Sicherungen landen im Ordner backups unter UPLOAD_LOCATION. Immich warnt auf dieser Seite selbst: Die Aufgaben werden nicht überwacht, über Fehler erhalten Sie keine Meldung. Sehen Sie deshalb gelegentlich nach, ob neue Dateien entstehen:
sudo ls -la library/backups
Die Sicherung der Datenbank liegt auf demselben Volume wie die Fotos. Für den Schutz gegen Ausfall gehört der ganze Ordner library samt backups in Ihre Sicherung nach außen, siehe Teil 53 und Teil 61. Den Ordner postgres sichern Sie besser nicht im laufenden Betrieb, dafür ist der Export da. Die Exporte enthalten alle Kontodaten, geben Sie den Ordner nicht als Freigabe frei. Zurückspielen lässt sich ein Export laut Immich in der Weboberfläche unter Verwaltung, Wartung, siehe Sicherung und Wiederherstellung.
Verifizieren: Unter Einstellungen zum Datenbankexport ist Datenbank regelmäßig sichern eingeschaltet, und am Morgen nach der Einrichtung liegt in library/backups eine Datei mit der Endung .sql.gz.
Typische Fehler
- Datenbank startet nicht nach einem Update: Ein Update-Werkzeug hat das Image der Datenbank über eine Hauptversion gehoben. Dienste mit wud.watch=false oder dem Label Ihres Werkzeugs ausnehmen und im Projektordner sudo docker compose up -d ausführen, damit wieder das Image aus der Compose-Datei läuft. Startet die Datenbank dann nicht, stellen Sie sie aus dem Export wieder her.
- Server startet in einer Schleife neu: Im Protokoll steht ENOTFOUND database. Die Datenbank läuft nicht, zuerst deren Protokoll lesen.
- Laden der Images bricht mit toomanyrequests ab: Dienste einzeln und mit Pause laden.
- Datenbank auf Netzwerkspeicher: Wird laut Immich nicht unterstützt. DB_DATA_LOCATION auf ein lokales Volume legen.
- Fremder wird Administrator: Die Ersteinrichtung ist nicht geschützt. Konto direkt nach dem Start anlegen und Port 2283 nicht ins Internet freigeben.
- Sicherung läuft unbemerkt nicht: Immich meldet Fehler beim Export nicht. Ordner backups regelmäßig prüfen.
Häufige Fragen
Kann Immich Fotos vom Handy automatisch sichern?
Ja, mit der App für Android und iOS. Für die Verbindung von unterwegs brauchen Sie einen sicheren Zugang zur NAS, etwa über VPN oder einen Reverse Proxy mit HTTPS. Port 2283 direkt ins Internet zu öffnen ist keine gute Idee. Im Heimnetz tragen Sie in der App http://ADRESSE-DER-NAS:2283 als Server ein.
Kann Immich vorhandene Fotoordner einbinden, ohne sie zu kopieren?
Ja, über Externe Bibliotheken in der Verwaltung. Dafür binden Sie den Ordner zusätzlich in die Compose-Datei ein, am besten nur lesend mit :ro.
Nutzt Immich die Intel-Grafik der NAS?
Die Compose-Datei enthält auskommentierte Abschnitte für Hardware-Beschleunigung beim Umwandeln von Videos, darunter quicksync und vaapi. Dafür laden Sie zusätzlich hwaccel.transcoding.yml aus demselben Release in den Projektordner und entfernen die Kommentarzeichen beim Dienst immich-server. Wie die Grafik an Container weitergereicht wird, zeigt Teil 81.
Wie aktualisiere ich Immich?
Lesen Sie zuerst die Hinweise zum Release, denn größere Versionen ändern manchmal die Compose-Datei. Dann im Projektordner:
sudo docker compose pull
sudo docker compose up -d
Wie viel Platz brauchen Vorschaubilder?
Zusätzlich zu den Originalen legt Immich Vorschaubilder in mehreren Größen an. Planen Sie dafür einen Aufschlag auf die Größe Ihrer Sammlung ein und behalten Sie den Ordner thumbs im Blick.
Fazit
Immich läuft auf der UGREEN NAS mit der offiziellen Compose-Datei in wenigen Minuten. Drei Dinge entscheiden über einen ruhigen Betrieb: die Datenbank auf einem lokalen SSD-Volume, keine automatischen Updates für die Container von Immich und eine Sicherung, die den Export der Datenbank und die Fotos nach außen bringt. Den Administrator legen Sie direkt nach dem Start an, und die Funktionen mit externen Diensten schalten Sie nach Bedarf ab.


