Immich ist die wohl beste Open-Source-Alternative zu Google Photos – und das Beste: Alle Daten bleiben bei dir! In diesem Blogbeitrag zeige ich dir, wie du Immich unter Docker installieren kannst, inklusive aller wichtigen Einstellungen für die Gesichtserkennung.
Hinweis: Die Installation von Docker selbst wird hier nicht behandelt – ich gehe davon aus, dass Docker und Docker Compose auf deinem System bereits laufen.
Wenn du Docker noch nicht installiert hast, hier findest du eine Anleitung: Docker Desktop für WINDOWS installieren
📋 Was ist Immich?
Immich ist eine leistungsstarke, selbstgehostete Foto- und Video-Backup-Lösung mit folgenden Highlights:
- 🔒 Datenschutz: Deine Fotos bleiben auf deinem Server
- 📱 Automatisches Backup via iOS/Android App
- 🧠 KI-Funktionen: Gesichtserkennung, Objekterkennung, Smart Search
- 👨👩👧👦 Multi-User-fähig inklusive geteilter Alben
- 🖼️ Unterstützt RAW, HEIC, Live-Photos und mehr
Video: Immich unter Docker installieren – Die perfekte Google Photos Alternative
Sprache: 🇩🇪|🇬🇧
☝️ Benutze YouTube Untertitel für alle Sprachen.
🚀 Installation von Immich mit Docker
1. Vorbereitung
Erstelle ein Verzeichnis für Immich und wechsle hinein:
bash
mkdir immich
cd immich
2. Die .env Datei erstellen
Erstelle eine Datei namens .env mit folgendem Inhalt:
env
# Immich - .env Konfiguration # ==================================== # PFADE (UNBEDINGT ANPASSEN!) # Wo sollen die Fotos und Videos gespeichert werden? UPLOAD_LOCATION=/pfad/zu/deinen/fotos # Wo soll die Datenbank gespeichert werden? DB_DATA_LOCATION=/pfad/zur/datenbank # Cache für Machine Learning (optional) ML_CACHE=./immich-cache # DATENBANK (Passwort unbedingt ändern!) DB_USERNAME=postgres DB_PASSWORD=postgres # ← ÄNDERN! Nur Buchstaben/Zahlen DB_DATABASE_NAME=immich # ALLGEMEIN TZ=Europe/Berlin IMMICH_VERSION=release
Wichtig: Passe die Pfade (UPLOAD_LOCATION und DB_DATA_LOCATION) an dein System an und ändere das DB_PASSWORD!
3. Die docker-compose.yml Datei
Jetzt kommt das Herzstück – die docker-compose.yml. Ich habe sie bewusst minimalistisch und übersichtlich gehalten, ohne überflüssige Optionen:
yaml
name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:2283
depends_on:
- redis
- database
restart: always
networks:
- immich-network
labels:
- "com.centurylinklabs.watchtower.enable=true"
# >>> GESICHTSERKENNUNG - HIER WIRD DIE MAGIE PROGRAMMIERT <<<
# Der Machine Learning Container ist für alle KI-Funktionen zuständig:
# - Gesichtserkennung und -zuordnung
# - Objekterkennung für die Smart Search
# - OCR (Texterkennung in Bildern)
# - Scene detection für Videos
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- ${ML_CACHE:-./ml-cache}:/cache
environment:
- MACHINE_LEARNING_WORKER_TIMEOUT=0 # Nie wegen Inaktivität runterfahren
- MACHINE_LEARNING_CACHE_MODELS=true # Modelle im RAM behalten
- MACHINE_LEARNING_MODEL_TTL=0 # Modelle nie entladen
env_file:
- .env
restart: always
networks:
- immich-network
labels:
- "com.centurylinklabs.watchtower.enable=true"
# <<< ENDE GESICHTSERKENNUNG >>>
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm
restart: always
networks:
- immich-network
labels:
- "com.centurylinklabs.watchtower.enable=true"
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.1-pgvectors0.2.0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
networks:
- immich-network
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
immich-network:
driver: bridge
Wenn du dich für die Watchtower interessierst um deine Docker Anwendungen automatisch updates zu lassen, hier findest du eine Anleitung: Watchtower für automatische Updates einrichten
🔍 Erklärung der Gesichtserkennungs-Einstellungen
Der immich-machine-learning Container ist das Herzstück für alle KI-Funktionen. Die drei wichtigsten Environment-Variablen sorgen für einen stabilen Betrieb:
Achte darauf, das die die Gesichtserkennung noch in den Einstellungen aktivieren musst:
Oben rechts auf das Profilbild klicken -> Verwaltung -> Lehrling-Maschine
„Gesichtserkennung“ und „Gesichter hinzufügen“ müssen beide eingeschaltet sein.
| Variable | Wert | Bedeutung |
|---|---|---|
MACHINE_LEARNING_WORKER_TIMEOUT | 0 | Der Worker fährt nie wegen Inaktivität runter. Sonst passiert es, dass der Container nach 5 Minuten ohne Jobs beendet wird – und dann die Gesichtserkennung nicht mehr funktioniert! |
MACHINE_LEARNING_CACHE_MODELS | true | Die geladenen KI-Modelle (z.B. buffalo_lfür Gesichter) bleiben im Arbeitsspeicher. Das beschleunigt die Erkennung enorm, weil sie nicht jedes Mal von der Festplatte geladen werden müssen. |
MACHINE_LEARNING_MODEL_TTL | 0 | Die Modelle werden nie aus dem Cache entfernt. Das ist die perfekte Ergänzung zu CACHE_MODELS=true. |
Warum sind diese Einstellungen so wichtig?
Ohne diese Konfiguration passiert folgendes: Der ML-Container fährt nach 5 Minuten Inaktivität runter (um RAM zu sparen). Wenn dann neue Fotos hochgeladen werden oder die Gesichtserkennung starten soll, ist der Container weg – die Jobs schlagen fehl. Mit unseren Einstellungen läuft der ML-Container permanent und ist sofort bereit, wenn er gebraucht wird.
4. Immich starten
bash
# Container starten docker compose up -d # Prüfen, ob alles läuft docker compose ps # Logs ansehen (optional) docker compose logs -f
Nach dem Start ist Immich unter http://deine-server-ip:2283 erreichbar. Der erste Benutzer, der sich registriert, wird automatisch Admin.
📱 Mobile Apps verbinden
Lade die offizielle Immich-App aus dem App Store (iOS) oder Play Store (Android) herunter. Als Server-URL gibst du ein:
text
http://<DEINE-SERVER-IP>:2283/api
Die App übernimmt dann das automatische Backup deiner Fotos und Videos.
⚙️ Nach der Installation: Gesichtserkennung testen
- Lade ein paar Fotos mit Personen hoch (via Web oder App)
- Gehe zu Verwaltung → Jobs in der WebUI
- Starte nacheinander:
- „Miniaturen“ (Thumbnails)
- „Gesichter erkennen“ (Face Detection)
- „Gesichtserkennung“ (Facial Recognition)
Nach einiger Zeit (je nach Fotoanzahl) sollten die erkannten Personen im Personen-Tabauftauchen.
Tipp: Falls keine Personen auftauchen, prüf in den Logs:
docker compose logs immich-machine-learning. Zeilen mit „Shutting down due to inactivity“ deuten auf fehlende Timeout-Einstellungen hin.
📝 Fazit
Mit dieser Anrichtung hast du eine voll funktionsfähige, datenschutzkonforme Google Photos Alternative am Laufen. Die Gesichtserkennung ist durch die optimierten Einstellungen stabil und zuverlässig.
Wichtige Punkte zum Merken:
.envDatei mit eigenen Pfaden anpassen- Datenbank-Passwort ändern!
- ML-Container mit
WORKER_TIMEOUT=0konfigurieren - Regelmäßig Backups der
UPLOAD_LOCATIONundDB_DATA_LOCATIONmachen
Ein VPN mit Home Netz Zugriff kannst du einfach einrichten, hier findest du eine Anleitung: Cloudflare Home Net Zugriff einrichten
Viel Spaß mit deiner eigenen Foto-Cloud! 📸

Link zur Unterstützung / Spende für den Kanal
Wenn meine Beiträge hilfreich sind oder dir geholfen haben, würde ich mich über eine Unterstützung sehr freuen 🙏
#Docker #Immich #Installation #ErsteSchritte #FotoArchiv #FotoVerwaltung