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.

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

AspectPhotoprismImmich
Min RAM2 GB4 GB
Recommended RAM4 GB+8 GB+
DatabaseMariaDB or SQLitePostgreSQL (required)
ML ProcessingTensorFlow (CPU or GPU)ONNX + CLIP (CPU or GPU)
Initial IndexingModerateHeavy (face + CLIP)
Idle Resource UseLowModerate

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 CasePick This
Google Photos replacement for a familyImmich
Browsing an existing photo archivePhotoprism
Low-powered hardware (Pi, old NAS)Photoprism
Natural language photo searchImmich
Set-and-forget stabilityPhotoprism
Free multi-user supportImmich
Professional photography workflowPhotoprism
Active development and new featuresImmich

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?