Immich Photo Library

Self-hosted family photos, backed up off-site every night

November 2025, Active

Project Overview

Immich is where our family photos live now. It runs on my TrueNAS server and replaced iCloud Photos as our backup, and it gives us what Google Photos is good at, like face recognition and searching by description, on hardware I own.

Honestly, Immich is an insanely good app for being free, open source, and self-hosted.

There are no screenshots on this page on purpose. It's our family's photos.

The Library

Photos 30,680
Videos 2,021
Storage About 303 GiB

From Immich's server stats, October 2026.

Who Backs Up to It

Three devices back up to it through the Immich app: my iPhone, my wife's iPhone, and our daughter's iPad.

How It Runs

Immich runs as four Docker containers on the TrueNAS server:

  • Server: The web app, the mobile app's API, and the uploads
  • Machine Learning: Face recognition and search by description, run on our own server instead of someone else's cloud
  • Postgres: The database behind the library
  • Redis: The job queue for background work

The code is on GitHub.

Backups

  • Photo Library: Syncs to Backblaze B2 every night at 3:00 AM with the rest of the server's data
  • Database: Dumped nightly with the other Postgres databases
  • Left Out on Purpose: The live database folder stays out of the cloud sync, because a copy taken while Postgres is writing isn't a usable backup. The nightly dump is the backup
  • Checked: On July 31, 2026 I spot-checked B2 and found real HEIC and MOV files there, not just folder names

Immich's HEIC uploads were also the first sign of a bigger problem: the cloud sync failed whenever it read a file an app was still writing. Fixing that for every app, not just Immich, shaped the whole backup setup. That story is in Backups and Restores.

Related Projects