Self-Hosting
Immich vs PhotoPrism vs Nextcloud: self-host photos
Immich vs PhotoPrism vs Nextcloud Memories in 2026: mobile auto-backup, AI/face search, GPU acceleration, RAW/video, backups, and which to self-host.
Problem summary
There's no single winner among the self-hosted Google Photos alternatives — they're built around different priorities. Immich is the phone-replacement: the best native mobile auto-backup (especially reliable iOS background upload), CLIP natural-language + OCR + face search, and the only one that GPU/iGPU-accelerates its core ML (Intel OpenVINO, NVIDIA CUDA, AMD ROCm, Rockchip NPUs) — at the cost of a heavier stack (Postgres + Redis + ML container, 6–8 GB RAM) and the occasional breaking release. PhotoPrism is the stable, format-broad library: CPU-only built-in AI that runs anywhere, the widest RAW/HEIC/JPEG-XL and Live/Motion-photo support, and the lowest fuss — but no first-class mobile backup and label-based (not semantic) search. Nextcloud + the Memories app is the right layer only if you already run Nextcloud: a clean photo UI over your existing files, with AI via the Recognize app (CPU-only, and officially maintenance-only — the biggest long-term risk). One rule applies to all three: a file copy is NOT a backup — you must dump the database too.
Name your top priority.
Check the immich Postgres volume is a local disk, not an NFS/SMB share
You know whether phone auto-backup, AI/semantic search, format breadth/stability, or reusing Nextcloud matters most.
Don't adopt this stack just for photos if you don't already run Nextcloud — Recognize is feature-frozen.
Layer path
Step-by-step runbook
Start here. Do each check in order, compare it to the expected result, and stop when the evidence explains the failure or the safe stop point applies.
Pin your constraints
Check: Write down your top priority, whether the phone is the source, RAM/GPU budget, formats, and stability tolerance.
Expected result: You have the inputs that decide the fit.
If not: Skipping this picks a tool weak on the axis you care about.
Map constraints to a primary app
Check: Phone backup / semantic search → Immich; stability / broad formats / CPU-only → PhotoPrism; already-Nextcloud → Memories.
Expected result: You have a primary candidate (a fit, not a ranking).
If not: If you have a spare iGPU/GPU for AI, that points to Immich.
Provision the stack correctly
Check: Immich: Postgres on local SSD + Redis + ML container, 6–8 GB RAM, enable the GPU backend. PhotoPrism: SQLite or MariaDB. Memories: install on existing Nextcloud + Recognize, matched versions.
Expected result: The app runs with its dependencies met.
If not: Don't put Immich's Postgres on a network share; don't mix incompatible Nextcloud/Memories/Recognize versions.
Import from Google Photos
Check: Immich: use immich-go against Takeout (preserves albums/metadata). PhotoPrism: drop extracted Takeout files in originals and index (reads JSON). Nextcloud: upload then index with Memories/Recognize.
Expected result: Your existing library is imported with metadata intact.
If not: immich-go is community-maintained and early — verify a sample album after import.
Set up and verify mobile backup
Check: Immich: configure per-album background backup in the app. PhotoPrism/Memories: configure the Nextcloud app or a sync tool.
Expected result: New phone photos land on the server automatically.
If not: On iOS, confirm Background App Refresh; see /self-hosting/immich-photos-not-backing-up if uploads stall.
Prove the backup with a restore drill
Check: Dump the database, back up the media, then restore both to a scratch instance and confirm the timeline rebuilds.
Expected result: You've proven a file-copy-plus-DB-dump restores correctly.
If not: If the timeline is empty on restore, you backed up files without the DB — fix the order.
Decision tree
If: Replacing Google Photos on the phone; reliable auto-backup is the point.
Then: Immich fits best.
Action: Run Immich (Postgres on local SSD, 6–8 GB RAM); set per-album background backup. If uploads stall, see /self-hosting/immich-photos-not-backing-up.
If: Want most stable, lowest-fuss library with the broadest RAW/format support; CPU-only is fine.
Then: PhotoPrism fits best.
Action: Run PhotoPrism (SQLite for small libraries, MariaDB at scale); index Google-Takeout files directly (it reads the JSON sidecars).
If: Already run Nextcloud and want photos over your existing files.
Then: Nextcloud + Memories fits best.
Action: Install Memories + Recognize, keeping all three (Nextcloud core/Memories/Recognize) version-compatible; use the Nextcloud app for auto-upload.
Safe stop: Don't adopt this stack just for photos if you don't already run Nextcloud — Recognize is feature-frozen.
If: Have an Intel iGPU / NVIDIA / Rockchip NPU you want to use for photo AI.
Then: Immich is the only one that benefits.
Action: Enable the matching ML backend (OpenVINO/CUDA/ROCm/RKNN); plan it with /nas/local-ai-on-nas-immich-frigate-ollama.
Evidence table
| Symptom | Evidence to collect | Likely layer | Next action |
|---|---|---|---|
| Choosing a self-hosted photo app. | Your top priority: backup vs search vs formats vs reuse-Nextcloud. | Core fit | Immich / PhotoPrism / Memories respectively. |
| Need reliable phone auto-backup. | Whether the tool has a first-class native backup app. | Mobile backup | Immich (native apps); others rely on third-party / Nextcloud app. |
| Want to use a GPU/iGPU for AI. | Presence of Intel iGPU / NVIDIA / Rockchip NPU. | ML acceleration | Immich (OpenVINO/CUDA/ROCm/RKNN); PhotoPrism/Recognize are CPU-only. |
| Restoring after a failure. | Whether you have a database dump, not just files. | Backup correctness | Dump Postgres/MariaDB/Nextcloud DB first, then media — or restore orphaned. |
Commands and settings paths
Confirm Postgres is on local SSD (Immich)
Check the immich Postgres volume is a local disk, not an NFS/SMB share
Where: On the Immich host / compose file.
Expected: The DB lives on a local (ideally SSD) filesystem.
Failure means: Immich's Postgres on a network share corrupts/underperforms — unsupported.
Safe next step: Move the DB volume to local storage before importing a large library.
Check available ML acceleration
ls /dev/dri (Intel iGPU) or nvidia-smi (NVIDIA); confirm the model line for Rockchip
Where: On the photo-app host.
Expected: A supported accelerator is present for Immich's OpenVINO/CUDA/RKNN backend.
Failure means: No accelerator means Immich ML runs on CPU (slower); PhotoPrism/Recognize are CPU-only regardless.
Safe next step: Pick the ML backend per /nas/local-ai-on-nas-immich-frigate-ollama, or accept CPU indexing.
Verify a database dump exists before trusting a backup
Immich: check UPLOAD_LOCATION/backups for daily dumps; PhotoPrism: `photoprism backup`; Nextcloud: DB dump + data dir
Where: On the server, before relying on the backup.
Expected: A recent DB dump exists alongside the media backup.
Failure means: Files without a matching DB dump restore as orphaned assets with an empty timeline.
Safe next step: Schedule DB dumps first; verify with a real restore (see /self-hosting/home-server-backup-restore-tested).
Check RAM headroom for the chosen app
free -h (and the container memory limit)
Where: On the host.
Expected: >=6–8 GB free for Immich with ML; ~3–4 GB is workable for PhotoPrism/Recognize.
Failure means: Immich ML on 4 GB must be disabled; over-tight limits cause OOM during indexing.
Safe next step: Right-size RAM, or disable ML / pick PhotoPrism on constrained boxes.
Hardware and platform boundary
Change only when
- Choose Immich when phone auto-backup and natural-language/face search are the point and you can give it 6–8 GB RAM (ideally a GPU/iGPU).
- Choose PhotoPrism when you want the most stable, format-broad library and CPU-only AI is fine.
- Choose Nextcloud + Memories only when you already run Nextcloud and want photos over your existing files.
Evidence that matters
- RAM headroom (6–8 GB for Immich ML; 3–4 GB for PhotoPrism/Recognize) and SSD for the database/thumbnails.
- A supported accelerator if you want fast AI (Intel iGPU/NVIDIA/Rockchip — Immich only).
- A database-dump backup plan and a tested restore.
Evidence that does not matter
- Coral/Hailo for photo AI — none of these use them (those are camera-NVR detectors).
- Chasing the 'most AI' — match the search model (semantic vs label) to how you actually search.
Avoid
- Treating a file copy as a backup — always dump the database too.
- Putting Immich's Postgres on a network share (unsupported, corrupts).
- Adopting the Nextcloud+Memories+Recognize stack just for photos when you don't already run Nextcloud (Recognize is feature-frozen).
- Upgrading Immich across a major (e.g. v3.0) without reading release notes and backing up first.
Related tool
Use the linked tool to turn this runbook into a guided check for your exact setup.
NAS setup plannerRelated problems
Last reviewed
2026-06-23 · Reviewed by HomeTechOps. Built from June-2026 research verified against first-party Immich docs/GitHub (v2.0 stable Oct 2025, v3.0 June 2026; OpenVINO/CUDA/ROCm/RKNN ML accel; Postgres-on-local-SSD; automatic DB dumps), PhotoPrism docs (CPU-only TensorFlow, broad RAW/HEIC/JPEG-XL, native Takeout JSON), and Nextcloud Memories/Recognize repos (Recognize CPU-only and maintenance-only). Framed as a use-case decision map across mobile-backup/AI-search/formats/stability/footprint, never a 'winner'; exact versions and RAW matrices flagged to re-verify before relying on them.
Sources/assumptions
- Facts verified 2026-06-23 against first-party Immich docs/GitHub (v2.0 stable Oct 2025, v3.0 June 2026), PhotoPrism docs (rolling calendar builds), and Nextcloud Memories/Recognize repos; version-specific behavior changes fast — re-verify exact versions before relying on them.
- Immich requires Postgres on local SSD (not a network share) and 6–8 GB RAM with ML enabled; PhotoPrism's built-in ML is CPU-only; Nextcloud Recognize is CPU-only and officially 'maintained with limited effort' (critical fixes only).
- This is a use-case decision map across mobile backup, AI search, format support, stability, and footprint — not a ranking; the right pick depends on your priority.
Source-backed checks
HomeTechOps turns official docs and conservative safety rules into a shorter runbook. These links are the source trail for the page direction.
Planning a purchase?
We keep a source-backed, price-free comparison so you can buy once and right. No star ratings, every spec cited.
Synology vs UGREEN vs DIY NAS in 2026 →