PhotoPrism of Immich: welke fotomanager kiezen?
Vergelijk de twee populairste self-hosted fotomanagers. Ontdek welke tool past bij uw opslagbehoefte, het RAM-gebruik op een VPS en de benodigde Docker-backupcommando's.
PhotoPrism versus Immich: het korte antwoord
De keuze tussen PhotoPrism en Immich is een keuze tussen twee verschillende taken, niet tussen twee versies van hetzelfde product. Immich vervangt Google Photos: een app op uw telefoon maakt automatisch een back-up van uw filmrol en de tijdlijn ziet er vertrouwd uit voor iedereen die overstapt van een standaard telefoongalerij. PhotoPrism organiseert een fotobibliotheek die u al bezit: het indexeert mappen met bestanden op schijf, leest de metadata, plaatst ze op een kaart en laat de bestanden exact staan waar ze stonden.
Kies voor Immich als het probleem is: "mijn telefoon zit vol en ik wil weg bij Google Photos". Kies voor PhotoPrism als het probleem is: "ik heb 400 GB aan foto's op een schijf staan en ik kan niets terugvinden". Beide zijn open source, beide draaien als Docker-containers op een normale VPS, en beide indexeren en doorzoeken uw bibliotheek zonder gegevens naar een derde partij te sturen.
De filosofie achter de splitsing en waarom dit alles bepaalt
Immich beheert de bestanden. U wijst een uploadlocatie aan, de mobiele app of de web-uploader verstuurt de originelen, en Immich slaat deze op onder een eigen pad met een eigen naamgeving. De database bevat de waarheid over albums, gezichten en zoekopdrachten. Dit ontwerp zorgt voor de goede mobiele ervaring, omdat de server altijd de volledige status van elk item kent.
PhotoPrism leest de bestanden. U koppelt een originals-map die u al beheert, en PhotoPrism bouwt daar een index overheen. Uw mappenstructuur blijft van u. Als u PhotoPrism morgen verwijdert, staan de foto's nog steeds in dezelfde mappen met dezelfde namen, en heeft PhotoPrism sidecar YAML-bestanden naast de foto's geschreven met de informatie die het heeft verzameld.
Dat ene verschil verklaart het grootste deel van de rest. Immich heeft sterke mobiele ondersteuning omdat het de import beheert. PhotoPrism heeft sterke bibliotheekcuratie omdat het nooit uw bestaande structuur in de weg zit. Immich is de betere keuze voor een gezin waarvan de foto's op telefoons staan. PhotoPrism is de betere keuze voor een archief dat op een schijf staat.
Hardwarebehoefte: Immich vraagt om meer
De gedocumenteerde geheugenvereisten liggen ver uit elkaar, en op een kleine VPS is dit meestal de doorslaggevende factor.
The data behind this chart
[
{
"label": "Immich",
"min_ram_gb": 6,
"recommended_ram_gb": 8
},
{
"label": "PhotoPrism",
"min_ram_gb": 3,
"recommended_ram_gb": 4
}
]Immich documenteert 6 GB RAM als minimum en 8 GB als aanbevolen, met de kanttekening dat een machine met 4 GB het alleen kan draaien als machine learning is uitgeschakeld. PhotoPrism documenteert 3 GB fysiek geheugen en twee CPU-cores, en stelt dat de hoeveelheid RAM moet overeenkomen met het aantal cores.
Het verschil is reëel en wordt veroorzaakt door de machine learning-container. Immich draait zijn modellen in een afzonderlijke immich-machine-learning-service die CLIP (contrastive language image pretraining) en gezichtsherkenningsmodellen in het geheugen laadt. Op een machine met 2 GB beëindigt de kernel die container, en u ziet deze afsluiten met code 137; dit is hoe een out-of-memory kill eruitziet vanuit Docker. De TensorFlow-modellen van PhotoPrism zijn kleiner en de applicatie presteert minder in plaats van te crashen: op machines met 1 GB of minder schakelt het RAW-conversie en TensorFlow uit in plaats van te stoppen.
Beide projecten vereisen swap. De documentatie van PhotoPrism is expliciet over de wens voor ten minste 4 GB swap op de server. Voeg dit toe voordat u een van beide installeert.
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 zou nu een Swap:-regel moeten tonen met 4.0Gi. Als het 0B print, dan is swapon mislukt, meestal omdat het bestandssysteem fallocate niet ondersteunt en sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 de fallback is. Geheugenlimieten voor containers zijn hier ook van belang, en het instellen van geheugenlimieten in Docker Compose is de manier om te voorkomen dat één hongerige service de hele server platlegt.
Nog een vereiste waar mensen vaak tegenaan lopen: de Postgres-database van Immich moet op een normaal Unix-bestandssysteem staan met echte eigendomsrechten en permissies, op lokale opslag, nooit op een netwerkshare. PhotoPrism stelt hetzelfde over zijn databasebestanden. Het is voor beide applicaties onveilig om de database op een gemounte object store te draaien.
Installatie van beide applicaties
Beide installaties bestaan uit een compose-bestand van de leverancier en één commando. Installeer eerst Docker Engine en de Compose-plugin, zoals beschreven in onze handleiding voor Docker Compose op een VPS.
Immich publiceert bij elke release een compose-bestand en een voorbeeld-omgevingsbestand.
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.envBewerk .env voordat u begint. UPLOAD_LOCATION is de locatie waar uw originelen worden opgeslagen en DB_PASSWORD moet worden gewijzigd ten opzichte van de standaardwaarde. Gebruik hiervoor uitsluitend de tekens A-Za-z0-9, aangezien speciale tekens de verbindingsreeks onbruikbaar maken. Start daarna de container.
docker compose up -d
docker compose psDe webinterface reageert op poort 2283. Het eerste account dat via die pagina wordt geregistreerd, krijgt de beheerdersrechten. Open de pagina daarom direct en registreer het account, in plaats van een openstaande instantie op het internet achter te laten.
PhotoPrism levert één compose-bestand waarin MariaDB al is opgenomen.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlOpen compose.yaml en wijzig PHOTOPRISM_ADMIN_PASSWORD vóór de eerste start. De documentatie is hier duidelijk over: de applicatie start met het initiële wachtwoord dat in dat bestand staat, de minimale lengte is 8 tekens en de standaardwaarde mag nooit op een publieke server worden gebruikt. Koppel tegelijkertijd het originals-volume aan de map waarin uw foto's staan.
docker compose up -d
docker compose logs -f photoprismPhotoPrism reageert op poort 2342 met de gebruiker admin. Geen van beide applicaties moet direct aan het internet worden blootgesteld. Plaats een reverse proxy met TLS (transport layer security) voor de applicaties, vergelijkbaar met de opzet die wordt gebruikt voor een zelfgehoste Nextcloud met Docker, TLS en back-ups.
Welke heeft de betere mobiele app
Dit is het punt waarop de twee projecten het meest van elkaar verschillen, en het is de reden waarom de meeste mensen uiteindelijk voor Immich kiezen.
Immich levert officiële apps voor Android en iOS. Deze voeren op de achtergrond back-ups uit van de filmrol, wat betekent dat nieuwe foto's het toestel verlaten zonder dat er handmatige actie nodig is. De app vereist een HTTPS-eindpunt, dus een reverse proxy is noodzakelijk als u de app ook buitenshuis wilt gebruiken.
PhotoPrism heeft geen officiële native app. Het project levert een progressive web app, die u vanuit de browser aan het startscherm toevoegt, en documenteert WebDAV (web distributed authoring and versioning) als de methode om te synchroniseren vanaf een telefoon. Het project raadt hiervoor de app van derden PhotoSync aan, die via WebDAV naar de /import/ of /originals/ directory wijst. Dit werkt, maar het is een betaalde app van derden die een taak uitvoert die Immich in zijn eigen client heeft ingebouwd.
Als automatische back-up van foto's voor meerdere gezinsleden de vereiste is, dan is de keuze snel gemaakt: Immich.
Wat machine learning u daadwerkelijk oplevert
Immich voert semantisch zoeken uit over uw bibliotheek met behulp van CLIP, waardoor een zoekopdracht als "rode fiets in de sneeuw" foto's vindt die nooit door iemand zijn getagd. Het voert ook gezichtsdetectie, clustering en duplicatiedetectie uit. Het indexeren van een grote import op de CPU duurt uren op de achtergrond; dit is normaal en vereist geen GPU (graphics processing unit).
PhotoPrism classificeert afbeeldingen met TensorFlow in labels, detecteert gezichten en groepeert deze in personen, en leest locatie-metadata om een kaart met plaatsen op te bouwen. De kaart is de functie waarvoor gebruikers blijven: een bibliotheek die is geïndexeerd op basis van waar het gebeurde, is een wezenlijk andere manier om door twintig jaar aan foto's te bladeren. Gezichtsherkenning is inbegrepen in de gratis Community-editie. De betaalde Essentials- en Plus-lidmaatschappen voegen extra's toe zoals rijkere kaartlagen, meer gebruikersrollen en een interface voor gebruikersbeheer, vanaf enkele euro's per maand per juli 2026.
Immich is volledig gratis zonder betaald niveau. De kern van PhotoPrism is gratis, met optionele betaalde extra's.
Backups bepalen of u uw data behoudt
Een fotoserver zonder back-up is slechts één defecte schijf verwijderd van het verlies van alle familieherinneringen. Beide applicaties vereisen twee back-ups: de database en de bestanden.
Voor Immich dumpt u de database vanuit de Postgres-container en kopieert u de uploadlocatie.
docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > /backup/immich-db.sql.gzMaak vervolgens een back-up van UPLOAD_LOCATION. De mappen met onvervangbare data zijn upload, library en profile. De mappen thumbs en encoded-video kunnen opnieuw worden gegenereerd, ten koste van uren aan CPU-tijd. Een database-dump op zichzelf herstelt niets, omdat deze alleen metadata bevat.
Voor PhotoPrism heeft de index een eigen commando.
docker compose exec photoprism photoprism backup -i -fDit schrijft een SQL-dump naar storage/backup/. Kopieer daarna de map originals en de map storage. Omdat PhotoPrism ook sidecar YAML-bestanden schrijft die elke foto beschrijven, kan een verloren index worden herbouwd op basis van alleen de bestanden. Dit is een groot voordeel voor een archief dat u decennialang wilt bewaren.
Welke optie u ook kiest, verstuur deze back-ups volgens een schema vanaf de server met versleutelde, ontdubbelde restic-back-ups naar externe opslag. Een back-up die op dezelfde schijf staat als de bibliotheek zelf, is geen back-up.
Welke moet u draaien
Draai Immich als uw foto's op telefoons staan, als meer dan één persoon een camerarol moet back-uppen en als u de server 6 GB RAM of meer kunt toewijzen. Het is het meest vergelijkbare alternatief voor Google Photos dat u zelf kunt hosten, en de mobiele ervaring is het voornaamste doel. Onze stapsgewijze installatiehandleiding voor Immich behandelt de geheugenproblemen en de valkuilen bij upgrades in detail.
Draai PhotoPrism als u al een fotoarchief op schijf heeft, als u waarde hecht aan kaarten en metadata en het behoud van uw eigen mappenstructuur, of als uw VPS 4 GB RAM heeft en u liever een werkende bibliotheek heeft dan een systeem dat constant naar swap schrijft. Het is de betere tool voor curatie en het is minder belastend voor lichtere hardware.
Beide draaien is ook een redelijke optie. Immich verwerkt de dagelijkse import vanaf telefoons, en eenmaal per jaar sorteert u de beste foto's naar uw archief en laat u PhotoPrism dat indexeren. Ze conflicteren niet, omdat PhotoPrism mappen leest terwijl Immich zijn eigen opslag beheert.
FAQ
Kunnen PhotoPrism en Immich dezelfde fotomap delen?
Niet veilig in beide richtingen. PhotoPrism leest een originals-map en schrijft sidecar YAML-bestanden naast uw afbeeldingen, terwijl Immich verwacht de enige beheerder te zijn van de inhoud van zijn uploadlocatie. U kunt PhotoPrism naar een alleen-lezen kopie van de library-map van Immich laten wijzen om deze te doorzoeken, maar laat beide applicaties niet dezelfde bestanden beheren. Het opslagtemplate van Immich kan namelijk assets verplaatsen of hernoemen terwijl PhotoPrism deze indexeert.
Is Immich stabiel genoeg om de enige kopie van mijn foto's te bevatten?
Geen enkele zelfgehoste applicatie mag ooit de enige kopie van gegevens bevatten. Immich brengt regelmatig ingrijpende wijzigingen uit en een onvoorzichtige docker compose pull kan ertoe leiden dat de database niet meer start. Pin daarom uw versie en lees de release notes voordat u een upgrade uitvoert. Houd de originele bestanden buiten de server geback-upt om het risico klein te houden.
Waarom blijft de machine learning-container van Immich herstarten?
Deze wordt beëindigd omdat het geheugengebruik te hoog is. Voer docker compose ps uit en controleer of de machine learning-service afsluit met code 137; dit duidt op de out-of-memory killer van de kernel. Voeg swap toe, stel een geheugenlimiet in voor de container zodat deze wordt vertraagd in plaats van beëindigd, of schakel machine learning volledig uit op een machine met 4 GB RAM. Zoekfuncties werken dan niet meer, maar de rest van Immich functioneert naar behoren.
Heeft PhotoPrism MariaDB nodig, of volstaat SQLite?
SQLite werkt en is prima voor een persoonlijke bibliotheek, maar PhotoPrism beperkt zichzelf tot vier workers bij gebruik hiervan. De documentatie adviseert over te stappen op MariaDB omdat dit beter omgaat met hoge gelijktijdigheid. Het compose-bestand dat het project meelevert bevat al MariaDB, dus de aanbevolen weg is ook de standaardinstelling.
Hoeveel schijfruimte moet ik reserveren bovenop de grootte van mijn bibliotheek?
Reken voor beide applicaties op 10 tot 20 procent extra bovenop de grootte van uw originelen. Dit is nodig voor gegenereerde thumbnails en getranscodeerde videovoorbeelden. Voor een collectie van 200 GB is ongeveer 300 GB aan opslagruimte gewenst, rekening houdend met de database, de lokale back-up en toekomstige groei.