PhotoPrism oder Immich: Welcher Fotoserver passt?
PhotoPrism organisiert vorhandene Ordner, Immich sichert Smartphone-Fotos. Vergleichen Sie RAM-Bedarf, Apps, Karten und die nötigen Backup-Befehle für den VPS.
PhotoPrism vs Immich: die kurze Antwort
PhotoPrism vs Immich ist eine Entscheidung zwischen zwei unterschiedlichen Aufgaben, nicht zwischen zwei Versionen desselben Produkts. Immich ersetzt Google Photos: Eine Smartphone-App sichert Ihre Kamerafotos automatisch, und die Zeitleiste wirkt vertraut, wenn Sie die Galerie Ihres Smartphones nicht mehr verwenden. PhotoPrism organisiert eine bereits vorhandene Fotobibliothek: Es indiziert Ordner mit Dateien auf dem Datenträger, liest deren Metadaten, stellt sie auf einer Karte dar und lässt die Dateien genau dort, wo sie waren.
Wählen Sie Immich, wenn das Problem lautet: „Mein Smartphone ist voll, und ich möchte Google Photos nicht mehr verwenden.“ Wählen Sie PhotoPrism, wenn das Problem lautet: „Ich habe 400 GB Fotos auf einem Laufwerk und finde darin nichts.“ Beide Projekte sind Open Source, laufen als Docker-Container auf einem gewöhnlichen VPS und indizieren sowie durchsuchen Ihre Bibliothek, ohne Daten an Dritte zu senden.
Die grundlegende Aufteilung und warum sie alles entscheidet
Immich verwaltet die Dateien. Sie geben einen Upload-Speicherort an. Die Telefon-App oder der Web-Uploader lädt die Originale dorthin hoch. Immich speichert sie unter seinem eigenen Pfad und mit seiner eigenen Benennung. Die Datenbank enthält die maßgeblichen Informationen zu Alben, Gesichtern und der Suche. Dieses Design sorgt für eine gute Nutzung auf dem Telefon, weil der Server den vollständigen Status jedes Objekts kennt.
PhotoPrism liest die Dateien. Sie binden einen originals-Ordner ein, den Sie bereits verwalten, und PhotoPrism erstellt darüber einen Index. Ihre Verzeichnisstruktur bleibt in Ihrer Hand. Wenn Sie PhotoPrism morgen entfernen, liegen die Fotos weiterhin in denselben Ordnern und mit denselben Namen dort. Die von PhotoPrism geschriebenen YAML-Begleitdateien mit den erkannten Informationen liegen in seinem eigenen Speicherordner. Dort speichert PhotoPrism sie standardmäßig.
Dieser eine Unterschied erklärt den größten Teil der weiteren Unterschiede. Immich bietet eine starke Unterstützung für Mobilgeräte, weil es die Aufnahme der Dateien kontrolliert. PhotoPrism eignet sich besonders gut für die Pflege einer Bibliothek, weil es Ihre vorhandene Struktur nicht verändert. Immich ist die bessere Lösung für eine Familie, deren Fotos auf Telefonen liegen. PhotoPrism ist die bessere Lösung für ein Archiv, das auf einem Datenträger liegt.
Hardwarebedarf: Immich benötigt mehr
Die dokumentierten Mindestwerte für den Arbeitsspeicher liegen weit auseinander. Auf einem kleinen VPS ist das meist der entscheidende Faktor.
Die Daten hinter diesem Diagramm
[
{
"label": "Immich",
"min_ram_gb": 6
},
{
"label": "PhotoPrism",
"min_ram_gb": 3
}
]Immich nennt 6 GB RAM als Minimum und 8 GB als Empfehlung. Zusätzlich weist die Dokumentation darauf hin, dass eine Maschine mit 4 GB nur mit deaktiviertem Machine Learning betrieben werden kann. PhotoPrism nennt 3 GB physischen Arbeitsspeicher und zwei CPU-Kerne. Oberhalb dieses Minimums soll die RAM-Größe zur Anzahl der Kerne passen.
Der Unterschied ist real. Er entsteht durch den Machine-Learning-Container. Immich führt seine Modelle in einem separaten immich-machine-learning-Dienst aus. Dieser lädt CLIP (contrastive language image pretraining) und Modelle zur Gesichtserkennung in den Arbeitsspeicher. Auf einer Maschine mit 2 GB beendet der Kernel diesen Container. Im Docker-Status erscheint dann Exit-Code 137. Dieser Status bedeutet, dass ein Prozess mit Signal 9 beendet wurde, und ist die typische Anzeige für einen Out-of-Memory-Kill in Docker. Die integrierten Modelle von PhotoPrism laufen mit ONNX. Laut Dokumentation funktionieren sie im Allgemeinen auf allen Arten von Hardware gut. Für knappen Arbeitsspeicher gibt es einen dokumentierten Fallback: Auf Maschinen mit 1 GB oder weniger werden RAW-Konvertierung und Gesichtserkennung deaktiviert. Das ist jedoch keine Stabilitätsgarantie. Unterhalb des Minimums von 3 GB warnt das Projekt vor Instabilität und Performance-Problemen. Behandeln Sie diesen Wert daher als tatsächliche Untergrenze.
Die Dokumentation von PhotoPrism verlangt ausdrücklich mindestens 4 GB Swap auf dem Server. Die Anforderungsseite von Immich erwähnt Swap nicht. Swap verschafft dem Machine-Learning-Container auf einer kleinen Maschine jedoch zusätzlichen Spielraum. Richten Sie Swap ein, bevor Sie eine der beiden Anwendungen installieren.
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -hfree -h sollte nun eine Swap:-Zeile mit 4.0Gi ausgeben. Gibt der Befehl 0B aus, ist swapon fehlgeschlagen. Ursache ist meist, dass das Dateisystem fallocate nicht unterstützt. In diesem Fall dient sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 als Fallback. Auch die Speichergrenzen von Containern sind hier relevant. Mit Speicherlimits in Docker Compose festlegen verhindern Sie, dass ein speicherintensiver Dienst die gesamte Maschine zum Absturz bringt. Eine Ausnahme ist PhotoPrism selbst: Die Dokumentation rät von einem festen Speicherlimit für den Container ab. Beim Indexieren großer Dateien wird vorübergehend zusätzlicher Arbeitsspeicher benötigt. Ein Limit kann daher unerwartete Neustarts verursachen.
Eine weitere Anforderung wird häufig übersehen. Die Postgres-Datenbank von Immich muss auf einem normalen Unix-Dateisystem mit echten Besitz- und Berechtigungsinformationen liegen. Der Speicher muss lokal sein. Eine Netzwerkfreigabe ist nicht zulässig. PhotoPrism warnt ebenfalls davor, die Datenbankdateien in einem gemeinsam genutzten Netzwerkordner zu speichern, und bezeichnet lokalen SSD-Speicher als besten Speicherort. Keine der beiden Anwendungen sollte ihre Datenbank auf einem eingebundenen Object Store betreiben.
So installieren Sie die einzelnen Anwendungen
Beide Installationen bestehen aus einer Compose-Datei des jeweiligen Herstellers und einem Befehl. Richten Sie zuerst Docker Engine und das Compose-Plugin ein, wie in unserer Anleitung zu Docker Compose auf einem VPS beschrieben.
Immich veröffentlicht mit jedem Release seine Compose-Datei und eine Beispiel-Umgebungsdatei.
sudo mkdir -p /opt/immich && cd /opt/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.envBearbeiten Sie .env, bevor Sie etwas starten. In UPLOAD_LOCATION werden Ihre Originale gespeichert. DB_PASSWORD enthält einen funktionierenden Standardwert. Immich empfiehlt, ihn durch ein zufälliges Passwort zu ersetzen, schreibt dies aber nicht vor. Postgres ist nicht öffentlich erreichbar. Das Passwort wird daher nur für die lokale Authentifizierung verwendet. Ein zufälliges Passwort lässt sich trotzdem ohne Aufwand festlegen. Verwenden Sie ausschließlich die Zeichen A-Za-z0-9, da laut der Immich-Dokumentation andere Zeichen beim Parsen des Werts durch Docker Probleme verursachen können. Starten Sie die Anwendung anschließend.
docker compose up -d
docker compose psDie Weboberfläche ist über Port 2283 erreichbar. Das erste Konto, das über diese Seite registriert wird, erhält Administratorrechte. Rufen Sie die Seite daher auf und registrieren Sie das Konto sofort, statt eine offene Instanz im Internet erreichbar zu lassen.
PhotoPrism wird mit einer Compose-Datei ausgeliefert, die MariaDB bereits enthält.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlÖffnen Sie compose.yaml und ändern Sie PHOTOPRISM_ADMIN_PASSWORD vor dem ersten Start. Die Dokumentation weist ausdrücklich darauf hin: Die Anwendung startet mit dem Passwort, das zu diesem Zeitpunkt in der Datei steht. Die Mindestlänge beträgt 8 Zeichen. Der Standardwert darf auf einem öffentlichen Server niemals verwendet werden. Setzen Sie gleichzeitig das Volume originals auf den Ordner, in dem Ihre Fotos gespeichert sind.
docker compose up -d
docker compose logs -f photoprismPhotoPrism ist unter Port 2342 mit dem Benutzer admin erreichbar. Keine der beiden Anwendungen sollte direkt aus dem Internet erreichbar sein. Schalten Sie einen Reverse Proxy mit TLS (Transport Layer Security) davor, wie bei einer selbst gehosteten Nextcloud mit Docker, TLS und Backups, oder halten Sie den Server privat und greifen Sie über ein VPN darauf zu. Wenn auf diesem VPS später mehr als nur Fotos betrieben werden, wenden Sie dieselbe Zurückhaltung auf jeden weiteren Dienst an, da ein selbst gehostetes RustDesk-Relay nur seine eigenen beiden Ports erreichbar machen muss und sonst nichts.
Welche Anwendung hat die bessere Smartphone-App
Hier liegen die beiden Projekte am weitesten auseinander. Das ist der Grund, warum sich die meisten Nutzer für Immich entscheiden.
Immich veröffentlicht offizielle Apps für Android und iOS. Diese sichern die Kamerarolle im Hintergrund. Neue Fotos werden dadurch vom Smartphone übertragen, ohne dass jemand eine App öffnen muss. Für die Nutzung außerhalb des eigenen Netzwerks dokumentiert Immich drei Möglichkeiten: ein VPN wie WireGuard oder OpenVPN, Tailscale oder einen Reverse Proxy, der HTTPS bereitstellt. Der Reverse Proxy ermöglicht es den Smartphone-Apps, sich ohne eine VPN-App auf jedem Smartphone zu verbinden. Immich warnt davor, Port 2283 ohne zusätzliche Konfiguration direkt aus dem Internet erreichbar zu machen.
PhotoPrism hat keine offizielle native App. Stattdessen stellt das Projekt eine Progressive Web App bereit. Diese fügen Sie über den Browser zum Startbildschirm hinzu. Für die Synchronisierung von einem Smartphone dokumentiert PhotoPrism WebDAV (Web Distributed Authoring and Versioning). Das Projekt empfiehlt dafür eine Drittanbieter-App namens PhotoSync, die über WebDAV auf das Verzeichnis /import/ oder /originals/ zugreift. Das funktioniert. Allerdings übernimmt dabei eine kostenpflichtige Drittanbieter-App eine Aufgabe, die Immich in seinem eigenen Client erledigt.
Wenn die automatische Sicherung von Smartphones für mehrere Familienmitglieder erforderlich ist, ist die Entscheidung klar: Immich.
Was das Machine Learning tatsächlich leistet
Immich führt mit CLIP eine semantische Suche in Ihrer Bibliothek durch. Eine Abfrage wie „rotes Fahrrad im Schnee“ findet dadurch auch Fotos, die niemand mit diesen Begriffen versehen hat. Außerdem erkennt und gruppiert Immich Gesichter und erkennt Duplikate. Das Indexieren eines großen Imports auf der CPU kann im Hintergrund mehrere Stunden dauern. Das ist normal und erfordert keine GPU (graphics processing unit).
PhotoPrism klassifiziert Bilder mit einem integrierten ONNX-Modell anhand von Labels. Mit ONNX-Modellen zur Gesichtserkennung erkennt und gruppiert die Anwendung Personen. Außerdem liest sie Standortmetadaten ein und erstellt daraus eine Ortskarte. Mit einer vision.yml-Datei im Konfigurationsordner können Sie für Labels und Bildunterschriften Ollama oder OpenAI verwenden. Die Karte ist für viele Nutzer der entscheidende Vorteil: Eine nach dem Aufnahmeort indexierte Bibliothek bietet eine grundlegend andere Möglichkeit, zwanzig Jahre an Fotos zu durchsuchen. Dasselbe Konzept funktioniert auch mit anderen Mediensammlungen. Halcyons 90er-Jahre-Videothekenoberfläche für Jellyfin ist die Variante für Filme. Sie durchsucht die Sammlung nach Regalen statt nach Listen. Gesichtserkennung ist in der kostenlosen Community Edition enthalten. Die kostenpflichtigen Essentials- und Plus-Mitgliedschaften bieten zusätzliche Funktionen wie detailliertere Kartenebenen, mehr Benutzerrollen und eine Oberfläche zur Benutzerverwaltung. Stand Oktober 2026 beginnen die Preise bei einigen Euro pro Monat und werden jährlich abgerechnet.
Immich hat keine kostenpflichtig gesperrten Funktionen. Das Projekt erklärt, dass dies auch künftig so bleiben soll. Es verkauft jedoch optionale Produktschlüssel mit lebenslanger Gültigkeit: $25 für einen Benutzer oder $100 für einen gesamten Server, entsprechend den von Immich im Juli 2024 angekündigten Preisen. Der Kauf schaltet keine Funktionen frei. Immich funktioniert ohne Einschränkungen, wenn Sie nichts bezahlen. Der Kern von PhotoPrism ist kostenlos. Optionale kostenpflichtige Zusatzfunktionen sind verfügbar.
Backups entscheiden darüber, ob Ihre Daten erhalten bleiben
Ein Fotoserver ohne Backup ist nur einen Festplattenausfall davon entfernt, alle Fotos einer Familie zu verlieren. Für beide Anwendungen benötigen Sie zwei Backups: eines der Datenbank und eines der Dateien.
Für Immich exportieren Sie die Datenbank aus dem Postgres-Container und kopieren den Upload-Speicherort.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzSichern Sie anschließend UPLOAD_LOCATION. Die Ordner mit nicht ersetzbaren Daten sind upload, library und profile. Die Ordner thumbs und encoded-video können neu erzeugt werden, allerdings auf Kosten mehrerer Stunden CPU-Zeit. Ein Datenbankexport allein stellt keine Daten wieder her, weil er nur Metadaten enthält.
Für PhotoPrism verfügt der Index über einen eigenen Befehl.
docker compose exec photoprism photoprism backup -i -fDamit wird unter storage/backup/ ein SQL-Export geschrieben. Kopieren Sie anschließend den Ordner originals und den Ordner storage. PhotoPrism schreibt außerdem YAML-Begleitdateien mit Beschreibungen zu jedem Foto. Deshalb kann ein verlorener Index allein aus den Dateien neu erstellt werden. Das ist ein echter Vorteil für ein Archiv, das Sie über Jahrzehnte erhalten möchten.
Unabhängig von Ihrer Wahl sollten Sie diese Backups nach einem festen Zeitplan vom Server in verschlüsselten, deduplizierten restic-Backups auf einem entfernten Speicher ablegen. Ein Backup auf derselben Festplatte wie die Mediensammlung ist kein Backup. Lassen Sie den Job bei einem Fehler eine Meldung senden. Ein Backup, das im März unbemerkt nicht mehr ausgeführt wurde, sieht bis zu dem Tag, an dem Sie es benötigen, genauso aus wie eines, das letzte Nacht gelaufen ist. Ein selbst gehosteter ntfy-Server sendet den Fehler noch am selben Abend an Ihr Telefon.
Welche Anwendung sollten Sie verwenden?
Verwenden Sie Immich, wenn sich Ihre Fotos auf Mobiltelefonen befinden, wenn mehr als eine Person eine Kamerarolle sichern muss und wenn Sie dem Server 6 GB RAM oder mehr zuweisen können. Immich kommt Google Photos unter den selbst hostbaren Lösungen am nächsten. Die mobile Nutzung ist dabei der entscheidende Vorteil. Unser Schritt-für-Schritt-Installationsleitfaden für Immich behandelt Speicherabbrüche und typische Upgrade-Probleme ausführlich.
Verwenden Sie PhotoPrism, wenn sich bereits ein Fotoarchiv auf dem Datenträger befindet, wenn Ihnen Karten und Metadaten sowie die Beibehaltung Ihrer eigenen Ordnerstruktur wichtig sind oder wenn Ihr VPS über 4 GB RAM verfügt und Sie lieber eine funktionierende Bibliothek als eine mit Auslagerung betreiben möchten. PhotoPrism eignet sich besser für die Kuration und belastet kleine Systeme weniger.
Sie können auch beide Anwendungen betreiben. Immich übernimmt das tägliche Importieren von Mobiltelefonen. Einmal im Jahr sortieren Sie die zu behaltenden Fotos in Ihr Archiv und lassen PhotoPrism dieses indizieren. Die Anwendungen behindern sich nicht, weil PhotoPrism Ordner einliest, während Immich seine eigene Datenstruktur verwaltet.
FAQ
Können PhotoPrism und Immich denselben Fotoordner verwenden?
Nicht sicher in beide Richtungen. PhotoPrism indiziert einen originals-Ordner und verfügt über Funktionen, die in diesen Ordner schreiben, sofern es nicht im schreibgeschützten Modus läuft. Immich erwartet dagegen, dass es den Inhalt seines Upload-Speicherorts verwalten kann. Sie können PhotoPrism auf eine schreibgeschützte Kopie des library-Ordners von Immich verweisen, um die Dateien zu durchsuchen. Lassen Sie jedoch nicht beide Anwendungen dieselben Dateien verwalten. Immich kann mit seiner Speichervorlage Assets verschieben oder umbenennen, während PhotoPrism sie indiziert.
Ist Immich stabil genug, um die einzige Kopie meiner Fotos zu speichern?
Keine selbst gehostete Anwendung sollte jemals die einzige Kopie von etwas enthalten. Immich verwendet inzwischen semantische Versionierung und gibt an, dass inkompatible Änderungen auf Hauptversionen beschränkt sind. Fixieren Sie IMMICH_VERSION daher auf ein Hauptversions-Tag wie v3, lesen Sie die Release Notes und führen Sie das Upgrade anschließend mit docker compose pull && docker compose up -d durch. Ein Downgrade wird nicht unterstützt, auch nicht innerhalb derselben Nebenversion. Erstellen Sie daher vor jedem Upgrade einen Datenbank-Dump. Sichern Sie die Originaldateien außerhalb des Servers. Dann bleibt das Risiko gering.
Warum wird der Machine-Learning-Container von Immich ständig neu gestartet?
Meistens wird er beendet, weil er zu viel Arbeitsspeicher verwendet. Führen Sie docker compose ps --all aus. Ohne dieses Flag werden beendete Container nicht angezeigt. Suchen Sie nach dem Machine-Learning-Dienst, der mit Code 137 beendet wurde. Dieser Code bedeutet, dass der Prozess mit Signal 9 beendet wurde. Der Out-of-Memory-Killer des Kernels ist die häufigste Ursache, aber nicht die einzige. Bestätigen Sie die Ursache daher mit sudo dmesg | grep -i 'out of memory'. Fügen Sie Swap hinzu oder deaktivieren Sie Machine Learning auf einem Rechner mit 4 GB vollständig. Ein Speicherlimit für den Container drosselt dessen Speicherverbrauch nicht. Bei Erreichen des Limits wird der Container weiterhin beendet, verhindert aber, dass er den restlichen Server durch Speichermangel beeinträchtigt. Ohne Machine Learning funktionieren die intelligente Suche und die Gesichtserkennung nicht. Der restliche Teil von Immich läuft weiterhin problemlos.
Benötigt PhotoPrism MariaDB, oder reicht SQLite aus?
SQLite funktioniert und eignet sich für eine persönliche Bibliothek. PhotoPrism begrenzt sich bei dessen Verwendung jedoch auf vier Worker. Die Dokumentation empfiehlt deshalb den Wechsel zu MariaDB, weil MariaDB eine hohe Nebenläufigkeit besser verarbeitet. Die vom Projekt veröffentlichte Compose-Datei enthält MariaDB bereits. Der empfohlene Weg ist daher zugleich der Standard.
Wie viel Speicherplatz sollte ich zusätzlich zur Größe meiner Bibliothek einplanen?
Planen Sie für beide Anwendungen zusätzlich 10 bis 20 Prozent der Größe Ihrer Originaldateien ein. Damit werden erzeugte Vorschaubilder und transkodierte Videovorschauen abgedeckt. Eine Sammlung mit 200 GB benötigt für die Bibliothek allein ungefähr 220 bis 240 GB sowie zusätzlichen Platz für die Datenbank und weiteres Wachstum. Wenn Sie außerdem eine vollständige lokale Sicherungskopie auf demselben Volume aufbewahren, benötigen die Originaldateien und diese Kopie zusammen mindestens 400 GB, bevor weiterer Bedarf berücksichtigt wird. Planen Sie daher etwa 450 GB ein oder speichern Sie die Kopie auf einem separaten Volume.