IMMICH_API_URL=https://my.immich.instance
IMMICH_API_KEY=<my_immich_api_key>
# Optional: set maximum memory heap size (default is 512m)
# MAX_HEAP_SIZE=2g
# Override default photos library location and names if needed
# PICTURES_DIRECTORY=${HOME}/Pictures
# PHOTOS_LIBRARY_NAME=Photos Library
# EXTRACTED_PHOTOS_NAME=extracted-photos
FlowLogix MirrorImmich extracts title, description, keywords / tags, GPS location and album information created in Apple macOS Photos and creates a directory that includes symlinks to photos and their extracted metadata in sidecar .xmp files.
This directory can then be rsync’d to Immich external library.

Features
-
Creates a directory structure to be used as an external library in Immich.
-
Exports titles, descriptions, GPS location, and keywords / tags.
-
Note: Appends titles and descriptions, since Immich only has one description field.
-
-
Generates
.xmpsidecar files. -
Exports edited photos, if they are edited.
-
Creates albums in Immich based on Apple Photos albums.
-
Marks favorites in Immich based on Apple Photos favorites.
Installation
Docker Compose is the recommended installation method.
-
Download Latest Release
-
Unzip the downloaded file.
-
Run
docker compose up -dto start the container. -
Browse http://localhost:9090 to access MirrorImmich.
You can also create .env file in the same directory as docker compose file,
with the following variables:
Installation Notes
-
Docker needs to have "full disk access" to be able to read Photos library
-
New releases are uploaded on Docker Hub and release date in this repository does not indicate latest update to the Docker image.
Check Docker Hub for the latest image.
GitHub Page
Installation instructions are also available on GitHub: FlowLogix Mirror-Immich on GitHub
Screenshots
Here is the configuration screen:
Here is the result screen from a test run. As you can see, the results are read from the Photos SQLite database:
Example metadata transfer:
→
MirrorImmich vs. Immich Go, PhotoSync, etc.
There are existing solutions for uploading photos to Immich. However, none of those solutions access Apple macOS Photos internal database to extract metadata that was entered into Apple Photos on the Mac. All other solutions extract data from the metadata from the photo and video files themselves. Unfortunately that data is incomplete and does not include manually entered data in Apple Photos on the Mac.