Google Photos keeps getting worse. The free unlimited storage is long gone, the AI features now require a Google One subscription, and every year they find new ways to nudge you toward paying more. If you’ve been thinking about taking your photo library back into your own hands, 2026 is the year to do it.

I’ve tested every major self-hosted photo management tool over the past two years — running them on everything from a Raspberry Pi 4 to a dedicated Proxmox server. Here’s the honest breakdown of what works, what doesn’t, and what you should actually install.

Why Leave Google Photos?

Before we dive into alternatives, let’s be clear about why you’d bother:

  • Privacy: Google scans every photo you upload for AI training, ad targeting, and object recognition. Your family photos are feeding their models.
  • Cost: Google One plans keep climbing. At 2TB, you’re paying $100+/year — forever.
  • Lock-in: Try exporting your library with Google Takeout sometime. It’s a nightmare of fragmented ZIP files with mangled metadata.
  • Control: Google can change their terms, reduce storage, or shut down the service whenever they want. Your photos deserve better.

The good news? Self-hosted alternatives have gotten really good. Some are genuinely better than Google Photos in many ways.

The Contenders at a Glance

AppBest ForMobile AppFace RecognitionMap ViewActive Development
ImmichGoogle Photos replacement✅ Excellent✅ On-device🔥 Very active
PhotoPrismAdvanced photo management⚠️ PWA only✅ Active
LibrePhotosPrivacy-focused users⚠️ Slower
EnteE2E encrypted photos✅ Great✅ Active
Nextcloud PhotosExisting Nextcloud users✅ Via Nextcloud⚠️ With Recognize⚠️✅ Active

1. Immich — The King of Self-Hosted Photos

Let’s cut to the chase: Immich is what most people should install. It’s the closest thing to a full Google Photos replacement that exists, and it’s not even close.

What Makes Immich Special

Immich was built from the ground up to be a Google Photos alternative. That matters, because it means the developer (Alex Tran) obsessed over exactly the right things:

  • Native mobile apps for iOS and Android that actually feel good to use
  • Automatic background upload — your phone photos sync seamlessly
  • Machine learning pipeline for face recognition, object detection, and smart search
  • Timeline view that mirrors the Google Photos experience
  • Shared albums and partner sharing (share your library with your spouse)
  • Map view with GPS-tagged photos plotted on a world map
  • Memories — “On this day” flashbacks, just like Google Photos
  • Hardware-accelerated video transcoding via GPU passthrough

Performance

Immich runs machine learning locally on your server. With a decent CPU (Intel 10th gen or newer with Quick Sync), the ML processing is surprisingly fast. Face recognition processes about 100 photos per minute on an i5-10400. If you have an NVIDIA GPU, it absolutely flies.

RAM usage sits around 2-4GB with a library of 50,000 photos. The PostgreSQL database stays snappy even at scale.

Docker Compose Setup

Here’s a working docker-compose.yml for Immich:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:release
    volumes:
      - /path/to/your/photos:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - "2283:2283"
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:release
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1
    restart: always

volumes:
  pgdata:
  model-cache:

And the .env file:

1
2
3
4
DB_PASSWORD=your_secure_password_here
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
UPLOAD_LOCATION=/path/to/your/photos

The Catch

Immich is technically still in active development. The team explicitly warns against using it as your only copy of photos. That said, I’ve been running it for over a year with zero data loss. Just keep proper backups of your photo directory — which you should be doing anyway.

Verdict: Install Immich. Seriously. If you want a deeper walkthrough, check out our complete Immich setup guide.

2. PhotoPrism — The Photographer’s Choice

If Immich is the Google Photos clone, PhotoPrism is what happens when a photographer builds a photo management tool. It approaches the problem differently — less about phone backups, more about organizing and discovering your existing library.

Strengths

  • Incredible search: Type “red car on beach” and it actually finds it. The AI-powered search is the best I’ve tested.
  • Automatic tagging and categorization that’s eerily accurate
  • RAW file support — it handles CR2, NEF, ARW, and other RAW formats natively
  • Beautiful UI with a clean, magazine-like layout
  • Facial recognition and clustering that groups unknown faces intelligently
  • Places map showing where your photos were taken worldwide

Where It Falls Short

  • No native mobile app. You get a PWA (Progressive Web App) that works okay but doesn’t match a real app. No background upload.
  • No built-in sharing/partner features (these are behind the PhotoPrism Plus subscription)
  • Higher resource usage — the indexing process is CPU-hungry, especially on first run
  • Slower development pace than Immich

Quick Docker Setup

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
services:
  photoprism:
    image: photoprism/photoprism:latest
    container_name: photoprism
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    ports:
      - "2342:2342"
    environment:
      PHOTOPRISM_ADMIN_USER: "admin"
      PHOTOPRISM_ADMIN_PASSWORD: "your_secure_password"
      PHOTOPRISM_SITE_URL: "http://localhost:2342/"
      PHOTOPRISM_DATABASE_DRIVER: "mysql"
      PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"
      PHOTOPRISM_DATABASE_NAME: "photoprism"
      PHOTOPRISM_DATABASE_USER: "photoprism"
      PHOTOPRISM_DATABASE_PASSWORD: "your_db_password"
    volumes:
      - /path/to/originals:/photoprism/originals
      - photoprism-storage:/photoprism/storage
    depends_on:
      - mariadb
    restart: unless-stopped

  mariadb:
    image: mariadb:11
    container_name: photoprism-mariadb
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    environment:
      MARIADB_AUTO_UPGRADE: "1"
      MARIADB_DATABASE: "photoprism"
      MARIADB_USER: "photoprism"
      MARIADB_PASSWORD: "your_db_password"
      MARIADB_ROOT_PASSWORD: "your_root_password"
    volumes:
      - mariadb-data:/var/lib/mysql
    restart: unless-stopped

volumes:
  photoprism-storage:
  mariadb-data:

Verdict: Best choice if you’re a photographer who wants powerful search and organization. Not ideal if you mainly want phone backup sync.

3. LibrePhotos — The Privacy Purist’s Pick

LibrePhotos is a fork of the now-abandoned OwnPhotos project. It’s fully open source (MIT license) and focuses heavily on privacy-respecting AI features.

What’s Good

  • Completely free and open source — no paid tiers, no premium features
  • On-device ML processing for face detection, scene classification, and object recognition
  • Timeline and album views that work well
  • Photo deduplication built in

What’s Not So Good

  • Development has slowed significantly in the past year. The community is smaller.
  • No mobile app at all — web-only interface
  • The UI feels dated compared to Immich and PhotoPrism
  • Setup is more finicky — the Docker Compose file is more complex and things break more often
  • Performance with large libraries (100k+ photos) degrades noticeably

Verdict: Hard to recommend over Immich in 2026 unless the MIT license is specifically important to you. The slower development pace means it’s falling behind.

4. Ente — End-to-End Encrypted Photos

Ente is unique on this list because it was originally a cloud service (and still is). But they’ve open-sourced their server, so you can now self-host the entire stack.

Why Ente Stands Out

  • True end-to-end encryption — your server never sees unencrypted photos
  • Polished mobile apps that rival commercial products
  • Simple, clean interface focused on what matters
  • Cross-platform desktop apps for Windows, Mac, and Linux
  • Automatic background upload on mobile

The Trade-offs

  • E2E encryption means limited server-side features — no face recognition, no smart search, no AI tagging. The server can’t read your photos.
  • Self-hosting is more complex — the server setup involves multiple services and isn’t as straightforward as Immich
  • No map view or memories feature
  • Smaller self-hosting community since most users pay for Ente’s cloud service

Verdict: If privacy is your absolute top priority and you’re willing to give up AI features for true E2E encryption, Ente is unmatched. For everyone else, Immich gives you more functionality.

5. Nextcloud Photos — The “I Already Run Nextcloud” Option

If you’re already running Nextcloud (and a lot of self-hosters are), the Photos app is right there. But should you use it?

The Reality

Nextcloud Photos has improved significantly, but it’s still fundamentally a photo viewer bolted onto a file sync platform. Here’s what you get:

  • Automatic photo upload via the Nextcloud mobile app
  • Album creation and sharing
  • Basic face recognition via the Recognize app (requires extra setup)
  • Map view with the Maps app installed
  • Tight integration with the rest of your Nextcloud ecosystem

Why It’s Not Enough for Most People

  • Performance is Nextcloud’s eternal weakness. The photo browsing experience feels sluggish, especially with large libraries.
  • The mobile app is primarily a file sync tool, not a photo app. The photo viewing experience is mediocre.
  • Face recognition via Recognize is slow and inaccurate compared to Immich or PhotoPrism
  • No memories/flashback feature
  • Thumbnail generation is painfully slow on first setup

Verdict: If Nextcloud is already the center of your self-hosted world and you have a modest photo library (<20k photos), it works fine. For a serious Google Photos replacement? Install Immich alongside it.

My Recommendation

Here’s the decision tree:

  1. Want the closest Google Photos experience?Immich. Full stop.
  2. Serious photographer with RAW files and huge library?PhotoPrism
  3. Privacy absolutist who wants E2E encryption?Ente
  4. Already on Nextcloud with a small library?Nextcloud Photos (but consider Immich anyway)
  5. Want fully FOSS with no paid tiers?LibrePhotos (but be aware development has slowed)

For 90% of people reading this, Immich is the answer. It has the best mobile apps, the most active development, the strongest community, and it genuinely feels like a product that could compete with Google Photos — not just a “good enough for self-hosting” compromise.

Hardware Requirements

Whatever you choose, here’s what you’ll need:

  • Minimum: 4GB RAM, 2-core CPU, SSD for database. Works for personal use with <50k photos.
  • Recommended: 8GB RAM, 4-core CPU (Intel 10th gen+ for Quick Sync), SSD for database + HDD for photo storage.
  • Ideal: 16GB+ RAM, 6+ cores, NVIDIA GPU for ML acceleration. Handles 200k+ photos with ease.

All of these apps run on Docker, so a dedicated mini PC or a VM on your Proxmox server works perfectly. Check out our best mini PCs for homelab guide if you need hardware recommendations.

Getting Started

Pick your tool, spin up Docker, and start uploading. The initial migration from Google Photos takes some patience (use Google Takeout, then import), but once your library is synced, you’ll wonder why you didn’t do this sooner.

Your photos are yours. Keep them that way.