Immich 1.135.0 → 1.136.0
4 versions, 1 with breaking changes, 0 required stops
Version by version, oldest first
1.135.1 – 1.135.3: no action items (3 versions)
1.136.0 2025-07-24
Breaking
IMMICH_MEDIA_LOCATION (#19995)
Note: This is a different variable than
UPLOAD_LOCATION, which requires no change.Note: if you DO NOT have
IMMICH_MEDIA_LOCATIONin your.envfile, or if it is set to a path that starts with a/(absolute path), THIS BREAKING CHANGE DOES NOT APPLY TO YOU. Users of the all-in-one image (e.g., the unraid app) for instance are not affected.If you have a custom
IMMICH_MEDIA_LOCATIONenvironment variable set to a relative path, you will have to do the following process:
- Stop Immich (
docker compose stop):- Update Immich (
docker compose pull)- Update the environment variable to an absolute path, for example:
-IMMICH_MEDIA_LOCATION=./my-library +IMMICH_MEDIA_LOCATION=/usr/src/app/my-library
- Start Immich (
docker compose up -d --force-recreate)- After the server successfully starts up, connect to it (
docker exec ``*-it*`` immich_server /bin/sh) and runimmich-admin change-media-location. When prompted, enter the appropriate values. For example:docker exec -it immich_server /bin/sh $ immich-admin change-media-location ... ? Enter the previous value of IMMICH_MEDIA_LOCATION: ./my-library ? Enter the new value of IMMICH_MEDIA_LOCATION: /usr/src/app/my-library Previous value: ./my-library Current value: /usr/src/app/my-library Changing database paths from "my-library/*" to "/usr/src/app/my-library/*" ? Do you want to proceed? [Y/n] y Matching database file paths were updated successfully! 🎉 You may now set IMMICH_MEDIA_LOCATION=/usr/src/app/my-library and restart!Background/Motivation
Relative paths have implied ambiguity, as they depend on the current working directory to resolve correctly, leading to issues like (#4465). This change removes this ambiguity and sets up the project to transition away from files living at
/usr/src/app/uploadentirely. Currently, theuploadfolder lives at/usr/src/app/upload/upload, which is very confusing… for everyone. This change opens to door for a future migration to something likeIMMICH_DATA=/data, which a more sensible setup.API Key changes (#20113)
Note: This change may affect the use of third-party applications, such as ImmichGo, ImmichKios, or ImmichFrame.
This release includes a change to how API Keys work, specifically when used with routes that don’t require a specific permission. Previously, a scoped API Key could access these routes, but they will now throw a forbidden error. Routes without a declared scope now implicitly require the “all” permission.
Note
This is only supported when both the server and the mobile app are updated to
v1.136.0
Breaking
- feat!: absolute file paths by @jrasm91 in https://github.com/immich-app/immich/pull/19995
- fix: default route permission by @jrasm91 in https://github.com/immich-app/immich/pull/20113
Release notes from github.com/immich-app/immich/releases, checked 17 hours ago. Only text the vendor marks as breaking, or puts in a warning/caution/important note, or a plain note, is shown (a note that asks nothing of the admin, such as a call for feedback or testing, is not); read the full notes for anything else.