Zum Inhalt

Immich als eigene Foto-Cloud mit Docker installieren

Veröffentlicht am 7. August 2026 · Geschätzte Lesezeit: 5 Minuten

Immich sichert Fotos und Videos vom Smartphone auf deinem eigenen Server und macht sie über Zeitleiste, Alben und Suche zugänglich. Die Daten bleiben unter deiner Kontrolle, brauchen aber zusätzlich eine echte Sicherung. Plane für Installation und ersten Smartphone-Test etwa 30 bis 45 Minuten ein.

Voraussetzungen

  • Ein Linux-Server mit Docker und aktuellem Docker Compose
  • Ausreichend freier Speicher für Fotos, Videos, Vorschaubilder und Datenbank
  • Eine feste IP-Adresse oder DHCP-Reservierung für den Server
  • wget, openssl und ein Benutzer mit sudo-Rechten

1. Ordner für Immich anlegen

Lege den Arbeitsordner, den Datenbankordner und den Speicherort für Medien an:

sudo mkdir -p /opt/immich/postgres /srv/immich/library

Übergib die Ordner an deinen Linux-Benutzer. Ersetze <benutzer> durch deinen Benutzernamen:

sudo chown -R <benutzer>:<benutzer> /opt/immich /srv/immich

Wechsle in den Arbeitsordner:

cd /opt/immich

Datenbank nicht auf ein Netzlaufwerk legen

Der Ordner für DB_DATA_LOCATION muss auf einem lokalen Dateisystem liegen. Immich unterstützt für die PostgreSQL-Daten keinen NFS- oder SMB-Speicher. Der Medienordner darf getrennt liegen, muss aber zuverlässig erreichbar sein.

2. Offizielle Installationsdateien laden

Lade die aktuelle, zu einer stabilen Immich-Version passende Compose-Datei:

wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml

Lade die offizielle Umgebungsvorlage als aktive .env-Datei:

wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

3. Speicherorte und Zeitzone eintragen

Ersetze in .env die vorgegebenen Speicherorte durch die zuvor erstellten Ordner:

sed -i 's|^UPLOAD_LOCATION=.*|UPLOAD_LOCATION=/srv/immich/library|' .env
sed -i 's|^DB_DATA_LOCATION=.*|DB_DATA_LOCATION=/opt/immich/postgres|' .env

Aktiviere die Zeitzone für Deutschland:

sed -i 's|^# TZ=.*|TZ=Europe/Berlin|' .env

Prüfe die drei Werte:

grep -E '^(UPLOAD_LOCATION|DB_DATA_LOCATION|TZ)=' .env

4. Datenbankpasswort erzeugen

Dieser Befehl erzeugt lokal ein zufälliges Passwort aus erlaubten Zeichen, trägt es in .env ein und löscht die temporäre Shell-Variable wieder:

dbpass="$(openssl rand -hex 32)" && sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$dbpass|" .env && unset dbpass

Prüfe nur, ob ein Wert gesetzt ist, ohne ihn auszugeben:

grep -q '^DB_PASSWORD=.' .env && echo "Datenbankpasswort ist gesetzt"

Umgebungsdatei geheim halten

Die Datei .env enthält das Datenbankpasswort. Veröffentliche sie nicht, setze sie nicht in ein öffentliches Git-Repository und sichere sie verschlüsselt.

5. Container starten

Starte alle Immich-Dienste im Hintergrund. Führe den Befehl in /opt/immich aus:

docker compose up -d

Der erste Start lädt mehrere Images und kann einige Minuten dauern. Prüfe danach die Container:

docker compose ps

Zeige bei Problemen die letzten Protokollzeilen:

docker compose logs --tail=100

6. Administratorkonto anlegen

Öffne die Weboberfläche im Browser:

http://<server-ip>:2283

Ersetze <server-ip> durch die IP-Adresse deines Docker-Servers. Lege über Getting Started das erste Konto an; es erhält Administratorrechte. Verwende ein langes, einzigartiges Passwort und prüfe anschließend unter Administration die Speicher- und Sicherungseinstellungen.

Nicht ungeschützt veröffentlichen

Leite Port 2283 nicht direkt im Router weiter. Nutze für Fernzugriff ein VPN oder einen HTTPS-Reverse-Proxy. Fotos enthalten häufig Standort-, Personen- und Zeitdaten und verdienen denselben Schutz wie private Dokumente.

7. Smartphone verbinden

Installiere die offizielle Immich-App aus dem App Store oder Play Store. Trage als Serveradresse im Heimnetz Folgendes ein:

http://<server-ip>:2283

Ersetze <server-ip> wieder durch die Server-IP. Melde dich an, wähle in der App ein kleines Testalbum für die Sicherung aus und erlaube den benötigten Fotozugriff.

Erst mit einem Testalbum beginnen

Aktiviere nicht sofort die komplette Fotobibliothek. Prüfe zuerst mit wenigen Bildern, ob Upload, Zeitstempel und Wiedergabe wie erwartet funktionieren.

8. Vollständige Sicherung einrichten

Immich erstellt automatisch Datenbanksicherungen im Unterordner backups des Medienordners. Eine Datenbanksicherung enthält jedoch keine Fotos oder Videos. Starte vor der ersten externen Sicherung unter Administration → Job Queues zusätzlich den Auftrag Create Database Dump.

Kopiere danach den kompletten Medienordner auf ein separates, bereits eingehängtes Sicherungsziel. Ersetze <backup-ziel> durch dessen Pfad, zum Beispiel /mnt/backup:

rsync -a /srv/immich/library/ <backup-ziel>/immich-library/

Sichere außerdem Compose-Datei und .env:

sudo tar -czf "<backup-ziel>/immich-config-$(date +%F).tar.gz" -C /opt/immich docker-compose.yml .env

Immich ist nicht selbst das Backup

Eine Kopie auf demselben Server schützt weder vor Datenträgerdefekt noch vor versehentlichem Löschen. Nutze möglichst die 3-2-1-Regel: drei Kopien, zwei unterschiedliche Speichermedien und eine Kopie an einem anderen Ort.

Für den Rückweg bewahrst du Medienordner, .env, Compose-Datei und eine passende *.sql.gz-Datenbanksicherung gemeinsam auf. Bei einer Neuinstallation kopierst du die Medienunterordner zurück und wählst auf der Willkommensseite Restore from backup. Eine Wiederherstellung ersetzt die aktuelle Datenbank.

9. Immich aktualisieren

Erstelle zuerst eine Datenbank- und Dateisicherung und lies die offiziellen Versionshinweise. Lade danach im Arbeitsordner die neuen Images:

cd /opt/immich
docker compose pull

Erstelle die Container neu:

docker compose up -d

Prüfe anschließend Status und Protokoll:

docker compose ps
docker compose logs --tail=100 immich-server

Compose-Datei kann sich ändern

Bei größeren Versionswechseln kann Immich eine neue Compose-Datei oder Migration verlangen. Lade deshalb nicht nur neue Images, sondern befolge immer die aktuellen Upgrade-Hinweise des Projekts.

10. Typische Fehler beheben

Ist die Weboberfläche nicht erreichbar, prüfe zuerst alle Dienste:

docker compose ps

Bei einem Fehler zu healthcheck.start_interval ist die Docker Engine zu alt. Die offizielle Anleitung empfiehlt eine aktuelle Docker-Installation; vorübergehend kann die Zeile start_interval im Datenbank-Healthcheck auskommentiert werden.

Prüfe bei Speicherfehlern freien Platz und die in .env gesetzten Pfade:

df -h /srv/immich/library /opt/immich/postgres
grep -E '^(UPLOAD_LOCATION|DB_DATA_LOCATION)=' .env

Funktioniert die Smartphone-App im WLAN nicht, teste dieselbe Serveradresse zuerst im Browser des Smartphones. Ein Gastnetz oder eine Client-Isolation kann den Zugriff auf Geräte im Heimnetz blockieren.

11. Quellen und Video

Fertig

Immich läuft jetzt als eigene Foto-Cloud und speichert Medien unter /srv/immich/library. Lade mit der Smartphone-App ein Testfoto hoch, öffne es im Browser und kontrolliere, ob es im externen Sicherungsziel angekommen ist. Dann sind Server, App und grundlegender Backup-Weg eingerichtet.