Immich

Self-hosted photo and video backup

Media & Streaming AGPL-3.0 intermediate ★ 115,372 stars

What is Immich?

Immich is a self-hosted backup solution for photos and videos from your phone. It offers automatic background upload, timeline browsing, albums, face and object search, and shared libraries. It is the most credible open-source replacement for Google Photos.

Best for

Anyone leaving Google Photos who wants their memories on their own disk

Why choose Immich

Immich is the most credible open-source answer to the question of what replaces Google Photos, and it is credible because it replicates the parts people actually use. Photos and videos upload automatically from a phone in the background, the timeline scrolls like a native app, albums and shared libraries work, and machine learning search runs on your own hardware so you can look for 'dog' or 'beach' or a face without anything being sent to a third party. It has native mobile apps rather than a mobile web page pretending to be one, which is the difference between a backup that happens and one you remember to run. For anyone whose photo library is currently a rented relationship with a cloud service, it makes the library yours while keeping the experience close to what you are used to.

Replaces

  • Google Photos
  • iCloud Photos
  • Amazon Photos

Key features

  • Mobile background backup
  • Face and object search
  • Timeline and albums
  • Multi-user with shared libraries

What to watch out for

It is under active development with a rapid release cadence, and the documentation explicitly warns that breaking changes occur — this is software you upgrade with attention rather than letting a container pull the latest tag and hope. Machine learning features consume real CPU or need a GPU to run at a reasonable speed, and the classification job on a large existing library takes a long time. Storage planning is the practical constraint: a photo library grows continuously and duplicating it for backup doubles the requirement. The mobile apps need careful configuration to upload only over Wi-Fi and to handle the large initial sync without draining a battery. Replacing Google Photos means owning the backups too, and a library with no backup is a library one disk failure from gone.

How to deploy

  • Docker Compose

Getting started

Plan the storage first — a dedicated volume large enough for the current library plus years of growth, with backups to somewhere else that you have actually restored from. Install a pinned version rather than the latest tag, and read the release notes before every upgrade, because breaking changes are documented rather than prevented. Let the initial phone sync run to completion before configuring machine learning, so the two workloads are not competing. Configure the mobile app to upload only over Wi-Fi and to keep a local copy until confirmed uploaded. Run the face and object classification jobs deliberately and expect them to take hours on a large library, then verify search actually returns results.

Typical setup

It runs on a machine with a dedicated storage volume large enough for the existing library plus years of growth, with backups to a separate location that have actually been restored from. A pinned version is used rather than the latest tag, and release notes are read before every upgrade because breaking changes are documented rather than prevented. The initial phone sync completes before machine learning is configured, so the two workloads are not competing. Mobile upload is set to Wi-Fi only with a local copy retained until upload is confirmed. Face and object classification run deliberately and search is verified to return real results before the old service is retired.

Who should look elsewhere

Do not choose it as a set-and-forget appliance, because the release cadence means occasional hands-on maintenance and you should expect to read upgrade notes. Avoid it on a small VPS with no GPU if you want fast search over a large library, since the machine learning jobs will either be slow or expensive. And do not migrate a decade of photos until you have a backup of the destination that you have tested — the migration is the moment when a mistake becomes permanent.

Project health

  • GitHub stars: 115,372
  • Last code push: 2026-10-01
  • Open issues: 686
  • Status: actively developed

Figures pulled from the GitHub API and refreshed periodically.

Immich as an alternative

More in Media & Streaming