Script

Immich vs PhotoPrism vs LibrePhotos: Which Self-Hosted Photo Manager Should You Use in 2026?

21 min read

Immich, PhotoPrism, and LibrePhotos look similar until you check how they store and ingest photos. Search and face recognition matter. Storage ownership, phone uploads, upgrades, backups, and a clean exit matter more.

Quick verdict: Choose Immich for automatic phone backup and a polished household setup. Choose PhotoPrism when an existing folder-based archive must remain the source of truth. Choose LibrePhotos for configurable machine learning if you’ll accept more upkeep. I’d run Immich for a family and PhotoPrism for a photographer’s master archive.

Overview

These applications make different assumptions about your photos. Immich expects the server to receive new media. PhotoPrism works well with an archive you already manage. LibrePhotos scans an existing collection, then adds face recognition, captions, and search.

What We’re Comparing

ProductOperating modelBest forMain trade-offSelf-hosted price
ImmichMobile-first uploads plus external-library supportAutomatic phone backup and household sharingFast development means upgrades need discipline$0
PhotoPrismIndex or import a filesystem-centered archiveLarge existing libraries, RAW files, maps, and curationMobile collection is less integrated$0 Community Edition
LibrePhotosScan an existing directory and enrich it with machine learningTechnical operators and ML experimentsMore setup, resource planning, and maintenance$0

The software costs nothing. The server doesn’t. Budget for a local SSD, bulk storage, an independent backup, and perhaps an accelerator. A low-power Intel CPU with integrated graphics often makes more sense than a large GPU sitting idle.

Feature Comparison

At a Glance

CapabilityImmichPhotoPrismLibrePhotos
Automatic phone backupExcellentLimited compared with Immich; usually relies on companion workflowsAvailable workflows are less polished
Existing archive indexingGood through external librariesExcellentGood
Face groupingExcellent and configurableStrong, with face maintenance toolsStrong but resource-intensive
Semantic or ML-assisted searchStrongStrong search and classificationStrong ML focus
RAW-oriented archive workCapableBest fitCapable, but test your formats
Video workflowStrongestSupported, but less mobile-centricLess complete than Immich
Maps and metadata browsingStrongStrongest curation focusAvailable
Filesystem-independent albumsYesYesYes
Read-only source librarySupported for external librariesNatural deployment patternNatural scan pattern
Hardware accelerationBroad documented optionsUseful for ML and media processingML benefits from capable CPU/GPU resources
Deployment complexityModerateLow to moderateModerate to high
Upgrade caution requiredHighModerateHigh
Best application-independent exit pathGood with external libraries or exported uploadsExcellent with filesystem-centered originalsGood with a clean scan directory

Release files and available functions change. Download Compose files for the exact release you plan to install. A file from a development branch can turn a 20-minute deployment into an evening spent reading container logs.

Architecture and Deployment Model

Container count tells you little about complexity. State ownership tells you more. Before installation, identify the database, original-media paths, managed uploads, configuration, and generated data you can replace.

Immich

A normal Immich deployment uses several services. Its release-specific Compose file usually includes the server, a machine-learning service, PostgreSQL, and Redis or a similar support service. Service names can change, so inspect the release file before scripting backups.

Its important state usually includes:

  • UPLOAD_LOCATION, which contains managed photos, videos, thumbnails, profile images, and encoded media under Immich’s storage layout
  • PostgreSQL data
  • The Compose file and .env
  • External-library folders, if configured
  • Machine-learning cache, which is useful but usually reproducible

The split design gives you control over scaling and accelerator access. It also creates more ways to be partly healthy. A green web container only proves that one container is green. It doesn’t prove uploads, search, PostgreSQL, or machine learning work.

PhotoPrism

PhotoPrism usually has a simpler layout: one PhotoPrism service, a supported SQL database, and persistent mounts. Those mounts hold originals, imports, and internal storage. Start with the official quick-start files.

The important paths are:

  • Originals: source photos and videos
  • Import: a staging directory, which must not be nested inside originals
  • Storage: thumbnails, sidecars, cache, backups, and other application data
  • Database volume: people, albums, labels, indexing state, accounts, and relationships
  • Compose configuration and environment settings

This layout suits an archive where the filesystem remains authoritative. Mounting originals read-only blocks application-side changes. It also blocks any function that needs to write there. That trade is usually worthwhile for a carefully managed master library.

LibrePhotos

LibrePhotos has standard and unified deployment options. The standard setup separates the UI, backend, database, proxy, and support services. The current Compose file defines the exact split. The unified route hides some container detail, but you must still back up its persistent state.

Plan for:

  • The scan directory containing originals
  • LibrePhotos application data
  • PostgreSQL data
  • Configuration in .env
  • Generated previews, indexes, and downloaded ML assets
  • The current monorepo path where required by the standard deployment

LibrePhotos gives you more controls for face recognition and image captions. That’s useful when you want to tune the ML workload. It also leaves more configuration to inspect when a scan stalls at 02:00.

Section winner: PhotoPrism. Its source, import, storage, and database boundaries suit a filesystem-centered archive. Immich is easier for household users once running, but its backend needs more attention.

Docker Desktop Containers view showing a healthy Immich, PhotoPrism, or LibrePhotos Compose stack, published ports, container status, and the control used to open logs
Docker Desktop Containers view on macOS showing the application stack, running services, health state, and published web port

Library Import and Storage Behavior

This is the main decision. If you get storage behavior wrong, a nice search interface won’t make the restore pleasant.

Does Each Application Copy, Move, or Index Originals?

Product and workflowWhat happens to originals?Can the folder make sense without the app?
Immich mobile uploadFiles enter Immich-managed upload storageFiles remain files, but don’t assume the managed layout matches your preferred archive structure
Immich external libraryImmich indexes media at an existing pathYes, especially when mounted read-only and organized independently
PhotoPrism indexExisting originals remain in place and are indexedYes
PhotoPrism importFiles move from an import area into originals according to the configured behaviorUsually, but verify naming and organization with a test batch
LibrePhotos scanExisting media is scanned from the configured directoryYes, if that directory already has a clear layout
LibrePhotos uploadBehavior depends on the current deployment and upload workflowTest before using it as the archive’s only ingest path

Don’t aim an importer at the full family archive on day one. Test 50-100 representative files first. Include JPEG, HEIC, RAW, Live Photo pairs, edited images, videos, panoramas, and sidecar metadata. That sample catches more trouble than ten synthetic images.

Use Four Storage Boundaries

A maintainable deployment separates four kinds of data:

Data classExampleBackup priorityRecommended location
Originals or managed uploadsJPEG, HEIC, RAW, MOV, MP4CriticalRedundant bulk storage plus independent backup
Database stateAccounts, albums, face assignments, sharing recordsCriticalLocal SSD with database-aware backups
ConfigurationCompose YAML, .env, proxy settings, version pinsCriticalEncrypted configuration backup
Generated dataThumbnails, previews, ML cache, transcoded mediaMediumLocal SSD or fast bulk storage
Editorial storage-boundary diagram separating irreplaceable originals and managed uploads, local database state, configuration, generated thumbnails and ML cache, with an independent backup target outside the photo server

Generated thumbnails aren’t originals. You can rebuild most of them, though a large collection may take several days. Database state needs more care. Losing it can remove albums, named people, shares, and accounts while every JPEG remains intact.

Why the Live Database Should Stay Local

Keep PostgreSQL and other live databases off ordinary SMB and NFS shares. Network delays, dropped connections, locking, and filesystem rules can hurt speed or corrupt data. Photos tolerate a slow mount better than a busy database.

A better arrangement is:

  • Local SSD or Docker-managed local volume for the live database
  • NAS or local hard disks for originals
  • Scheduled database dumps or supported backups copied to independent storage
  • A second backup target that the photo server can’t mount read-write

Section winner: PhotoPrism. It indexes an existing archive without becoming the only practical way to understand it. Immich offers similar safety with independent, read-only external libraries.

Search, Face Recognition, and Metadata

All three products turn file metadata and generated analysis into database records. That makes searches quick. Copying the original files alone won’t preserve all your work.

Immich

Immich has polished search, face grouping, people management, maps, metadata browsing, and ML-assisted discovery. Facial-recognition controls are under Administration > Settings > Machine Learning Settings > Facial Recognition.

Face detection creates model output and database links. Back up PostgreSQL if named people, merged faces, albums, and manual fixes matter. A fresh scan can detect faces again. It won’t reliably reproduce your later decisions.

Immich Administration settings with Machine Learning Settings and the reusable Facial Recognition controls visible, without assuming any control is enabled or disabled

PhotoPrism

PhotoPrism is good at exploring a mature collection. Its filters, maps, labels, RAW handling, stacking, face tools, and metadata views suit an archive built over years.

Stacking can group related files, but a wrong primary image can make face results look broken. Check Settings > Content when grouping looks odd. PhotoPrism also has maintenance commands for checking face data. You’ll appreciate those once manual review becomes impractical.

PhotoPrism signed-in search or people interface showing search controls, library navigation, and curation tools
PhotoPrism Settings Content section showing stacking-related controls without implying a selected state

LibrePhotos

LibrePhotos puts face recognition, scene classification, and image captions near the center of its design. Settings such as ENABLE_FACE_RECOGNITION and ENABLE_IMAGE_CAPTIONING control costly functions. Check the current release documentation before setting them.

Those controls help on a shared server where CPU time and RAM aren’t free. Results also depend on enabled functions, downloaded models, and a completed scan. Check those three before blaming search quality.

LibrePhotos stable signed-in library interface showing primary navigation, search, and people or face navigation where available

Section winner: PhotoPrism for archive curation; Immich for daily search. PhotoPrism exposes more archive controls. Immich keeps search and people browsing simpler for household users.

Mobile Backup and Sharing

Immich

Immich is the clear choice for automatic phone backup. Its mobile clients watch selected device albums and send new media to the server. Users get a familiar timeline, albums, browser access, and partner-style sharing.

If the server goes offline, pending photos stay on the phone. Uploads resume when the connection returns. Available phone storage sets the actual limit. A seven-day outage is uneventful with 40 GB free and painful with 400 MB free.

An upload confirmation isn’t a complete backup. A phone and server in the same building can disappear together. Copy originals and database backups to another system or location.

Immich repeatable signed-in library interface with timeline navigation, search, people destination, and sharing navigation visible

PhotoPrism

PhotoPrism’s web interface works well on a phone, but background collection isn’t its main strength. Many operators use a separate sync or WebDAV-capable process. The collector puts phone media into a stable archive, then PhotoPrism indexes it.

That split gives you a clean archive boundary. It also creates two systems to watch. A successful transfer with a failed index differs from a failed transfer. Both look like “my photo is missing” to the person holding the phone.

PhotoPrism main library interface showing its search-first and curation-oriented navigation

LibrePhotos

LibrePhotos can receive and scan new media, but its phone workflow has more rough edges than Immich’s. It fits better when Syncthing, Nextcloud, or another process already fills the scan directory.

Section winner: Immich. It has the only clearly mobile-first workflow of the three.

Hardware and Accelerator Requirements

Initial indexing creates a burst workload. Daily browsing is much lighter. Size the host for the first scan. You can also process a large archive in batches to leave memory for other services.

ResourceImmichPhotoPrismLibrePhotos
Practical minimum RAM4 GB for a small deployment; more for concurrent ML and video workOfficial guidance starts at 3 GB physical memory8 GB is the safer target for enabled ML features
Comfortable RAM8-16 GB8 GB8-16 GB
SwapHelpful on constrained hosts4 GB recommended, especially for indexingHelpful, but not a substitute for RAM
Fast local SSDDatabase, cache, ML data, thumbnailsDatabase and storage cacheDatabase, application data, and ML assets
GPU or iGPUMaterially helps transcoding and ML inferenceUseful for supported acceleration paths and heavy indexingUseful where supported, but deployment support needs verification
CPU-only operationSupported; slower for large video/ML jobsSupportedSupported, but initial ML processing can be slow

These are planning figures, not fixed limits. A library of 25,000 JPEGs asks much less from the host than 25,000 RAW files, 4K videos, and panoramas.

When Acceleration Matters

Hardware acceleration earns its power budget when you:

  • Transcode many HEVC or high-resolution videos
  • Generate previews for a large video archive
  • Run face detection or semantic models across tens of thousands of files
  • Have several users viewing media at once
  • Rebuild generated data after a failure

It matters less after indexing when one person mainly views JPEG thumbnails.

Immich documents acceleration for NVIDIA, Intel, AMD, OpenVINO, ArmNN, and other supported setups. The host driver and container device access must work first. An application setting can’t expose hardware that the container can’t see.

Immich reusable Transcoding settings page showing hardware-decoding controls and a note that host drivers and container device access are also required

Can the GPU Be Shared?

Yes, in many homelab setups. Shared hardware still has limited memory and processing time. Intel integrated graphics can handle transcoding for several containers through /dev/dri. NVIDIA’s container runtime can expose one GPU to several services.

Watch memory pressure, active jobs, temperature, and scheduling. Two containers may work alone but fail when both start large ML jobs. Intel Quick Sync usually gives the best value for a mixed photo and media server. A discrete NVIDIA GPU makes sense when inference runs often or the host already handles CUDA work.

Section winner: Immich. It has the broadest documented acceleration support. PhotoPrism is easier to justify if you prefer a capable CPU and fewer device-specific container changes.

Windows Setup Through Docker Desktop

These are browser-based server applications. Docker Desktop runs their Linux containers. You won’t get native Windows photo applications.

Prerequisites

Use a current Docker Desktop release with Docker Compose v2 on 64-bit Windows. Give Docker at least 8 GB RAM for the first test. Keep the live database in Docker’s local Linux storage or on a suitable local disk. Avoid mapped network drives.

Confirm Compose from PowerShell:

docker compose version

Expected output resembles:

Docker Compose version v2.x.x

Deployment Workflow

  • Download the supported release files:
    • Immich: docker-compose.yml and example.env from the current release
    • PhotoPrism: the Windows Compose file linked by its official quick start
    • LibrePhotos: the documented standard or unified deployment
  • Create separate Windows folders for originals, generated application data, and backups.
  • Edit strong passwords and absolute volume paths.
  • Open PowerShell in the deployment directory.
  • Start the selected stack:
docker compose up -d

Expected output should show services being created and started:

Container application-db Started
Container application-server Started

Check status:

docker compose ps

Open the default local address:

ApplicationDefault address
Immichhttp://localhost:2283
PhotoPrismhttp://localhost:2342
LibrePhotoshttp://localhost:3000

Docker Desktop needs permission to access every mounted host folder. Windows permissions and WSL-backed storage don’t always act like native Linux mounts. Restart the stack once and check every mount before importing the full archive.

macOS Setup Through Docker Desktop

Docker Desktop for macOS also runs these applications as Linux containers. Grant Docker access to photo folders and external drives before starting an index.

Prerequisites

Use a supported 64-bit Intel or Apple Silicon Mac with current Docker Desktop and Compose v2. Allocate 8 GB or more to Docker when ML functions will process a large collection.

Verify Compose in Terminal:

docker compose version

Expected output resembles:

Docker Compose version v2.x.x

Deployment Workflow

Download release-specific files from the official project documentation. Set absolute paths under locations Docker Desktop can share. Then start the stack from its deployment directory:

docker compose up -d

Verify it:

docker compose ps

Expected output should list services with Up or running states. Health checks may need several minutes during the first model download or database setup. Give them time, but keep the logs open.

External drives add another failure mode. A disconnected drive or changed mount path can appear as an empty directory. Stop the stack before disconnecting archive storage. Confirm the mount path before starting it again.

Web Interface and Remote Access

All three products use a browser for their main desktop interface. Immich defaults to port 2283, PhotoPrism to 2342, and LibrePhotos to 3000. Your Compose mapping can change those ports.

For remote access, use a reverse proxy with HTTPS and strong authentication. Don’t publish the raw application port to the internet. A private VPN exposes less when only trusted devices need access.

After signing in, use stable settings pages instead of one-time setup screens:

  • Immich: Administration > Settings
  • PhotoPrism: Settings > Content and related library settings
  • LibrePhotos: its reusable site or account settings page
LibrePhotos reusable settings interface after installation, with settings navigation and available upload or registration controls visible without assuming toggle states

Backup, Restore, Upgrades, and Rollback

A complete backup has several parts that must match. Copying the photo directory protects the photos. It leaves accounts, albums, people, and sharing records behind.

What Must Be Backed Up?

DataWhy it mattersRestore priority
Original photos and videosIrreplaceable mediaFirst
Managed upload storageMay contain new media not present elsewhereFirst
DatabaseAccounts, albums, people, metadata relationships, sharingFirst
Compose file and .envRecreates paths, credentials, ports, and versionsFirst
Sidecars and application metadataMay preserve edits, labels, or metadataHigh
Thumbnails and previewsSaves rebuilding timeOptional to high
ML cache and modelsSaves downloads or computationUsually optional

Stage an Upgrade Safely

Use this sequence for all three products:

  • Read the release notes and migration warnings.
  • Record the current image tags and Compose file.
  • Pause mobile uploads or notify users about the maintenance window.
  • Create a database-consistent backup.
  • Back up configuration and any new managed uploads.
  • Test restoration or clone the stack to a staging host when the collection matters.
  • Pull only the intended release.
  • Start the stack and watch database migration logs.
  • Verify sign-in, search, uploads, people, albums, video playback, and indexing.
  • Keep the previous images, configuration, and matching database backup until verification finishes.

Useful read-only checks include:

docker compose config
docker compose ps
docker compose logs --tail=100

Expected healthy status resembles:

NAME STATUS
application-server Up
application-db Up (healthy)

The first command catches malformed Compose changes before they reach a running service. It’s a cheap check. Run it.

Rollback Rules

Don’t run an older image against a database migrated by a newer release unless the project supports it. A proper rollback restores three matching pieces:

  • The previous application image versions
  • The previous Compose and environment configuration
  • The database backup taken before migration

Restore generated thumbnails only when rebuilding would take too long. Handle originals with care, and don’t overwrite mobile uploads created after the backup. Database rollback is stressful enough without deleting Tuesday’s photos.

Section winner: PhotoPrism. Its slower-moving, archive-first role suits conservative operators. Immich can be maintained safely, but its update pace requires closer release-note checks and regular restore tests.

Pricing Comparison

Cost areaImmichPhotoPrismLibrePhotos
Self-hosted entry price$0$0 Community Edition$0
Optional paid offeringCheck current official project optionsPlus/Pro offerings exist; verify current portal pricingNo price assumed here
Required serverYesYesYes
Independent backupStrongly recommendedStrongly recommendedStrongly recommended
Likely hardware spendStorage; optional iGPU/GPUStorage, RAM, and swap; optional accelerationMore RAM and potentially faster ML hardware
Operator timeModerate, especially around upgradesLow to moderateHighest

PhotoPrism has separate commercial options. Pricing and rights can change, so check its official customer portal before buying. A fixed price in a comparison ages badly.

The cheapest deployment usually matches your ingest model. Making PhotoPrism act like a mobile-first platform adds sync tools. Using Immich only for archive curation adds services you may never need. LibrePhotos costs $0 to download, but someone still pays for the maintenance time.

Troubleshooting

The Web Interface Does Not Open

Check service state and recent logs:

docker compose ps
docker compose logs --tail=100

Confirm free disk space, RAM, folder permissions, and the published port. First startup can take several minutes while databases start or ML assets download. A container that keeps restarting needs logs, not another browser refresh.

PhotoPrism Stops During Indexing

TensorFlow processing, RAW conversion, or large panoramas can exhaust memory. Provide at least 3 GB of physical memory and 4 GB of swap as documented. In practice, 8 GB RAM gives indexing more room. Resume with a small batch before scanning everything.

PhotoPrism Repeatedly Imports Files

Check whether the import directory sits inside the originals directory. Keep those mounts separate, verify permissions, and confirm the import path is writable. Run a disposable test batch before processing irreplaceable media.

Immich Does Not Use the GPU

An application setting can’t fix missing host access. Verify the host driver first. Then expose the supported device or NVIDIA runtime to the correct container with the current acceleration Compose file. Recreate the stack and inspect the logs.

LibrePhotos Cannot Find Its Configuration

Use Docker Compose v2 and confirm you copied the documented environment template to .env. Check scanDirectory, data, and any required absolute codedir path against the current monorepo deployment.

LibrePhotos may need 10-20 minutes for its first build, model download, and setup. Watch the logs before calling it failed. If the same error repeats for 20 minutes, patience has completed its part of the diagnosis.

Albums or People Disappear After an Upgrade

The original files survived, but the database state didn’t. Preserve the current volumes and stop further writes. Restore the matching database backup with the application version and configuration that created it.

Which Should You Choose?

Choose Immich if:

  • Automatic iPhone or Android photo backup is the primary requirement.
  • Household members need a familiar timeline and sharing experience.
  • Video transcoding and mobile playback matter.
  • You have a disciplined database and upload-storage backup process.
  • You are comfortable reading release notes before upgrades.
  • You want the best overall self-hosted Google Photos replacement.

Choose PhotoPrism if:

  • You already have a large, organized photo archive.
  • Folder structure and application-independent access matter.
  • You work with RAW files, maps, metadata, and curation tools.
  • You want the lowest operational burden for a conservative archive server.
  • Phone uploads can arrive through a separate sync workflow.
  • You prefer indexing originals without making the application their sole owner.

Choose LibrePhotos if:

  • You want open, configurable face recognition and image captions.
  • You are comfortable fixing Compose, environment-file, and ML service problems.
  • You have at least 8 GB RAM for a practical ML-enabled deployment.
  • Another process already puts photos into a scan directory.
  • You want to experiment and contribute rather than reduce maintenance.

Best Fit by Operator Profile

Operator profileRecommendationWhy
Family replacing Google PhotosImmichBest mobile backup and daily user experience
Photographer with a structured NAS archivePhotoPrismStrong indexing, RAW handling, maps, and filesystem independence
Conservative home-server operatorPhotoPrismClear storage boundaries and a less mobile-dependent workflow
Developer exploring photo MLLibrePhotosConfigurable recognition and captioning stack
Mixed archive plus new phone uploadsImmich, with an external-library designStrong ingest plus access to existing media
Low-memory serverPhotoPrism, with swap and conservative indexingClear minimum guidance; disable or limit heavy functions
Non-technical household with a technical administratorImmichAdmin work stays behind a simple user experience

Immich

Pros
  • Best automatic phone backup
  • Polished timeline, search, maps, people, albums, and sharing
  • Strong video handling
  • Broad hardware-acceleration options
  • External libraries provide an archive-friendly path
Cons
  • Fast development increases upgrade risk
  • Multi-service architecture has more state to monitor
  • Managed storage may not match a human-designed archive
  • Complete recovery requires uploads, database, and configuration
  • Initial ML and video processing can be demanding

PhotoPrism

Pros
  • Excellent for indexing an existing archive
  • Strong search, maps, RAW support, stacking, and curation
  • Clear separation among originals, import, storage, and database
  • Works well with read-only originals
  • Good application-independent exit path
Cons
  • Automatic phone backup is less integrated than Immich
  • Initial indexing can exhaust memory without swap
  • Stacking and face records sometimes need maintenance
  • A separate ingest tool may be needed
  • Some offerings and functions require checking current edition details

LibrePhotos

Pros
  • Configurable face recognition and image captions
  • Good fit for scanning an existing directory
  • Open, developer-friendly project
  • Machine-learning functions can be adjusted to available resources
  • Standard and unified deployment choices
Cons
  • Highest operational burden of the three
  • Eight gigabytes or more of RAM is a sensible target
  • Deployment guidance can change with monorepo structure
  • Mobile backup is less cohesive than Immich
  • Initial builds, models, and scans can take substantial time

Frequently Asked Questions

Which Platform Is Best for Automatic Phone-Photo Backup?

Immich. Its mobile applications and server workflow focus on automatic camera-roll collection. Pending uploads resume after an outage if the phone keeps the files and has enough free storage.

Which Is Best for Indexing an Existing Photo Archive?

PhotoPrism. It treats an existing originals directory as a primary workflow. It also has strong search, maps, RAW support, stacking, and metadata tools. Immich external libraries come close when you also need mobile backup.

Which Requires the Least Operational Work?

PhotoPrism usually needs the least work for a stable, filesystem-centered archive. Immich asks more from the administrator during upgrades but less from household users each day. LibrePhotos needs the most hands-on attention.

Can the Original Library Be Understood Without the Application?

Yes, if you start with a clear folder structure. Use PhotoPrism indexing, LibrePhotos scanning, or an Immich external library. Managed uploads remain ordinary files, though their layout may differ from the archive tree you’d design.

How Difficult Is Migration?

Migration is easiest when originals stay in a documented, application-independent folder tree. Another manager can scan those files. Albums, face names, shares, stacks, and edits may not transfer. Export metadata and sidecars where supported, then test the destination with a copy.

Is Copying the Photo Directory a Complete Backup?

No. Back up the database, configuration, and every managed upload path too. Without the database, the media survives while albums, people, users, and sharing records disappear.

Should Generated Thumbnails Be Backed Up?

They’re usually reproducible, so originals and database state come first. Back up thumbnails if rebuilding them would take several days or put too much load on the server.

Can Originals Live on a NAS?

Yes, if the application supports the mount and the network link is reliable. Read-only access works well for an established archive. Keep the live database on local persistent storage, and maintain an independent NAS backup.

Final Verdict

Immich wins for most households because phone backup is hard to replace cleanly. That choice requires PostgreSQL and upload backups, pinned releases, and planned upgrades.

PhotoPrism remains my choice for an established master archive. LibrePhotos suits operators who want configurable ML and accept more upkeep. Choose based on the job: collecting new photos, curating old ones, or testing image analysis.

Score Summary

CategoryImmichPhotoPrismLibrePhotos
Mobile workflow9.5/106.0/105.5/10
Existing archive handling8.0/109.5/108.0/10
Search and organization9.0/109.0/108.0/10
Hardware flexibility9.0/107.5/107.0/10
Maintenance burden7.0/108.5/106.0/10
Recovery and exit path8.0/109.0/107.5/10
Overall8.7/108.5/107.0/10

Wrapping Up

Use Immich for a phone-first household, PhotoPrism for a maintained archive, and LibrePhotos for a hands-on ML lab. Separate originals, database state, generated files, and configuration. Prove the restore works before trusting any of them with 15 years of photos.

StepActionApplies to
1Pick the ingest model: mobile upload or archive indexingAll
2Separate originals, database, configuration, and generated dataAll
3Keep the live database on local storageAll
4Test 50-100 representative filesAll
5Back up and restore before the full importAll
6Pin releases and stage upgradesAll

This comparison reflects project documentation and deployment guidance reviewed on August 20, 2026. Features, editions, deployment files, and pricing may change.