If you’re leaving Google Photos (or Apple iCloud, or Amazon Photos), you’ve probably narrowed it down to two options: Photoprism and Immich. Both are excellent. Both are self-hosted. Both will keep your photos private. But they’re built for different people.
Here’s the honest breakdown after running both in production throughout 2025 and into 2026.
The Quick Answer
Choose Immich if you want a Google Photos replacement with automatic mobile backups and you’re comfortable with a fast-moving project that occasionally has breaking changes.
Choose Photoprism if you want a stable, mature photo browser with powerful search and you primarily manage an existing photo library from a desktop workflow.
Feature Comparison
Mobile Experience
Immich wins this category decisively. The Immich mobile app (iOS and Android) supports automatic background uploads, multi-account switching, and album management. It feels native and polished — closer to Google Photos than any other self-hosted solution.
Photoprism has a Progressive Web App (PWA) that works on mobile browsers. It’s functional for browsing but doesn’t support automatic background uploads. Third-party apps like Photosync can bridge the gap, but it’s an extra step and an extra cost.
Winner: Immich — if mobile backup is your primary use case, this alone might make your decision.
AI and Search
Both platforms use machine learning, but differently.
Photoprism uses TensorFlow for face recognition, object detection, and scene classification. Its search is keyword-based but benefits from auto-generated tags. You can search for “beach” or “dog” and get relevant results. Photoprism has had years to refine its classification models, and it shows — accuracy is consistently good.
Immich uses CLIP-based smart search, which means you can use natural language queries like “photos of kids playing in the snow” or “sunset at the lake.” It also has face recognition and object detection. The CLIP approach is more flexible but can sometimes return unexpected results.
Winner: Tie — Photoprism is more reliable for basic searches; Immich is more powerful for natural language queries.
Library Management
Photoprism treats your existing folder structure as sacred. Point it at a directory, and it indexes without moving files. You can use sidecar files for metadata, and it reads XMP, EXIF, and IPTC data thoroughly. If you’ve spent years organizing photos into folders, Photoprism respects that work.
Immich manages its own storage. When you upload photos (via the app or CLI), Immich organizes them into its own directory structure. You can set up external libraries to index existing folders (read-only), but the primary workflow assumes Immich controls the files.
Winner: Photoprism — for photographers with established workflows and folder structures.
Performance and Requirements
| Aspect | Photoprism | Immich |
|---|---|---|
| Min RAM | 2 GB | 4 GB |
| Recommended RAM | 4 GB+ | 8 GB+ |
| Database | MariaDB or SQLite | PostgreSQL (required) |
| ML Processing | TensorFlow (CPU or GPU) | ONNX + CLIP (CPU or GPU) |
| Initial Indexing | Moderate | Heavy (face + CLIP) |
| Idle Resource Use | Low | Moderate |
Photoprism is lighter. If you’re running on a Raspberry Pi 4 or a low-end NAS, Photoprism will be more comfortable. Immich’s machine learning pipeline is hungrier — initial indexing of a large library (50k+ photos) can take hours and will peg your CPU.
Winner: Photoprism — runs well on more modest hardware.
Sharing and Multi-User
Immich supports multiple user accounts out of the box. Each user gets their own library, and you can share albums between users. Partners can see each other’s entire timeline if configured. It’s built for families.
Photoprism supports sharing via links and has multi-user in its paid Essentials/Plus tiers. The free (Community) edition is single-user. For a household where multiple people need their own photo libraries, Immich has the edge.
Winner: Immich — native multi-user support in the free version.
Stability and Maturity
Photoprism has been around since 2018. It’s mature, stable, and rarely introduces breaking changes. Updates are straightforward, and the API is well-documented. If you set it up and forget about it for six months, it’ll still be running fine.
Immich moves fast — sometimes too fast. The project explicitly warns that breaking changes can occur between versions. Database migrations usually work, but the project recommends reading release notes before every update. The pace of development is impressive (new features land weekly), but it demands more attention from the admin.
Winner: Photoprism — if you value set-and-forget stability.
Backup and Import Tools
Immich has the immich-cli tool for bulk uploads from the command line, a Google Takeout import guide, and community tools for migrating from various platforms. The API is comprehensive.
Photoprism supports importing from a watched folder, and you can use standard file tools (rsync, rclone) to move photos into its import directory. It also handles Google Takeout exports.
Winner: Tie — both have solid import stories, just different approaches.
Docker Compose: Side by Side
Photoprism
services:
photoprism:
image: photoprism/photoprism:latest
container_name: photoprism
restart: unless-stopped
ports:
- "2342:2342"
environment:
PHOTOPRISM_ADMIN_USER: "admin"
PHOTOPRISM_ADMIN_PASSWORD: "changeme"
PHOTOPRISM_SITE_URL: "https://photos.example.com/"
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"
PHOTOPRISM_DATABASE_NAME: "photoprism"
PHOTOPRISM_DATABASE_USER: "photoprism"
PHOTOPRISM_DATABASE_PASSWORD: "dbpassword"
volumes:
- ./originals:/photoprism/originals
- ./storage:/photoprism/storage
- ./import:/photoprism/import
mariadb:
image: mariadb:11
container_name: photoprism-db
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: "rootpassword"
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "dbpassword"
volumes:
- ./db:/var/lib/mysql
Immich
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich-server
restart: unless-stopped
ports:
- "2283:2283"
environment:
DB_HOSTNAME: immich-db
DB_USERNAME: postgres
DB_PASSWORD: dbpassword
DB_DATABASE_NAME: immich
REDIS_HOSTNAME: immich-redis
volumes:
- ./upload:/usr/src/app/upload
depends_on:
- immich-db
- immich-redis
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
container_name: immich-ml
restart: unless-stopped
volumes:
- ./model-cache:/cache
immich-redis:
image: redis:7-alpine
container_name: immich-redis
restart: unless-stopped
immich-db:
image: tensorchord/pgvecto-rs:pg16-v0.2.0
container_name: immich-db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: dbpassword
POSTGRES_USER: postgres
POSTGRES_DB: immich
volumes:
- ./db:/var/lib/postgresql/data
Notice Immich needs more containers — a separate machine learning service, Redis, and a PostgreSQL variant with vector extensions. Photoprism is simpler to deploy.
Cost
Photoprism has a tiered model:
- Community Edition — Free, open source (AGPL), single-user
- Essentials — From $4/month, adds multi-user and priority support
- Plus — More features and support tiers
Immich is completely free and open source (AGPL). The developers accept donations through GitHub Sponsors and Open Collective.
Winner: Immich — full features at no cost.
Migration Between Them
Moving from Photoprism to Immich (or vice versa) is straightforward because both work with standard photo files. Export your originals, re-import them into the other platform, and let it re-index. You’ll lose platform-specific metadata (albums, favorites, face names) but keep all EXIF data.
The immich-cli upload tool makes migrating to Immich particularly easy — point it at your Photoprism originals directory and let it upload everything.
The Verdict
| Use Case | Pick This |
|---|---|
| Google Photos replacement for a family | Immich |
| Browsing an existing photo archive | Photoprism |
| Low-powered hardware (Pi, old NAS) | Photoprism |
| Natural language photo search | Immich |
| Set-and-forget stability | Photoprism |
| Free multi-user support | Immich |
| Professional photography workflow | Photoprism |
| Active development and new features | Immich |
Both projects are excellent. The self-hosted photo space is one of the strongest categories in the entire self-hosting ecosystem, and you genuinely can’t go wrong with either choice.
If you’re starting fresh and want a Google Photos-like experience with mobile backups for your family, go with Immich. If you’re a photographer with terabytes of organized photos who wants a stable browser and search tool, go with Photoprism.
Either way, your photos stay yours. That’s the whole point.
What’s Next?
- Already decided on Immich? Check our complete Immich setup guide
- Need a reverse proxy? See our Traefik v3 guide or Nginx Proxy Manager guide
- Want to monitor your photo server? Try Netdata for real-time stats