Download

Choosing a photo library

Self-hosted photos without a server.

There are three ways to get out of Google Photos, and they are usually presented as if they were one choice. They are not, and picking the wrong one is why so many people abandon the project halfway through.

Cloud — Google Photos, iCloud, Dropbox. Someone else's computer, someone else's rules, and a bill that grows with your library.

Self-hosted — Immich, PhotoPrism, LibrePhotos and friends. Your computer, your rules, and a server you now own and have to operate. The software is excellent. The operational work is real: Docker, an always-on machine, backups of the database as well as the photos, and an upgrade that occasionally goes sideways at 11pm.

Desktop — digiKam, PhotoStructure, Smriti. No server, no containers, no always-on machine. The library lives in a program on whichever computer you happen to be using, pointed at drives you already own.

Most "alternatives to Google Photos" articles cover the first two. This page is about the third, and about the question underneath it: do you actually want to run a server?

The honest question to ask yourself

You want the self-hosted option if:

You want the desktop option if:

Neither answer is better. A desktop application cannot back up your camera roll while you sleep, and a server cannot be carried to your parents' house in a backpack.

What the desktop option actually looks like

Take Smriti as the example, since it is the one this project maintains. It is a desktop application for Linux, Windows and macOS, free and Apache-2.0. It indexes photographs where they already are, extracts the EXIF metadata, generates thumbnails, and can recognise faces on-device. No account, no cloud, no server.

The design decision that separates it from the server-based projects is where the database goes. Smriti writes its catalog — paths, dates, albums, tags, face groupings, thumbnails — to a folder on the photo drive itself:

/media/you/MyPhotos/.photovault/photovault.db

Which means the library is not a service you keep running. It is a property of the disk. Unplug the drive and the library leaves with it. Plug it into another machine with Smriti installed, and the albums, faces and tags are all still there — no sync, no export, no re-index. Back up the photo folder and you have backed up your organising as well.

That is also the honest limitation: if you delete .photovault, you lose the catalog and have to re-index.

The comparison, in one table

CloudSelf-hosted serverDesktop (Smriti)
Where the library livesTheir serversYour serverYour drive, catalog included
SetupSign inDocker, storage, backupsInstall a package, pick a folder
Phone accessNativeNative or webNot supported
Offline useLimitedDepends on the networkComplete
Runs when your computer is offn/aYesNo
Ongoing maintenanceNoneRealNone
Multi-userYesYesOne machine at a time
CostSubscriptionHardware and electricityFree

If the "phone access" row is the one that matters to you, use Immich or Ente — genuinely, that is what they are for. If the "runs when your computer is off" row matters, the same answer. Smriti is not trying to win that comparison; it is trying to serve people whose photos are on drives, not on a phone.

What "catalog on the drive" buys you

Portability. Hand someone a drive and they have the entire organised library — not a folder of files. For family archives, that is the difference between a usable collection and a pile.

Backups that mean something. Copying the photo folder copies the albums, tags and face groupings along with the originals. There is no separate database backup to forget.

No sync conflicts. There is one copy of the library and it is on the disk. Nothing to reconcile.

A note on scale

Smriti is tested at 250,000 photographs per drive, and the 1.0 series documents that as the current limit. If your library is larger than that, a server-based project with a proper database server behind it is the more sensible choice — it is a real architectural limit, not a marketing one.

Download Smriti Read the manual

Apache-2.0 · Free · No account, no server