Immich vs PhotoPrism: Which Should You Self-Host?

Quick Verdict

Immich is the better choice for most people. It has native mobile apps with auto-upload, faster development velocity, a more modern UI, and it’s the closest thing to a self-hosted Google Photos. Choose PhotoPrism if you have a massive existing library you want to index and browse without mobile upload features, or if you need a more stable, mature platform.

Overview

Immich is a relatively new (started 2022) self-hosted photo and video management platform that aims to be a direct Google Photos replacement. It has native iOS and Android apps, AI-powered facial recognition and CLIP-based smart search, automatic background upload from mobile devices, and a polished web interface. It’s one of the fastest-growing open-source projects on GitHub with 90,000+ stars.

PhotoPrism has been around since 2018 and is a more mature photo management and indexing tool. It focuses on organizing and browsing large existing photo libraries with AI-powered classification, location mapping, and search. It’s available as a free AGPL edition and a paid “Essentials” tier with additional features.

Both run in Docker and use machine learning for photo organization, but they solve different problems. Immich is a “Google Photos replacement” — designed around the mobile-first upload-and-browse workflow. PhotoPrism is a “smart photo library” — designed to index and organize an existing collection.

Feature Comparison

FeatureImmichPhotoPrism
Native mobile appsYes (iOS + Android)No (web app only)
Auto-upload from phoneYes (background upload)No (use Photosync as workaround)
Face recognitionYes (built-in)Yes (built-in)
Smart search (CLIP)Yes (“dog on beach” works)Yes (similar quality)
Map viewYesYes
Shared albumsYes (with user accounts)Yes (via links)
Multi-user supportYes (full user management)Yes (roles and sharing)
Video supportYes (playback + transcoding)Yes (playback + transcoding)
RAW file supportYesYes (extensive format support)
External library supportYes (watches external folders)Yes (originals + import directories)
Duplicate detectionYesYes
OAuth/OIDC supportYesYes (Essentials tier)
LicenseAGPL-3.0 (fully open)AGPL-3.0 (free) + paid Essentials tier
APIREST API (documented)REST API
CLI toolsYes (immich-cli for bulk upload)Yes (photoprism CLI)

Installation Complexity

Immich runs as four services: the server (API + web), a machine learning container, PostgreSQL with pgvecto.rs, and Valkey (Redis-compatible cache). Setup is straightforward — download the official docker-compose.yml and .env, configure your upload path and database password, and start. First startup takes a few minutes to initialize the ML models.

PhotoPrism runs as two services: PhotoPrism itself and MariaDB. Fewer moving parts, but the configuration is more involved. You need to set security options (seccomp:unconfined), ensure 4 GB of swap space, handle TLS settings, and manage several environment variables that interact in non-obvious ways (like the database driver being mysql even when using MariaDB).

Winner: Immich. Despite having more services, Immich’s setup is more turnkey. PhotoPrism has more configuration gotchas.

Performance and Resource Usage

ResourceImmichPhotoPrism
RAM (idle)~800 MB (server + ML)~400 MB
RAM (indexing)2-4 GB2-4 GB (needs 4 GB swap)
CPU (idle)LowLow
CPU (indexing)High (ML inference)High (TensorFlow)
Disk (application)~5 GB (ML models + DB)~3 GB (TF models + DB)
Initial index (10K photos)15-30 minutes20-45 minutes
Startup time~30 seconds2-5 minutes (first run downloads TF models)

Immich uses more RAM at idle because it keeps the ML service running separately. PhotoPrism is lighter at idle but requires dedicated swap space for indexing operations — without 4 GB swap, the OOM killer will terminate indexing on large libraries.

Both scale similarly for large libraries (100K+ photos). The bottleneck in both cases is the initial indexing pass, which is CPU-intensive.

Winner: Tie. Immich uses more idle RAM. PhotoPrism needs more swap. Total resource impact is similar.

Community and Support

MetricImmichPhotoPrism
GitHub stars90,000+35,000+
Release frequencyWeekly to biweeklyMonthly
Discord/communityVery active DiscordActive community forum
DocumentationGood (improving rapidly)Good (comprehensive)
Development velocityExtremely highSteady
Breaking changesFrequent (active dev)Rare (mature project)
Contributors700+200+

Immich has explosive community growth and development velocity. New features ship weekly. The downside is that breaking changes happen more often — you should always read release notes before upgrading.

PhotoPrism has a smaller but established community with a mature codebase. Changes are less frequent but more stable. The paid Essentials tier funds ongoing development.

Winner: Immich (for community size and development pace). PhotoPrism wins for stability.

Use Cases

Choose Immich If…

  • You want a full Google Photos replacement with mobile auto-upload
  • You’re setting up photo management for a family (multi-user + shared albums)
  • You want the most active development and newest features
  • You’re comfortable with occasional breaking changes on upgrades
  • You want native mobile apps (not just a PWA)
  • You’re starting fresh and want to upload going forward

Choose PhotoPrism If…

  • You have an existing large photo library (100K+ photos) on a NAS and want to index it
  • You prefer a more stable, mature platform with fewer breaking changes
  • You don’t need native mobile apps or auto-upload
  • You want lower idle memory usage
  • You want a self-contained solution (fewer Docker services)
  • You’re willing to pay for Essentials tier features (OAuth, advanced search)

Final Verdict

Immich wins for most self-hosters. The combination of native mobile apps, automatic background upload, face recognition, and CLIP-powered smart search makes it the most complete Google Photos replacement available. It’s what most people actually want when they say “I want to self-host my photos.”

PhotoPrism is the better choice if you already have a massive photo library sitting on a NAS and you want a smart browsing interface for it without changing your existing workflow. It’s more mature, lighter at idle, and less likely to break on updates.

If you’re unsure, start with Immich. It covers the most common use case (replace Google Photos with a private alternative that handles mobile uploads) and the community is building features at an incredible pace. You can always add PhotoPrism alongside it later for library browsing.

FAQ

Can I run both Immich and PhotoPrism at the same time?

Yes. They use different databases and ports. You could use Immich for daily mobile uploads and PhotoPrism to index an existing library on a NAS. Just make sure your server has enough RAM (8 GB+ recommended for both).

Which has better face recognition?

Both are good. Immich’s face recognition is slightly more accurate in recent versions and groups faces more reliably. PhotoPrism’s face recognition is solid but occasionally creates duplicate face clusters that need manual merging. For most libraries, the difference is negligible.

Can I migrate from PhotoPrism to Immich (or vice versa)?

There’s no direct migration tool. Both work with standard photo files and EXIF metadata, so the photos themselves transfer easily — just copy the files. What doesn’t transfer: album organization, face labels, and favorites. You’ll need to re-index and re-organize in the target application.

Is PhotoPrism’s paid tier worth it?

The free AGPL tier covers most needs: browsing, search, face recognition, map view, sharing. The Essentials tier adds OAuth/OIDC, advanced search filters, and priority support. If you need SSO integration, it’s worth it. Otherwise, the free tier is sufficient.

Which is better for video?

Both handle video playback and basic organization. Neither is a dedicated video management tool — for serious video library management, consider Jellyfin. For photo management with some video, both Immich and PhotoPrism work fine.