Best Self-Hosted Photo App

Replacing Google Photos with something self-hosted is the most common "leaving big tech" project — and the requirements are unusually demanding: reliable mobile auto-upload, face recognition, AI search, fast browsing of tens of thousands of images. A handful of projects now do this well.

Top picks by priority

PriorityRecommendedWhy
Closest to Google Photos UXImmichMature mobile apps, fast UI, face + AI search
Library-first, organizationalPhotoPrismStrong metadata, tagging, RAW handling
Already running NextcloudNextcloud Photos / MemoriesReuses Nextcloud auth and sync
End-to-end encrypted + cross-deviceEnte (self-hosted)E2EE design; can also use Ente cloud
Minimal, browse-onlyPhotoviewTiny, simple gallery over folders

The main contenders

#1 — Best overall Google Photos replacement
Immich

The project that finally made self-hosted photos competitive with Google. Excellent mobile apps (iOS + Android) with background auto-upload, fast web UI, face recognition, OCR/text search, semantic search via CLIP embeddings, shared albums, partner sharing, "memories" view. Active development, frequent releases.

Best for: almost everyone leaving Google Photos. Default recommendation.

#2 — Best for organized libraries
PhotoPrism

Built around metadata and organization. Excellent for users with large, carefully tagged libraries — RAW support, EXIF preservation, geolocation, advanced filters. Mobile sync is less mature than Immich (mostly relies on third-party clients or WebDAV).

Best for: photographers, archivists, anyone whose library is a project rather than a phone backup.

#3 — Best if you already run Nextcloud
Nextcloud Memories

If Nextcloud is already part of your stack, the Memories app gives you a Google Photos-like timeline view over photos in Nextcloud. Reuses your existing auth, mobile clients, and sharing. Face recognition via the recognize app. Less polished than Immich but zero new infrastructure.

Best for: existing Nextcloud users who don't want a separate photo stack.

#4 — Best for end-to-end encryption
Ente (self-hosted)

Ente's mobile and desktop apps work against a self-hosted Ente backend. The vault is end-to-end encrypted — even if the server is compromised, photos remain unreadable. Trade-off: server-side features (AI search, OCR) are limited because the server can't see decrypted content.

Best for: high-privacy users, journalists, anyone for whom server-side decryption is unacceptable.

#5 — Best minimal pick
Photoview

A small, fast photo browser over a folder structure on disk. No mobile auto-upload, no AI features — just a polished gallery. Useful if you're already syncing photos via Syncthing or rsync and just want a nice browse UI.

Best for: users who manage photos with files-on-disk discipline and just want a viewer.

What actually matters

  • Mobile auto-upload reliability: if it stops working when you swap phones or change Wi-Fi networks, you'll lose photos. Immich's mobile apps are the most battle-tested.
  • Backup discipline: a self-hosted photo app is a backup only if the server itself is backed up. 3-2-1 rule: three copies, two media, one off-site.
  • Disk space planning: phone cameras produce 3-5MB per photo and 100-500MB per minute of 4K video. A modest library is 100-500GB; a serious one is multi-terabyte. Plan storage accordingly — see RAID for homelabs.
  • Machine learning: face recognition and semantic search need a few-GB CLIP model and either a GPU or a patient CPU. Immich's ML runs as a separate container you can put on the most powerful node.
  • Sharing model: if you share with non-tech-savvy family, public link sharing matters. Immich and PhotoPrism both support it; Ente E2EE makes it more complex.

Migration from Google Photos

Google Takeout produces a folder structure with JSON sidecar files containing original timestamps. Both Immich and PhotoPrism have well-documented Takeout import workflows. Plan for it to take days — Takeout is slow and your initial import will be I/O- and ML-heavy.

Cross-link with file storage

Some users split storage from the photo app: photos live on a NAS, Immich reads them. This is fine but complicates auto-upload (Immich wants to manage its own write path for new uploads). The simpler pattern: let Immich manage its data directory, sync that directory to the NAS via Syncthing or scheduled rsync.

Frequently Asked Questions

Is Immich production-ready?

Project maintainers say "not yet stable" — they recommend keeping original copies until you've validated your setup. In practice, many users run it as a primary photo app with disciplined backups. Treat it as a "second copy that's the daily-driver UI" until you trust it fully.

Can I use Immich and PhotoPrism on the same library?

Technically you can point both at the same folder in read-only mode. In practice it's messy — they each manage thumbnails, search indices, and metadata differently. Pick one as primary.

What hardware do I need?

A modern mini PC handles a few thousand photos easily. ML features are the expensive part — face recognition and CLIP embedding on a large library can take hours. A discrete or integrated GPU helps a lot here.

Does Immich support iCloud?

Not directly. iCloud sync is closed. You can periodically export from iCloud (manual or icloudpd) and import into Immich. The native iOS app handles new photos going forward.

What about HEIC and RAW?

Immich and PhotoPrism both handle HEIC (iPhone format) and common RAW formats. PhotoPrism's RAW handling is more thorough; Immich's is improving.

Related Guides