Photo storage is the subscription that never goes down. A few hundred gigabytes of holidays and screenshots quietly becomes a permanent monthly line item, and the exit is worse than the price — a decade of memories held in a service you can’t easily leave.

Immich is the same product, self-hosted: automatic phone backup, albums, sharing, a map, memories, facial recognition, and search that understands the contents of a photo, not just its filename. AGPL-3.0, and it does not feel like a compromise.

Install

  mkdir immich && cd immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
# edit .env: UPLOAD_LOCATION and DB_DATA_LOCATION
docker compose up -d
  

Then the web UI on port 2283, and the mobile app (iOS and Android) pointed at your server’s address. There’s a live demo if you’d rather look before installing.

What it does

MobileWeb
Background and automatic backupYes—
Albums, shared albums, partner sharingYesYes
Search by metadata, objects, faces, and CLIPYesYes
Facial recognition and clusteringYesYes
RAW formats, Live/Motion Photos, 360°YesMostly
EXIF and map view, global mapYesYes
Multi-user, OAuth, API keysPartlyYes
Memories — “x years ago”YesYes

The CLIP search is the feature that wins people over: type “red umbrella on a beach” and it finds the photo, with the model running on your own machine rather than someone’s cloud. Face clustering works the same way, locally.

Read this before you trust it with anything

  • The project’s own warning comes first for a reason: follow a 3-2-1 backup plan. Three copies, two kinds of media, one off-site. Immich running on one drive is a photo library, not a backup — and “the container is up” is not the same as “the data is safe.” Back up the upload directory and the Postgres database; restoring one without the other gets you files with no albums or faces.
  • Machine learning wants memory. The search and face models run on your server. A small NAS or a Raspberry Pi will do it, slowly; expect the first full library scan to take a long time. The ML container can be pointed at a stronger machine.
  • Don’t put it on the open internet casually. Reach it over Tailscale or a reverse proxy with real authentication.
  • Keep an eye on release notes when updating. Immich moves fast and occasionally requires a migration step; read before you docker compose pull.

Next

A whole computing environment in a browser tab → Puter

Last updated 07 Sep 2026, 00:00 UTC. history