Will's avatar

⬅️ See more posts

From Google and Apple Photos to Photoprism

25 November 2022 (5 minute read)

🔮 This post is also available via Gemini.

technology selfhost

AI generated pixel art of apps on a phone homescreen.

A history of media storage solutions

Back in 2021 I blogged about how and why I wanted to switch from Google Photos as a storage solution (and source of truth) for my life’s photo and video library. The post compared several solutions, such as Piwigo, Mega, and Nextcloud.

In that time I’ve tried several further options, starting with pCloud (as described in that post), Nextcloud backed by S3, and plain-old Apple Photos.

The primary way by which I capture photos is through my phone’s camera, and my main issue with pCloud was the reliability of its mobile app photo auto-uploader. It would often get logged-out and miss several days or even weeks of sync, without any notification. After logging-in again, the app offered no way to catch-up specifically on the missed syncs, and so it would involve having to manually fill-in the gaps myself.

Nextcloud is an excellent option for self-hosting files, and I make strong use out of this myself. However, I found it a bit slow and clunky for managing images and videos. It would often grind slowly to the point of unresponsiveness whilst it performed background tasks - I imagine related to indexing or creating thumbnail previews of media content. Its image viewer also isn’t as useful as other systems.

I was sinking a lot of time into this, and so in the end I gave up and resorted to simply using Apple Photos - it’s easy, cost-effective, and naturally works well across all of my Apple devices.

Apple Photos

However, I couldn’t sit still, and I was constantly worried about the single point of failure in having everything stored in a single “basket”. What would happen if I lost access to my Apple account? How can I make sure things are backed-up? What if I chose to move away from the Apple ecosystem?

For a short while I made use of Backblaze’s Mac backup solution to try to backup my photo library on my Mac. However, despite having configured the Photos app on my Mac to download the full versions of everything in the library, the file size differences in the photo library file on my Mac vs. that reported by iCloud on the Mac (and the storage settings panes on my iPhone) just didn’t add up. I also recently had similar issues with the opaqueness of iCloud in a slightly different context.

Either way, I was worried I was missing something and that the backups would not be complete. Also, the solution depended on my Mac being awake and receiving the photo sync in order for its local library to be successfully backed-up with all of the recent changes.

Photoprism

More and more I’ve heard talk on the grapevine about alternative self-hostable options for photos and media. Some of these can reportedly perform super well, including the Google Photos-like Immich.

Photoprism is another option that had come up a few times, and I resonated well with its feature list. It supports face and object recognition, automatic categorisation, favourites, moments, albums, and much more. It also has a rich suite of settings and advanced import capabilities.

The disadvantage with self-hosting a service like this is the amount of storage required. Images and videos aren’t small files, particularly when taking into account the quality produced by modern smartphones. I alluded to this back in my blog post from last year, but since then my mindset has shifted much more to prioritising data sovereignty over ease of use and surrendering privacy.

I deployed Photoprism and documented my setup in this note. I’ve now been using it successfully for a few months and have really enjoyed it. My library backs-up nicely with Restic to Backblaze B2 and everything feels smooth and safe. The app is only available via my Tailscale network for extra security and the storage volume is encrypted.

A screenshot showing a folder in my Photoprism library

My library is over 200GB big, and so I needed a hefty volume attached to my VPS. I also wanted a machine powerful enough to process the images and videos, and to ensure things didn’t become too slow when scrolling through thousands of images. As such, deploying a service like this is certainly not the cheapest option, but it is one that works well for me.

For automatic photo sync from my iPhone I use the Photosync app. This has been reliable and I can certainly recommend it. I’ve not had a single upload failure during the months I’ve been using the app. My setup for this is also included in that same note.

Photosync also supports pCloud as a sync target, but having tried Photoprism I haven’t looked back - its experience is far superior.

A screenshot showing my Photoprism library’s “map” view

So far, this has been my most positive photo management experience, and I am really happy with the setup. To me, it is more fully-featured and much more performant than Google Photos. I saved the Photoprism PWA to my phone’s homescreen for quick access to my photos.

Here are a few of the other features I enjoy about Photoprism:

  • Speed: I find it super fast to use and navigate around. Images and videos load quickly. The webapp loads more quickly than the native Apple Photos app does.
  • Apple live photos are supported out-of-the-box and the UI for viewing these is better than in Apple Photos.
  • The libary review process is great for ensuring that only the photos I actually want to keep make it into my library. Photoprism is good at detecting the types of files that should be reviewed.
  • Photos marked as “favourites” on Apple Photos are automatically reflected into the Favourites album on Photoprism.

Having the images stored safely on a volume I have direct access to means I can pretty easily switch to a new self-hosted app if I wanted to without a tedious export from a commercial system. I don’t know if this is the end of the road (yet) for my photo management solution adventure, but it’s definitely in a good place for now!

✉️ You can reply to this post via email.

📲 Subscribe to updates

If you would like to read more posts like this, then you can subscribe via RSS.