PhotoPrism per Docker installieren: KI-gestützte Foto-Bibliothek für das Heimnetz¶
Veröffentlicht am 7. Oktober 2026 · Geschätzte Lesezeit: 7 Minuten
PhotoPrism indexiert Fotos und Videos automatisch per Computer-Vision, erkennt Gesichter, Objekte, Orte und Farben und macht die gesamte Sammlung über eine moderne Browser-Oberfläche durchsuchbar – ohne Cloud-Zwang, komplett lokal im Heimnetz.[1][2] Die Einrichtung mit Docker und MariaDB dauert etwa 20 Minuten; der erste Index-Durchlauf benötigt je nach Sammlungsgröße Minuten bis Stunden.
Voraussetzungen
- Ein Linux-Server mit Docker und Docker Compose
- Mindestens 2 CPU-Kerne und 4 GB RAM (die KI-Klassifikation ist speicherintensiv)[2]
- Mindestens 4 GB Swap-Speicher (für RAW-Dateien und Panoramen empfohlen)[4]
- Ein freier Port
2342im Heimnetz - Terminal-Zugriff mit
sudo-Rechten
1. Projektordner anlegen und compose.yaml laden¶
Erstelle einen eigenen Ordner für PhotoPrism und wechsle hinein:
Lade die offizielle Docker-Compose-Vorlage herunter:[6]
Die Datei enthält bereits einen vollständigen Stack mit PhotoPrism, MariaDB und optional Watchtower. Öffne sie mit einem Editor:
2. Speicherorte und Passwörter konfigurieren¶
In der compose.yaml müssen mindestens drei Dinge angepasst werden.
a) Admin-Passwort setzen¶
Ersetze den Platzhalter PHOTOPRISM_ADMIN_PASSWORD durch ein sicheres Passwort (mindestens 8 Zeichen):[1][2]
Passwort vor dem ersten Start ändern
Das Passwort wird nur beim ersten Start aus der Umgebungsvariable gelesen. Ist der Container einmal gestartet, änderst du es nur noch über docker compose exec photoprism photoprism passwd admin – die Umgebungsvariable wird dann ignoriert.
b) Pfad zu deinen Fotos eintragen¶
Suche die Zeile mit dem Volume-Eintrag für die Originalfotos und ersetze den Pfad:
| Platzhalter | Bedeutung |
|---|---|
/pfad/zu/deinen/fotos |
Absoluter Pfad zu deinen Original-Fotos (z. B. /mnt/nas/fotos) |
./storage |
Verzeichnis für Thumbnails, Cache, Sidecar-Dateien und Datenbank-Backups |
Du kannst mehrere Quellverzeichnisse als Unterordner von /photoprism/originals einbinden, falls deine Fotos an verschiedenen Orten liegen.
c) MariaDB-Datenbank-Passwörter festlegen¶
Ersetze auch die Datenbank-Passwörter. Am einfachsten erzeugst du zwei sichere Werte auf der Kommandozeile:
Führe den Befehl zweimal aus und trage die Ergebnisse in der compose.yaml an den Stellen für MYSQL_ROOT_PASSWORD und MYSQL_PASSWORD (beziehungsweise PHOTOPRISM_DATABASE_PASSWORD) ein.
Passwörter nicht in Git committen
Die compose.yaml enthält nach der Bearbeitung Klartext-Passwörter. Füge das Verzeichnis in eine .gitignore ein oder nutze Docker Compose Secrets für die Produktion.
3. MariaDB und PhotoPrism starten¶
Starte den Stack im Hintergrund:[1][2]
Der erste Start lädt die Container-Images herunter und initialisiert MariaDB. Prüfe den Fortschritt:
Sobald Meldungen wie Starting PhotoPrism server oder Listening on port 2342 erscheinen, ist das System bereit. Das kann 30–60 Sekunden dauern.
Prüfe, ob beide Container laufen:
Du solltest photoprism und mariadb im Status running sehen.
4. Admin-Konto einrichten¶
Öffne einen Browser und rufe die Adresse auf:
Ersetze <deine-server-ip> durch die IP deines Docker-Servers, zum Beispiel 192.168.1.20.
Du siehst den Login-Bildschirm. Melde dich an mit:
- Benutzername:
admin - Passwort: das in Schritt 2a festgelegte Passwort
Nach der Anmeldung gelangst du ins Dashboard. Gehe zu Library und klicke auf Start, um den ersten Index-Durchlauf zu starten.[7]
Erster Index kann Stunden dauern
PhotoPrism hasht jedes Bild mit SHA-1, extrahiert Metadaten, erzeugt Thumbnails und führt die KI-Klassifikation durch. Bei mehreren tausend Fotos plane mehrere Stunden ein. Der Fortschritt ist im Dashboard sichtbar.
5. Die wichtigsten Einstellungen nach der Installation¶
Zeitzone und Standort¶
Damit Karten und Zeiten korrekt funktionieren, ergänze in der compose.yaml unter environment::
TensorFlow für bessere KI-Erkennung¶
Seit 2025 kann PhotoPrism automatisch eine für deine CPU optimierte TensorFlow-Version installieren. Ergänze dazu in environment::
Beim nächsten Neustart lädt der Container das passende TensorFlow-Paket herunter und installiert es.[4]
Nur-Lesen-Modus für NAS-Fotos¶
Wenn die Originale auf einem schreibgeschützten NAS liegen, schalte den Schreibschutz ein:
Das unterbindet WebDAV-Uploads und Löschvorgänge – die Fotos bleiben unverändert.
6. SQLite oder MariaDB – was ist besser?¶
Die offizielle compose.yaml verwendet MariaDB als Datenbank. Das ist für die meisten Installationen die richtige Wahl, weil:
- MariaDB bei großen Sammlungen (über 10.000 Fotos) deutlich performanter arbeitet
- Gleichzeitige Lesezugriffe und Index-Durchläufe nicht blockieren
- Die Datenbank getrennt von den Fotos gesichert werden kann
Ein SQLite-Modus ist möglich (einfach PHOTOPRISM_DATABASE_DRIVER auf sqlite setzen und den MariaDB-Service entfernen), aber nur für kleine Bibliotheken unter etwa 5.000 Bildern geeignet. Bei großen Sammlungen führt SQLite zu spürbaren Verzögerungen.[1]
7. Backup und Wiederherstellung¶
PhotoPrism bringt ein eingebautes Backup-Kommando mit:
Die Sicherung wird als .sql-Datei im Storage-Ordner abgelegt. Für ein vollständiges Backup sicherst du drei Bereiche:
- Datenbank-Backup (wie oben)
- Storage-Ordner (
./storage/) – enthält Thumbnails, Cache und Sidecar-Dateien - Compose-Datei und ggf.
.env
Die Original-Fotos sind davon unabhängig zu sichern, da sie außerhalb des PhotoPrism-Ordners liegen.
Zurücksetzen und Neuinstallation¶
echo "==> Nur den Index löschen (Fotos bleiben unberührt)"
docker compose exec photoprism photoprism reset --yes
echo "==> Komplette Neuinstallation (Datenverlust!)"
docker compose down -v
rm -rf storage/
down -v löscht alle Daten
Der Parameter -v entfernt alle Docker-Volumes, also auch die MariaDB-Datenbank. Führe vorher zwingend ein Backup aus.
8. Risiken und Sicherheitshinweise¶
-
Port 2342 nicht direkt ins Internet freigeben – PhotoPrism liefert standardmäßig HTTP aus. Setze stattdessen einen Reverse Proxy (Caddy, Traefik, Nginx Proxy Manager) davor, der HTTPS mit Let's Encrypt bereitstellt. Eine Anleitung für Caddy findest du im Artikel Docker-Dienst mit Caddy und HTTPS absichern.
-
Kein festes RAM-Limit setzen – Der Indexer benötigt temporär mehr Speicher. Die offizielle Doku empfiehlt, stattdessen ausreichend Swap zu konfigurieren (mindestens 4 GB).[2]
-
Keine USB-Sticks oder SD-Karten als Datenbank-Storage – MariaDB-Daten gehören auf zuverlässigen lokalen SSD-Speicher. Der Storage-Ordner darf auf dem NAS liegen, die Datenbank nicht.
-
Passwort-Änderung nach Erststart – Wurde das Admin-Passwort einmal gesetzt, funktioniert die Umgebungsvariable nicht mehr. Ändere es dann über
docker compose exec photoprism photoprism passwd admin.
9. Typische Fehler und ihre Lösung¶
| Problem | Ursache | Lösung |
|---|---|---|
Connection refused auf Port 2342 |
Container lädt noch (erster Start) | docker compose logs -f photoprism abwarten |
| MariaDB startet nicht | Port 3306 ist belegt | sudo ss -tlnp \| grep 3306 prüfen, anderen MySQL-Dienst stoppen |
| Fotos werden nicht angezeigt | Falscher Volume-Pfad oder fehlende Berechtigungen | docker compose exec photoprism ls /photoprism/originals prüfen |
PHOTOPRISM_ADMIN_PASSWORD wird ignoriert |
Passwort wurde nach erstem Start geändert | Passwort über docker compose exec photoprism photoprism passwd admin zurücksetzen |
| Import-Ordner verursacht Loop | Import-Pfad liegt innerhalb der Originale | Import-Ordner außerhalb von originals anlegen |
Fehler seccomp:unconfined fehlt |
Kernel-Sicherheitsmodul blockiert | security_opt: - seccomp:unconfined in der compose.yaml ergänzen |
10. Nächste Schritte¶
- PhotoPrism erkunden: Die offizielle [First Steps-Anleitung][7] führt durch das Dashboard, Alben, Filter und die Gesichtserkennung.
- Smartphone-App einrichten: PhotoPrism bietet eine Progressive Web App (PWA) für Smartphones, die automatisch über den Browser installiert wird.
- Automatische Sicherung: Richte einen täglichen Cron-Job für das Datenbank-Backup ein.
- Reverse Proxy: Setze Caddy oder Traefik vor PhotoPrism, um HTTPS für den Zugriff von unterwegs zu aktivieren.
Sources¶
[1] https://docs.photoprism.app/getting-started/docker-compose/ — PhotoPrism Official Docker Compose Setup [2] https://www.photoprism.app/plus/kb/quickstart/ — PhotoPrism Quickstart Guide [3] https://docs.photoprism.app/getting-started/config-options/ — PhotoPrism Config Options [4] https://selfhosting.sh/apps/photoprism — Self-Host PhotoPrism Guide (March 2026) [5] https://www.youtube.com/watch?v=2YMWu1WKJ38 — Self-Host PhotoPrism with Docker Compose (Techdox) [6] https://dl.photoprism.app/docker/compose.yaml — PhotoPrism Official compose.yaml Template [7] https://docs.photoprism.app/user-guide/first-steps/ — PhotoPrism First Steps Guide
Fertig¶
Nach dem Start unter http://<deine-server-ip>:2342/ siehst du den Login-Bildschirm. Melde dich mit admin und deinem Passwort an, starte unter Library den ersten Index-Durchlauf und warte, bis PhotoPrism deine Fotos erfasst hat. Öffne dann die Zeitleiste, suche nach einem Ort oder einer Person und prüfe, ob die KI-Erkennung funktioniert – deine private, KI-gestützte Foto-Bibliothek läuft.