Immich ist eine Open-Source-Fotoverwaltung zum Selbsthosten, mit Auto-Upload vom Handy, Gesichtserkennung und Kartenansicht. Die Fotos liegen auf deinem Server, der Standort ist wählbar. Immich kostet keine Lizenzgebühr, du zahlst nur den Server; passende Angebote zeigt der VPS-Vergleich.
Dieser Guide zeigt dir Schritt für Schritt, wie du Immich auf deinem eigenen Server installierst.
Voraussetzungen
Was du brauchst:
- Ein VPS mit genug RAM: laut Immich-Doku mindestens 6 GB, empfohlen 8 GB; ohne Machine Learning reichen 4 GB. CPU: mindestens 2, empfohlen 4 Kerne (Stand: 07.11.2026, Immich-Anforderungen). Noch keinen? Passende Server mit 8+ GB RAM findest du hier →
- Genug Storage für deine Fotos (siehe Rechner unten)
- Ubuntu 22.04 oder 24.04
- Docker & Docker Compose
- Optional: Domain für HTTPS
Storage-Rechner
| Fotos | Geschätzter Speicher | Empfohlener VPS-Storage |
|---|---|---|
| 5.000 | ~25-50 GB | 100 GB |
| 20.000 | ~100-200 GB | 300 GB |
| 50.000 | ~250-500 GB | 500 GB |
| 100.000+ | ~500 GB - 1 TB | Dedicated oder NAS |
Die Immich-Doku empfiehlt für die Datenbank lokalen SSD-Speicher, nie eine Netzwerkfreigabe. Wie viel Speicher es je Tarif gibt, zeigt der VPS-Vergleich mit Preisen inkl. USt.
Server für Immich gesucht?
Für Immich mit Machine Learning empfiehlt die Immich-Doku 8 GB RAM. Hier findest du passende Server.
Server mit 8+ GB RAM anzeigenSchritt 1: Docker installieren
Falls Docker noch nicht installiert ist:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Neu einloggen oder: newgrp docker
Docker Compose prüfen:
docker compose version
# Sollte v2.x anzeigen
Schritt 2: Immich installieren
Immich bietet ein offizielles Installationsscript:
mkdir -p ~/immich && cd ~/immich
curl -fsSL https://get.immich.app | bash
Was das Script macht:
- Lädt docker-compose.yml herunter
- Erstellt .env mit sicheren Passwörtern
- Erstellt upload/ Verzeichnis für Fotos
Immich starten:
docker compose up -d
Der erste Start dauert einige Minuten - es werden mehrere Container heruntergeladen (Web, Server, ML, Redis, PostgreSQL).
Wichtig: Notiere dir das automatisch generierte Passwort aus der
.envDatei!
Schritt 3: Erste Einrichtung
Öffne http://DEINE-SERVER-IP:2283 im Browser:
- Klicke 'Getting Started'
- Erstelle den Admin-Account (E-Mail + Passwort)
- Optional: Weitere Benutzer für Familie anlegen
- Fertig! Du kannst jetzt Fotos hochladen
Tipp: Der Admin kann später weitere User einladen und Speicherquoten setzen.
Schritt 4: Externe Bibliothek einbinden (Optional)
Wenn du bereits Fotos auf dem Server hast, passe docker-compose.yml an:
services:
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /pfad/zu/deinen/fotos:/usr/src/app/external:ro # Nur lesen
Dann:
- Container neu starten:
docker compose up -d - In Immich: Administration → External Libraries → Add Library
- Pfad
/usr/src/app/externaleintragen - Scan starten - Immich indexiert alle Fotos
Schritt 5: Mobile App einrichten
Die Immich App ist in App Store und Play Store verfügbar:
- App installieren (Suche: 'Immich')
- Server-URL eingeben:
http://DEINE-IP:2283 - Mit deinem Account einloggen
- Backup aktivieren: Einstellungen → Backup → Background Backup einschalten
Tipp: Für Backup nur über WLAN: Deaktiviere 'Use cellular data'
Warnung: Ohne HTTPS werden Fotos unverschlüsselt übertragen! Für Nutzung außerhalb des Heimnetzwerks: HTTPS einrichten (nächster Schritt).
Schritt 6: HTTPS mit Caddy einrichten
Für sicheren Zugriff von überall richten wir einen Reverse Proxy ein. Caddy ist einfacher als Nginx/Traefik:
Caddy zu docker-compose.yml hinzufügen:
services:
# ... bestehende Immich Services ...
caddy:
image: caddy:latest
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
depends_on:
- immich-server
volumes:
caddy_data:
Caddyfile erstellen:
photos.deinedomain.de {
reverse_proxy immich-server:2283
}
Neu starten:
docker compose up -d
Caddy holt automatisch ein SSL-Zertifikat von Let's Encrypt. Stelle sicher, dass deine Domain auf die Server-IP zeigt.
Wie importiere ich Google Photos in Immich?
Google Photos importierst du in Immich im Kern in zwei Schritten: Du exportierst die Bibliothek über Google Takeout als ZIP-Archive und lädst diese mit dem Community-Werkzeug immich-go hoch, das die Immich-Dokumentation dafür empfiehlt. immich-go liest die ZIPs direkt, übernimmt Aufnahmedatum, GPS-Daten und Beschreibungen aus den JSON-Dateien von Takeout und legt die Alben in Immich an.
Stand: 07.11.2026, geprüft gegen die Immich-Dokumentation zum CLI, das README von immich-go (Version v0.32.0) und die Google-Hilfe zu Takeout.
1. Takeout-Export anlegen
- Öffne Google Takeout und wähle nur „Google Fotos“ aus.
- Dateityp ZIP, Archivgröße 50 GB: Größere Exporte teilt Google in mehrere Archive auf, mit 50 GB entstehen die wenigsten Teile.
- Export erstellen und alle Teile (
takeout-…-001.zip,-002.zip…) vollständig herunterladen. Die Archive laufen laut Google nach etwa 7 Tagen ab.
2. API-Schlüssel in Immich anlegen
immich-go spricht über die API mit deinem Server. Den Schlüssel erzeugst du in der Immich-Weboberfläche in den Kontoeinstellungen unter „API Keys“. Welche Berechtigungen er braucht, listet die Installationsanleitung von immich-go; dort gibt es auch die fertigen Programmdateien für Linux, macOS und Windows.
3. Mit immich-go hochladen
immich-go läuft auf dem Rechner, auf dem die ZIPs liegen, und lädt über das Netz auf deinen Server. Nutze dafür die HTTPS-Adresse aus Schritt 6, sonst gehen Fotos und API-Schlüssel unverschlüsselt durchs Netz. Übergib alle Teile in einem Aufruf; ZIPs musst du nicht entpacken (TGZ-Archive schon):
immich-go upload from-google-photos --server=https://photos.deinedomain.de --api-key=DEIN-API-KEY /pfad/zu/takeout-*.zip
Was passiert mit Alben und Metadaten?
Die Standardwerte laut Befehlsreferenz von immich-go:
- Alben:
--sync-albumsist aktiv und legt die Alben aus Takeout in Immich an. Alben ohne Titel überspringt immich-go, außer mit--include-untitled-albums. - Metadaten: Aufnahmedatum, GPS-Koordinaten und Beschreibungen kommen aus den JSON-Dateien. Dateien ohne passende JSON-Datei lässt immich-go weg; mit
--include-unmatchedkommen sie mit weniger Metadaten dazu. - Archiv, Partner, Papierkorb: Archivierte Fotos und Fotos vom Partner-Konto werden übernommen, Fotos aus dem Papierkorb nicht (
--include-trashed). - Tags: Personennamen aus Takeout und ein Takeout-Zeitstempel landen als Tags in Immich.
- Duplikate: Dateien, die schon auf dem Server liegen, lädt immich-go nicht erneut hoch. Einen abgebrochenen Import kannst du deshalb neu starten.
Hinweis: Das offizielle Immich-CLI (
immich upload) lädt Dateien hoch, liest laut Dokumentation aber keine Takeout-JSON-Dateien aus. Für Takeout empfiehlt die Immich-Dokumentation immich-go.
Machine Learning konfigurieren
Immich nutzt ML für Gesichtserkennung und Objektsuche. Bei großen Bibliotheken lohnt sich Tuning:
ML deaktivieren
Machine Learning schaltest du unter Administration → Settings → Machine Learning Settings ab. Damit der Dienst gar nicht startet, kommentierst du den Abschnitt immich-machine-learning in der docker-compose.yml aus (Stand: 07.11.2026, Immich-FAQ).
ML-Modell ändern
Das Modell der Smart Search stellst du unter Administration → Settings → Machine Learning Settings → Smart Search → Model Name ein (Immich-Doku zur Suche).
Hinweis: Der erste ML-Durchlauf kann bei großen Bibliotheken lange dauern. Den Fortschritt zeigt Administration → Job Queues.
Backup-Strategie
Deine Fotos sind wichtig - richte unbedingt Backups ein:
Täglich: PostgreSQL Datenbank
docker exec immich_postgres pg_dumpall > backup.sql
Wöchentlich: Upload-Verzeichnis (Fotos) mit rsync zum Backup-Server oder Storage Box
Beispiel Cronjob:
# Tägliches DB-Backup
0 3 * * * docker exec immich_postgres pg_dumpall > /backup/immich-db-$(date +\%Y\%m\%d).sql
# Wöchentliches Foto-Backup (inkrementell)
0 4 * * 0 rsync -avz ~/immich/upload/ [email protected]:/immich-backup/
Häufige Probleme
ML-Container startet nicht (OOM)
Zu wenig RAM. Entweder VPS upgraden oder ML deaktivieren.
Fotos werden doppelt angezeigt
Aktiviere 'Detect duplicate assets' in Administration → Jobs vor dem nächsten Import.
Mobile App findet Server nicht
Prüfe:
- Firewall Port 2283 offen?
- URL korrekt (http:// nicht vergessen)?
- Server im gleichen Netzwerk?
Thumbnails laden langsam
NVMe-Storage hilft. Oder: Thumbnail-Größe reduzieren in Administration → Settings.
Gesichter werden nicht erkannt
ML-Job manuell starten: Administration → Jobs → Face Detection → Run
Performance-Tipps für große Bibliotheken
Ab 20.000 Fotos lohnt sich Tuning. Zwei Maßnahmen helfen:
- Datenbank auf lokalem SSD/NVMe-Speicher — laut Immich-Doku nie auf einer Netzwerkfreigabe (Immich-Anforderungen).
- ML-Jobs in Nebenzeiten planen — Der erste ML-Durchlauf kann bei großen Bibliotheken lange dauern. Plane den Import nachts oder am Wochenende; den Fortschritt zeigt Administration → Job Queues.
Für den VPS bedeutet das laut Immich-Doku: mindestens 6 GB RAM, empfohlen 8 GB, und empfohlen 4 Kerne; ohne Machine Learning reichen 4 GB RAM (Stand: 07.11.2026).
Fazit
Die Fotos liegen auf deinem Server, Standort wählbar. Wer Fotos anderer verwaltet, bleibt für die DSGVO-Einhaltung verantwortlich, in der Regel mit AV-Vertrag mit dem Hoster. Auf demselben Server kannst du auch Paperless für Dokumente oder Vaultwarden als Passwort-Manager betreiben.
Unser Immich Server-Rechner berechnet RAM und Storage für deine Foto-Sammlung und zeigt passende Angebote; wie die Liste sortiert ist, erklärt die Methodik.
Häufig gestellte Fragen
Wie lange dauert die Google Photos Migration?
Kann ich Immich auch ohne Domain nutzen?
Wie viel Speicher brauchen die Thumbnails?
Ist Immich stabil genug für Produktivbetrieb?
Weitere Self-Hosting Guides
Bereit für deine eigene Foto-Cloud?
Für Immich mit Machine Learning empfiehlt die Immich-Doku 8 GB RAM. Hier findest du passende Server.
Server mit 8+ GB RAM




