Photo Mirror Sync keeps your self-hosted Immich server identical to your iCloud Photos library: new photos are uploaded, edits replaced, favorites updated, deletions moved to Immich’s trash and iCloud albums mirrored as Immich albums.

Contact: [email protected] · Privacy policy

What you need

  • An iPhone with iOS 17 or later. Continuing a sync in the background after you leave the app needs iOS 26.
  • Your own Immich server, version 3.3 or later, reachable from your iPhone, and an Immich account on it.
  • Full access to your photo library (see below why limited access is not enough).

Getting started

  1. Enter your Immich server address (for example https://immich.example.com), your Immich email and password, and tap Sign In.
  2. Tap Allow Access and allow full access to your photos.
  3. Tap Run Dry Run. Dry run is on by default: it changes nothing and shows how many photos are new, the estimated upload size and how many are already on your Immich server.
  4. When the result looks right, turn off Dry run in Settings and tap Sync Now. To start small, set Upload limit per run to 25 or 100 photos first.

Mirror, not backup

iCloud Photos is the source of truth. Photo Mirror Sync uploads new photos and videos as unchanged originals (HEIC, ProRAW, video, Live Photos with their motion), replaces edited photos with the current version, keeps favorites in step and mirrors your regular iCloud albums, including those in folders.

Photos that are already in Immich byte for byte, for example from the official Immich app, are recognized by their checksum and linked instead of being uploaded twice.

Deletions and the Immich trash

A photo you delete in iCloud is moved to the Immich trash on the next sync. Photo Mirror Sync never deletes anything permanently and never empties the trash; Immich empties it after 30 days by default, and you can restore photos from it until then.

If more than 5 % of your library (at least 25 photos) would go to the trash in one run, the app stops and asks you to Review & Confirm…. Background syncs never confirm on their own. An empty library or limited photo access never deletes anything.

Photos uploaded in other ways

Only photos and albums Photo Mirror Sync uploaded or linked itself are ever changed. Photos uploaded with the official Immich app, the web interface or the CLI, external libraries, other users’ photos and albums you created in Immich yourself are left alone.

Background sync

On iOS 26, a sync you start in the app keeps running when you switch to another app, with its progress on the Lock Screen. You can also turn on a nightly sync that runs while your iPhone is charging; a notification tells you what changed. iOS decides when background work may run, so a nightly sync can be delayed or skipped.

Stopped, interrupted or killed? Every photo is recorded the moment it is on your Immich server, so the next run continues exactly where the last one stopped, without duplicates.

Troubleshooting

  • Sign-in fails: check that the server address opens the Immich web interface in Safari on the same iPhone, including https:// and any port, and that your server runs Immich 3.3 or later.
  • Limited photo access: open the iOS Settings app, choose Photo Mirror › Photos and allow full access. With limited access, every photo you did not select would look deleted, so the app does not sync.
  • Photos wait for iCloud: with Optimize iPhone Storage, originals are downloaded from iCloud first. Keep the iPhone on Wi-Fi; downloads that stall for a minute are skipped and retried on the next run.
  • Sync stopped in the background: open the app and tap Sync Now again; it continues where it stopped. The log on the main screen shows why a run ended.
  • A photo is missing in Immich: run a dry run, which explains for a sample of photos why they are not on the server yet, or check Mirrored photos › Recently Mirrored, which links to each photo in Immich.

Privacy

Your photos and your Immich account go only to your own Immich server. There is no account with us, no other cloud and no tracking. See the privacy policy.

Contact

Questions, problems or ideas? Write to [email protected]. Please mention your iOS version and your Immich server version. For problems with the Immich server itself, the Immich project is the right place.