PhotoPrism of Immich: welke fotoserver kiest u?
Vergelijk PhotoPrism en Immich op RAM, telefoonapps, kaarten en back-ups. Ontdek welk systeem past bij automatische uploads of een bestaande fotobibliotheek.
PhotoPrism versus Immich: het korte antwoord
PhotoPrism versus Immich is een keuze tussen twee verschillende functies, niet tussen twee versies van hetzelfde product. Immich vervangt Google Photos: een telefoonapp maakt automatisch een back-up van uw camerafoto's en de tijdlijn ziet er vertrouwd uit voor iedereen die een telefoongalerij achter zich laat. PhotoPrism ordent een fotobibliotheek die u al hebt: het indexeert mappen met bestanden op schijf, leest de metadata, zet de foto's op een kaart en laat de bestanden precies staan waar ze stonden.
Kies Immich als het probleem is: "mijn telefoon is vol en ik wil Google Photos niet meer gebruiken". Kies PhotoPrism als het probleem is: "ik heb 400 GB aan foto's op een schijf en ik kan niets terugvinden". Beide zijn open source, draaien als Docker-containers op een normale VPS en indexeren en doorzoeken uw bibliotheek zonder gegevens naar een externe partij te sturen.
De filosofische scheidslijn en waarom die alles bepaalt
Immich beheert de bestanden. U wijst het programma naar een uploadlocatie. De telefoonapp of de webuploader verzendt de originelen daarheen. Immich slaat ze op onder een eigen pad en met een eigen naamgeving. De database bevat de volledige informatie over albums, gezichten en zoekopdrachten. Dankzij dit ontwerp werkt de mobiele ervaring goed, omdat de server altijd de volledige status van elk item kent.
PhotoPrism leest de bestanden. U koppelt een map originals die u al beheert. PhotoPrism bouwt daarover een index op. Uw mappenstructuur blijft van u. Als u PhotoPrism morgen verwijdert, staan de foto's nog steeds in dezelfde mappen en hebben ze dezelfde namen. PhotoPrism heeft dan YAML-sidecarbestanden ernaast geplaatst met een beschrijving van wat het programma heeft vastgesteld.
Dit ene verschil verklaart het grootste deel van de rest. Immich biedt sterke mobiele ondersteuning omdat het de gegevensopname beheert. PhotoPrism biedt sterke mogelijkheden voor het beheren van bibliotheken omdat het uw bestaande structuur nooit doorkruist. 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.
Hardwarevereisten: Immich vraagt meer
De gedocumenteerde minimale hoeveelheden geheugen liggen ver uit elkaar. 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 hoeveelheid. Daarbij staat dat een machine met 4 GB het alleen kan uitvoeren als machine learning is uitgeschakeld. PhotoPrism documenteert 3 GB fysiek geheugen en twee CPU-cores. Ook vermeldt het dat de hoeveelheid RAM moet overeenkomen met het aantal cores.
Het verschil is reëel en wordt veroorzaakt door de container voor machine learning. Immich voert zijn modellen uit in een afzonderlijke immich-machine-learning-service die CLIP (contrastive language image pretraining) en modellen voor gezichtsdetectie in het geheugen laadt. Op een machine met 2 GB beëindigt de kernel die container. U ziet dan dat deze wordt afgesloten met code 137. Dat is hoe een beëindiging wegens onvoldoende geheugen er vanuit Docker uitziet. De TensorFlow-modellen van PhotoPrism zijn kleiner. PhotoPrism schakelt functies uit in plaats van vast te lopen: op machines met 1 GB of minder schakelt het RAW-conversie en TensorFlow uit in plaats van te crashen.
Beide projecten vereisen swap. In de documentatie van PhotoPrism staat expliciet dat de server minimaal 4 GB swap moet hebben. Voeg deze 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 moet nu een Swap:-regel afdrukken waarin 4.0Gi wordt weergegeven. Als 0B wordt afgedrukt, is swapon mislukt. Dit komt meestal doordat het bestandssysteem fallocate niet ondersteunt. In dat geval is sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 de fallback. Ook limieten voor het geheugen van containers zijn hier belangrijk. geheugenlimieten instellen in Docker Compose voorkomt dat één service die veel geheugen gebruikt de hele machine laat uitvallen.
Een andere vereiste leidt vaak tot problemen. De Postgres-database van Immich moet op een normaal Unix-bestandssysteem met echte eigenaars en machtigingen staan, op lokale opslag en nooit op een netwerkshare. PhotoPrism stelt dezelfde eis aan zijn databasebestanden. Geen van beide toepassingen is veilig als de database op een gekoppelde objectstore staat.
Hoe u elk exemplaar installeert
Beide installaties bestaan uit een compose-bestand van de leverancier en één opdracht. Stel Docker Engine en de Compose-plugin eerst in, zoals beschreven in onze handleiding voor Docker Compose op een VPS.
Immich publiceert bij elke release het compose-bestand en een voorbeeldbestand voor de omgeving.
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 iets start. UPLOAD_LOCATION is de locatie voor uw originelen. DB_PASSWORD moet u met alleen de tekens A-Za-z0-9 wijzigen ten opzichte van de standaardwaarde, omdat speciale tekens de verbindingsreeks ongeldig maken. Start de toepassing daarna.
docker compose up -d
docker compose psDe webinterface is bereikbaar op poort 2283. Het eerste account dat u via deze pagina registreert, wordt de beheerder. Open de pagina daarom direct en registreer het account. Laat een niet-beveiligde instantie niet op internet staan.
PhotoPrism levert één compose-bestand dat MariaDB al bevat.
sudo mkdir -p /opt/photoprism && cd /opt/photoprism
wget https://dl.photoprism.app/docker/compose.yamlOpen compose.yaml en wijzig PHOTOPRISM_ADMIN_PASSWORD voordat u de toepassing voor het eerst start. De documentatie is hier duidelijk over: de toepassing start met het initiële wachtwoord dat in dat bestand staat. De minimale lengte is 8 tekens. Gebruik de standaardwaarde nooit op een openbare server. Stel tegelijkertijd het volume originals in op de map met uw foto’s.
docker compose up -d
docker compose logs -f photoprismPhotoPrism is bereikbaar op poort 2342 met de gebruiker admin. Geen van beide toepassingen mag rechtstreeks aan internet worden blootgesteld. Plaats een reverse proxy met TLS (transportlaagbeveiliging) ervoor, volgens dezelfde opzet als een zelfgehoste Nextcloud met Docker, TLS en back-ups.
Welke heeft de betere telefoonapp
Hier wijken de twee projecten het sterkst van elkaar af. Daarom kiezen de meeste mensen uiteindelijk voor Immich.
Immich levert officiële apps voor Android en iOS. Deze maken op de achtergrond een back-up van de camerarol. Nieuwe foto's worden dus van de telefoon gekopieerd zonder dat iemand de app hoeft te openen. De app vereist een HTTPS-endpoint. Daarom is een reverse proxy noodzakelijk als u de app buitenshuis wilt gebruiken.
PhotoPrism heeft geen officiële native app. Het levert een progressive web app die u vanuit de browser aan het startscherm toevoegt. Voor synchronisatie vanaf een telefoon documenteert het WebDAV (web distributed authoring and versioning) als methode. Het project raadt hiervoor een app van derden aan met de naam PhotoSync. U configureert deze voor de map /import/ of /originals/ via WebDAV. Dit werkt, maar het is een betaalde app van derden die een taak uitvoert die Immich in zijn eigen client afhandelt.
Als automatische back-up van telefoons van meerdere gezinsleden vereist is, is de keuze duidelijk. Immich.
Wat machine learning u daadwerkelijk oplevert
Immich voert semantische zoekopdrachten uit in uw bibliotheek met CLIP. Daardoor vindt een zoekopdracht zoals "rode fiets in de sneeuw" foto's die nooit van tags zijn voorzien. Immich detecteert en groepeert ook gezichten en detecteert duplicaten. Het indexeren van een grote import op een CPU kan op de achtergrond uren duren. Dat is normaal en vereist geen GPU (graphics processing unit).
PhotoPrism classificeert afbeeldingen met TensorFlow aan de hand van labels, detecteert gezichten en groepeert deze per persoon. Ook leest het locatiegegevens uit de metadata om een kaart met plaatsen op te bouwen. Die kaart is de functie waarvoor gebruikers blijven: een bibliotheek die is geïndexeerd op basis van de plaats waar foto's zijn gemaakt, biedt een wezenlijk andere manier om twintig jaar aan foto's te doorzoeken. Gezichtsherkenning is inbegrepen in de gratis Community-editie. De betaalde lidmaatschappen Essentials en Plus voegen extra's toe, zoals uitgebreidere kaartlagen, meer gebruikersrollen en een interface voor gebruikersbeheer. Vanaf juli 2026 kosten deze enkele euro's per maand.
Immich is volledig gratis en heeft geen betaald niveau. De kern van PhotoPrism is gratis, met optionele betaalde extra's.
Back-ups bepalen of u alles behoudt
Een fot server zonder back-up is één schijfstoring verwijderd van het verlies van alle foto's van een gezin. Beide toepassingen hebben twee back-ups nodig: de database en de bestanden.
Maak voor Immich een dump van de database vanuit de Postgres-container en kopieer 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 gegevens zijn upload, library en profile. De mappen thumbs en encoded-video kunnen opnieuw worden gegenereerd, maar dat kost uren processortijd. Met alleen een database-dump kunt u niets herstellen, omdat daarin alleen metadata staat.
Voor PhotoPrism heeft de index een eigen opdracht.
docker compose exec photoprism photoprism backup -i -fDaarmee wordt een SQL-dump opgeslagen onder storage/backup/. Kopieer vervolgens de map originals en de map storage. PhotoPrism schrijft ook YAML-sidecarbestanden met een beschrijving van elke foto. Daardoor kan een verloren index uitsluitend op basis van de bestanden opnieuw worden opgebouwd. Dat is een belangrijk voordeel voor een archief dat u tientallen jaren wilt bewaren.
Welke toepassing u ook kiest, stuur die back-ups volgens een schema van de server naar externe opslag met versleutelde, gededupliceerde restic-back-ups naar externe opslag. Een back-up die op dezelfde schijf als de bibliotheek staat, is geen back-up.
Welke moet u uitvoeren
Voer Immich uit 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 geven. Het komt het dichtst in de buurt van Google Photos dat u zelf kunt hosten, en de mobiele ervaring staat centraal. Onze stapsgewijze installatiehandleiding voor Immich behandelt geheugenterminaties en problemen bij upgrades in detail.
Voer PhotoPrism uit als u al een fotoarchief op schijf hebt, als u waarde hecht aan kaarten en metadata en uw eigen mappenstructuur wilt behouden, of als uw VPS 4 GB RAM heeft en u liever een werkende bibliotheek hebt dan een bibliotheek die naar swapgeheugen uitwijkt. Het is de betere tool voor curatie en is minder belastend voor beperkte hardware.
Beide uitvoeren is ook een goede optie. Immich verwerkt dagelijks foto's vanaf telefoons. Eenmaal per jaar sorteert u de foto's die u wilt bewaren in uw archief en laat u PhotoPrism dat archief indexeren. Ze veroorzaken geen conflicten, omdat PhotoPrism mappen leest en Immich zijn eigen opslag beheert.
FAQ
Kunnen PhotoPrism en Immich dezelfde fotomap delen?
Niet veilig in beide richtingen. PhotoPrism leest een map originals en schrijft YAML-sidecarbestanden naast uw afbeeldingen, terwijl Immich verwacht eigenaar te zijn van de inhoud van zijn uploadlocatie. U kunt PhotoPrism naar een alleen-lezenkopie van de map library van Immich laten verwijzen om deze te bekijken, maar laat beide toepassingen niet dezelfde bestanden beheren. De opslagtemplate van Immich kan assets in PhotoPrism verplaatsen of hernoemen terwijl Immich deze indexeert.
Is Immich stabiel genoeg om de enige kopie van mijn foto's te bevatten?
Geen enkele zelf gehoste toepassing mag ooit de enige kopie van iets bevatten. Immich brengt vaak wijzigingen uit die de compatibiliteit verbreken. Een onzorgvuldige docker compose pull kan ervoor zorgen dat de database niet meer kan starten. Zet daarom uw versie vast en lees de release notes voordat u een upgrade uitvoert. Bewaar de originele bestanden buiten de server met een back-up. Dan blijft het risico klein.
Waarom wordt de machine-learningcontainer van Immich steeds opnieuw gestart?
De container wordt beëindigd omdat deze te veel geheugen gebruikt. Voer docker compose ps uit en zoek naar de machine-learningservice die eindigt met code 137. Dit is de out-of-memory-killer van de kernel. Voeg swap toe of geef de container een geheugenlimiet, zodat deze wordt afgeremd in plaats van beëindigd. U kunt machine learning ook volledig uitschakelen op een machine met 4 GB. Zoeken werkt dan niet meer, maar de rest van Immich blijft goed functioneren.
Heeft PhotoPrism MariaDB nodig, of volstaat SQLite?
SQLite werkt en is geschikt voor een persoonlijke bibliotheek. PhotoPrism beperkt zichzelf bij gebruik van SQLite echter tot vier workers. De documentatie adviseert daarom over te schakelen naar MariaDB, omdat deze database hogere gelijktijdigheid beter verwerkt. Het compose-bestand dat het project levert, bevat MariaDB al. De aanbevolen configuratie is dus ook de standaardconfiguratie.
Hoeveel schijfruimte moet ik reserveren boven op de omvang van mijn bibliotheek?
Reserveer voor beide toepassingen 10 tot 20 procent boven op de omvang van uw originelen. Dit dekt gegenereerde miniaturen en getranscodeerde videovoorbeelden. Voor een collectie van 200 GB is ongeveer een volume van 300 GB nodig. Zo blijft er ruimte voor de database, de lokale back-upkopie en groei.