~/jackwent.co.uk
jack@jackwent:~$ cat immich-compose.yml

Moving Our Family Photos from iCloud to Immich

by published 31 October 20263 min read

Our family photos used to live in iCloud. It worked, but I wanted two things it couldn’t give me: control over our own data, and an easy way to back up everyone’s phones and the reassurance that we won’t lose the photos that matter to us.

So I moved us to Immich, a self hosted photo and video library that runs on my own server at home. This post covers why, what it’s like day to day, and what to think about if you’re tempted to do the same.

Why Immich

There are a few self hosted photo apps around, but Immich is the one that feels like a replacement for iCloud or Google Photos rather than a file browser. The features that matter most to us:

  • Automatic backup from the phones. The Immich app on each phone uploads new photos and videos in the background. Nobody in the family has to remember to do anything.
  • Face recognition and search. Immich groups faces and lets you search for things like “beach” or “dog” without anyone tagging a single photo. The machine learning runs on my own server, not in someone else’s cloud.
  • Shared albums. We can share an album with family for a holiday or a birthday.
  • Memories. “On this day” style memories bring old photos back to the surface, just like iCloud did.

How it’s set up

Immich runs in Docker on its own Ubuntu server. The standard Docker Compose setup brings up four containers:

  • immich-server, the app and web interface
  • immich-machine-learning, for faces and smart search
  • PostgreSQL, with a vector extension for search
  • Redis

The photos themselves live in a library folder on the server’s disk, as normal files in a sensible folder structure. That’s an important part of the appeal for me: if Immich disappeared tomorrow, the originals are still just files I can copy anywhere.

The server keeps itself up to date. The operating system patches automatically, and a small script pulls updated container images each morning, so Immich stays on the current release without me thinking about it.

Moving off iCloud

The move itself is mostly patience. The Immich phone app can back up everything already in the phone’s photo library, and once each phone has done its first full upload, new photos follow on their own. The first run takes a while, especially with years of videos, so it’s best left on Wi-Fi and charging overnight.

Two things worth checking before you turn anything off on the iCloud side:

  • Make sure the phones have the originals. If “Optimise iPhone Storage” is on, the phone only holds small copies and the full size originals stay in iCloud, so Immich would back up the small ones. Download the originals first.
  • Spot check the library in Immich. Pick a few old photos and videos and check they’re there in full quality before you trust it.

The bit people forget: backups

Moving photos home means you’re now responsible for them. Immich is a great home for our photos, but it isn’t a backup on its own: if the server’s disk failed, the library on it would go with it. Whatever you run Immich on, plan a proper backup of the library folder and the database to somewhere else, ideally including a copy away from the house.

Was it worth it?

Yes. The phones back up without anyone thinking about it, the photos are ours, and the features we actually used in iCloud are all there. It’s one more service to look after, and the backup point above is a real responsibility, but that’s the trade off for having control of our own data.

If you already run a home server or a homelab, Immich is one of the most useful things you can host. If you don’t, it’s a good reason to start.

Was this helpful?

[jackwent]