Skip to content

Releases: immich-app/immich

v1.137.3

01 Aug 15:06
Compare
Choose a tag to compare

v1.137.3

  • Fixes a media location migration issue for people who have IMMICH_MEDIA_LOCATION set. (e.g., Unraid)

What's Changed

🐛 Bug fixes

Full Changelog: v1.137.2...v1.137.3

v1.137.1

31 Jul 23:19
Compare
Choose a tag to compare

v1.137.1

  • Fixes an issue with the /usr/src/app/upload => /data migration if you don't have any assets in the default library

What's Changed

🐛 Bug fixes

Full Changelog: v1.137.0...v1.137.1

v1.137.0

31 Jul 21:02
Compare
Choose a tag to compare

v1.137.0

  • knock, knock
  • Who's there?
  • Breaking
  • Breaking who?
  • Breaking changes woohoo, with a stable-release-is-around-the-corner and coming to a server near you (soon™)

Caution

Breaking Changes

If your current, running version of Immich is v1.132.0 or newer, there is NO ACTION required. If you are updating from version below v1.132.0 continue reading.

Remove TypeORM (#20366)

This update requires applications to have started up at least once on 1.132.0+. See https://immich.app/errors/#typeorm-upgrade for more details.

Highlights

Welcome to the release v1.137.0 of Immich. This version adds many bug fixes for the beta timeline, more feature parity with the old timeline, alongside some nifty enhancements to the web and the server as well. As always, new translations have been merged in, and the documentation has been updated at https://immich.app. Now, let’s dive in!

  • The default docker-compose.yml template has changed
  • Beta timeline
  • Shared link custom URL
  • Find large files utility
  • API key permission improvements

docker-compose.yml template change (optional)

The default compose file now uses /data instead of /usr/src/app/upload. This is a completely optional change and NOT a breaking change. Prior versions of Immich will continue to work without any user intervention. For more information, see #20367.

Prior to this change, uploaded media was located at /usr/src/app/upload/upload in the container (notice the double “upload” folders), which often led to confusion. It will now be located at /data/upload, and we hope that makes things easier.

Beta timeline

Thank you to everyone who tried out the beta timeline in the last release! We have gathered a lot of great feedback, and are actively working on incorporating it. We’ve fixed a bunch of bugs and added back a bunch of previous features. Here’s a quick list/overview of beta timeline changes this release:

  • Fix the invalid timeline grouping issue

  • Fix the trash action translation keys

  • Fix the beta timeline switch missing in landscape mode

  • Fix a timeline migration bug on Android

  • Fix the text overflow issue on the action buttons

  • Fix deep links when the beta timeline is enabled

  • Fix search places not working correctly

  • Fix missing hero animation between tabs

  • Fix the backup remainder backup count issue

  • Fix the share to app upload

  • Fix the error navigating back from the backup page

  • Fix the backup indicator

  • Fix the back gesture in multi-select mode

  • Fix user profile images

  • Fix the issue downloading live photo

  • Fix the issue with sync for users with external libraries

  • Fix the issue with storage filling up for users with iCloud photos

    … and more

Shared link custom URL (#19999)

Immich shared links by default are long and hard to guess. This is by design and is a security mechanism to prevent unwanted access. However, the long links can be a bit awkward to use because they are difficult to read. For cases where security is less important, we have added the option to specify a custom URL.

image

Shared links with a custom URL are now also available at /s/<slug> (in addition to /share/<long-random-string>. Naturally, these links don’t share the same security benefits of the long-random-string ones, so please use them accordingly.

Find large files utility (web-only)

This release adds a new, convenient utility to find large files on your instance. You can access it by navigating to the “Utility” page on the web, and clicking “Review large files”. The page shows the largest 250 original files for your user.

image image

Improved API key permissions and documentation

Following up from the last release, we have added fine-grained permissions to more API endpoints, which are now also included in the auto-generated documentation, which can be read here.

Caution

Related to these changes, a few API permissions have been renamed. See #20250 for more details.

On the web, the New API Key form now includes the newly added permissions, as well as a search bar for quicker access.

image

What's Changed

🚨 Breaking Changes

🚀 Features

🌟 Enhancements

🐛 Bug fixes

Read more

v1.136.0 - 69420 stars release

24 Jul 16:42
Compare
Choose a tag to compare

v1.136.0 - 69420 stars release

Caution

BREAKING CHANGES

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_LOCATION in your .env file, 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_LOCATION environment variable set to a relative path, you will have to do the following process:

  1. Stop Immich (docker compose stop):
  2. Update Immich (docker compose pull)
  3. Update the environment variable to an absolute path, for example:
-IMMICH_MEDIA_LOCATION=./my-library
+IMMICH_MEDIA_LOCATION=/usr/src/app/my-library
  1. Start Immich (docker compose up -d --force-recreate)
  2. After the server successfully starts up, connect to it (docker exec ``*-it*`` immich_server /bin/sh) and run immich-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/upload entirely. Currently, the upload folder lives at /usr/src/app/upload/upload, which is very confusing… for everyone. This change opens to door for a future migration to something like IMMICH_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.

Highlights

Welcome to release v1.136.0. This midsummer release is the culmination of the team's labor of love for the Immich community, featuring the introduction of a new timeline and sync mechanism in beta mode, Android widgets, and one of the last breaking changes we want to make before reaching the stable release milestone. Let’s dive right into it.

  • Beta mode for the new timeline, sync, and upload mechanism
  • Android widgets
  • iOS widget improvements
  • Deep links

Beta timeline, sync, and upload mechanism

Note

This is only supported when both the server and the mobile app are updated to v1.136.0

This is a series of work that has been happening for months under the hood, from the changes in the database query engine, server’s queries, and support logic, to integrating a whole new database on the mobile app, and rewriting almost all aspects of the mobile app, you can now try the new timeline with data sync mechanism, and upload rework by go to the App Settings > Toggle the Beta timeline button. After toggling, you will be directed to a screen where data migration is executed automatically. You can then proceed to the new experience.

image

You can distinguish the beta timeline from the old one by the beta symbol next to the Immich logo in the app bar.

image

Why?

Over the past year, the major complaints we've received from users have primarily centered around the mobile app. The app simply doesn't feel premium or responsive—it's often janky and takes too long to become usable when first opened, especially when you have a large number of albums. Users can't even view their local albums unless they've selected them as backup targets. Our technical debt in the data structure has created some truly frustrating behaviors, like forcing users to re-upload everything (only to have it rejected by the server) when they switch phones and end up with a different device ID. Or local photos and videos don’t show up until they are all hashed, which could take a while.

We've realized we can't honestly call the application stable or confidently recommend it to everyone until we resolve these fundamental problems. We genuinely want this app to be excellent. We want the user experience to be seamless and delightful—we want you to feel genuinely happy when you open Immich to browse through your precious memories.

What’s new?

Data sync

  • The data sync is now running in a background thread, separate from the UI thread. This means that during data synchronization, the app will remain smooth to browse.
  • The data sync speed should be improved drastically. The data is being streamed to the mobile app instead of being sent there in a single large chunk. This will help users with a massive library.
  • The calculation of which data needs to be retrieved from the server is now performed on the server, rather than being calculated by the mobile app previously. This means lower CPU usage on the mobile app and quicker incremental sync.
  • The mobile app will now retrieve data from the server and maintain similar database tables within the app. This restructuring enables better offline operation and supports more complex usage behaviors.

Timeline/Display experience

  • The new timeline has been rewritten from the ground up to enhance scrolling and dragging behavior, making it easier for you to navigate the timeline.
  • The detail viewer is now more interactive, allowing you to scroll between photos or videos when the bottom detail sheet is opened.
  • The album views and other collection views are more lively, featuring a parallax effect to make your album/collection feel alive with mesmerizing animation.
  • You can now view all albums on the device, regardless of which album you have selected as the target for backing up. You can view them in the `Library > On this device` section. For users who want to select individual assets to back up to the server, they can perform that operation from here.

Upload

  • The upload mechanism has been rewritten from the ground up.
  • Upload is now handled by the OS, allowing for a better background upload operation. Instead of handling the uploading ourselves, we are now placing the photos and videos in a queue, which will run continuously when the Immich app is opened in the foreground and for a few minutes after it is put into the background. Then the OS will take over and start pulling tasks from the queue, handling the upload process by itself.
  • Starting the upload progress is now invoked from a toggle button

image

  • Uploads are now running in parallel . The new upload detail page displays which assets are being uploaded and whether they are experiencing issues or stuck. You can tap on each item to see exactly which asset is causing the problem.

image

image

  • On Android, there is no longer a virtual Recents album that includes all assets. Instead, there is a button to select all albums for backup.
  • In the backup album selection screen, you can now search for the album you want to back up.

Expectations of the beta version of the mentioned mechanisms

  • The app should be very smooth to browse around during the initial login and subsequent app openings.
  • Collections (favorite, archived, locked folder, etc.) and album views should make you feel nice, cozy, and delighted.
  • Background queuing of newly taken photos is not yet implemented. We will start working on this next.
  • Some views are not yet ported over to the new implementation, such as, but not limited to
    • People view
    • Map view
  • Some mechanisms are still missing from the previous implementation, such as, but not limited to
    • Add to album from multi-selection
    • Album sync when uploading
  • There are still some buggy behaviors/animations we will be ironing out in the coming days.

How can you help us?

  • Use the beta timeline and the new upload rework.
  • Report any bugs and weirdness you experience on GitHub’s issue tracker [beta] <your-title-here> as the title
  • Reach out and provide direct feedback on Discord
  • Feedback from iCloud users is greatly appreciated

Android Widgets

image

This is a follow-up to one of our most requested features: ...

Read more

v1.135.3

20 Jun 20:19
Compare
Choose a tag to compare

v1.135.3

  • Fixed an issue where the database migration fails on some instances with a different default database name

What's Changed

🐛 Bug fixes

  • fix(server): don't hardcode database name in migration by @dotlambda in #19376

Full Changelog: v1.135.2...v1.135.3

v1.135.2

20 Jun 15:22
Compare
Choose a tag to compare

v1.135.2

This release addresses the following issues.

  • Fixed an issue where the database migration was not running correctly on some systems
  • Fixed an issue where the timezone causes an issue showing the web timeline in some instances, the counter resets again!

- Reverted the behavior of sorting people, it is now based on asset count as before

What's Changed

🌟 Enhancements

🐛 Bug fixes

Full Changelog: v1.135.1...v1.135.2

v1.135.1

19 Jun 17:55
Compare
Choose a tag to compare

v1.135.1

Highlights

This release addresses the following issues.

  • Fixed a bug where the navigation button disappears in detail view if opened from an album
  • Fixed a bug where the local network permission prompt doesn't show up on iOS. If for some reason, you still cannot access the instance after enabling the permission, restarting the phone will fix it
  • Fixed an issue where warning messages were shown after updating the VectorChord extension
  • Fixed an issue where named people are not showing up on top of the people list
  • Fixed an issue where the web timeline does not show on some older browsers
  • iOS Widget now supports iOS 17 and above (previously supported only 18.5)

What's Changed

🐛 Bug fixes

📚 Documentation

New Contributors

Full Changelog: v1.135.0...v1.135.1

v1.135.0

18 Jun 20:37
Compare
Choose a tag to compare

v1.135.0

Highlights

Welcome to the release v1.135.0 of Immich. Another three-week gap, another ~200 PRs merged, another big release, let’s dive right in to what’s new.

  • iOS home screen widgets
  • Granular API key access control creation
  • Google Cast support on the mobile app
  • Opt-in Google Cast on the web
  • New user onboarding
  • Album description on the mobile app
  • Drag-and-drop to the locked folder on the web
  • Support for Vchord 0.4.2
  • Shortcut to navigate the timeline
  • Multiple admins support
  • Devcontainer
  • Notable fix: Double swiping issue on iOS when using the gallery viewer

iOS Home Screen Widgets

Memory Widget Random Widget

Immich now supports home screen widgets on iOS! You can now add widgets to your home screen that:

  • Display a random image from your library
  • Display a random image from an album
  • Show images from memory lane

We support all widget sizes (S, M, L, and XL on iPad). These widgets update approximately every 20 minutes and pull directly from your Immich server. Android support is coming in the near future, so keep an eye out!

Tip

Your server must be on v1.135.0 for album filtering to work.

Granular API key access control creation

You can now select additional permissions when creating an API key to use in any third-party libraries or software that integrate with Immich. This mechanism will give you better control over what the other applications or libraries can do with your Immich’s instance.

Google Cast support on the mobile app

Immich now supports casting photos from the mobile app to Google Cast-enabled devices! This is a follow-up to the casting feature present on the web. We support photos and videos, similar to the web feature. This feature is not controlled by the new “Opt-in Google Cast on the web” setting since it does not require third-party resources from Google.

Tip

Your server must be accessible through the server URL from the cast receiver. There is no limitation on public accessibility or an HTTPS connection requirement, unlike on the web. In addition, only assets that are uploaded to the server may be cast.

Opt-in Google Cast on the web

We received a few reports from users who were concerned about the privacy implications of Google Cast on the web. Immich needs to fetch a third-party script from Google to check if casting is supported in the browser and to communicate with the cast library in Chrome. This causes a network request to Google each time Immich is loaded.

We have made Google Cast opt-in now to remove this requirement. If you use Google Cast on the web, you may enable Google Cast for your user by going to Account Settings > Features > Settings > Cast or by using this link.

If you have previously used Google Cast on the web and would like to continue using it, you must also enable it.

New user onboarding

image

To provide a better user experience for discovering and enabling various features, settings, and preferences, all new users are now greeted with an onboarding flow on the web when they first log in. They can select their language, theme, and personal privacy settings (such as Google Cast opt-in). Any users present before updating to v1.135.0 will not experience the onboarding flow.

Album description on the mobile app

The album’s description is now displayed and editable in the mobile app. The album’s header also gets some styles to make it more presentable.

Support for Vchord 0.4.2

Right after we rolled out the VectorChord vector database extension, the library dropped a new version 0.4.2 with some significant improvements (classic timing!). We've updated our server to support it and made it the default in the docker-compose.yml file.

You don't have to upgrade, though - sticking with your current version (0.3.0) is perfectly fine. But if you want to move to the newer one, it is an option.

Keyboard Navigation in Timeline

The timeline now supports shortcuts to make navigating between days, months, and years easier.

  • Use d or shift + d to jump to an earlier or later day.
  • Use m or shift + m to jump to the earlier or later month.
  • Use y or shift + y to jump to the earlier or later year.
  • Use g to go directly to a specific date

image

Multiple admins support

You can now grant other users administrative permission by navigating to Administration > Users > View Users > Edit User and toggling the Admin option

image

Dev Containers

There is an alternative way to set up a development environment using dev containers. For more information, refer to the documentation.

Contributing has never been easier: Get started right away with a single click on this button to launch an entire development environment in GitHub’s Codespaces in the cloud.

Open in GitHub Codespaces

Along with the highlights, there are many other improvements and bug fixes. Make sure to check out the full changes below.

Support Immich

If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or our merchandise at https://immich.store

What's Changed

🚀 Features

🌟 Enhancements

Read more

v1.134.0

27 May 17:28
Compare
Choose a tag to compare

v1.134.0

Welcome to release v1.134.0 of Immich. This release focuses on bug fixes and enhancements from the previous release. Please find some of the highlights below:

  • Adds a new API endpoint to check the application version status
  • Adds a mechanism to handle startup reindexing after a failed model change
  • Improves pinch-to-zoom action on the mobile app
  • Replaces the administration user edit button with the action button to go straight to the user's detail page
  • Fixes a bug where generated memories include locked assets
  • Fixes a bug where the search filter panel anchors to the top of the page instead of the viewport
  • Fixes a bug where ctrl/cmd + click doesn't open the photo on a new page
  • Fixes various minor issues related to styling and z-index

Support Immich

What's Changed

🌟 Enhancements

🐛 Bug fixes

🌐 Translations

New Contributors

Full Changelog: v1.133.1...v1.134.0

v1.133.1

23 May 18:14
Compare
Choose a tag to compare

v1.133.1

Highlights

  • Lower disk usage during VectorChord migration
  • Adds move to locked album button to more views on the web
  • Fixes a bug where the missing button for the duplicate detection job is not working
  • Fixes a bug where a hard link does not navigate to the asset location on the timeline
  • Fixes a bug where styling information is missing in some cases
  • Fixes a bug where locked assets show up in local album view if it is presented on the phone
  • Fixes some translation issues

What's Changed

🌟 Enhancements

🐛 Bug fixes

📚 Documentation

  • fix(docs): more vchord details by @mmomjian in #18435
  • fix(docs): mention DB_VECTOR_EXTENSION env in pgvector->vchord migration guide by @mertalev in #18508

🌐 Translations

New Contributors

Full Changelog: https://github.com/immich-app/immich/compare/v1.133.0...