Skip to content

Releases: immich-app/immich

v1.106.2

11 Jun 19:25
Compare
Choose a tag to compare

v1.106.2

This is a hot fixes release that addresses the following bugs.

  • fix(server): cache-control header missing from / requests #10131
  • fix(mobile): warning message not resetting when changing server #10112
  • fix(#9467): Motion Photos stopping music #10151
  • fix(#10113): cannot perform duplication actions as normal user #10115
  • fix(#10117): cannot click on explore places #10121
  • fix(#10130): cannot view image when metadata sharing is turned off for public sharing #10145
  • fix(web): backward asset navigation in GalleryViewer #10132

Include the previous release note below for your convenience.


Highlights

BREAKING CHANGES

Warning

1. Underlying API changes

Please ensure your mobile app and server are on the same version. Otherwise, you won't be able to access the app.

We advise you to wait for the mobile app to be reviewed and released from the app stores before updating your instance to avoid disrupting your users.

2. Environment variables

  • SERVER_PORT, MICROSERVICES_PORT, and MACHINE_LEARNING_PORT were renamed to IMMICH_PORT
  • HOST and MACHINE_LEARNING_HOST were renamed to IMMICH_HOST

3. Removal of the immich-microservices container

The microservices container/process can now be deployed within the immich-server container itself and is done so by default.

Please refer to our documentation for a detailed explanation of this change and a way to keep microservices as a separate container.

Please edit your docker-compose.yml file with the following changes. If you use hardware acceleration previously in immich-microservices, you can move the extends block's content to the immich-server service to keep the same functionality.

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
-   command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

-  immich-microservices:
-    container_name: immich_microservices
-    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
-    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
-    #   file: hwaccel.transcoding.yml
-    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
-    command: ['start.sh', 'microservices']
-    volumes:
-      - ${UPLOAD_LOCATION}:/usr/src/app/upload
-      - /etc/localtime:/etc/localtime:ro
-    env_file:
-      - .env
-    depends_on:
-      - redis
-      - database
-    restart: always

Highlights

Welcome to release v1.106.0 of Immich. Woooh, this release is packed with many new features, improvements, and bug fixes. This is one of the longest release stretches we have ever done, with over 230 closed PRs over a month. I hope you enjoy this release as much as we do, and we have more brewing on the horizon; let's go over some of the highlights of the release below:

  • Removal of the immich-microservices container
  • Similar image detection and management
  • End-to-end acceleration for NVENC and QSV transcoding
  • Better video thumbnails
  • Email notifications for album events
  • Per user email notifications settings
  • Send a test email when configuring the SMTP email server
  • Public roadmap (here)
  • Translation on the web
  • Notable fix: Fixed an edge case bug on mobile synchronization when there is a bad file with date time information. Thanks @fyfrey so much!

Removal of the immich-microservices container

"microservices be gone" - Zack

Actually, it is still there but in a true microservices manner where we spawn it in a separate process. Woohoo, one more container down to simplify the official setup of Immich!

This change is one of many pieces of upcoming work to change how we handle jobs. Microservices were always a patch for the problem that we couldn't run background tasks within the main server, which would introduce contention for the API itself. Using workers, we can now have these within the same container, separated into different V8 engines. Moving forward, we will be looking to split out "microservices" into actual microservices such as transcoding, thumbnails, etc., allowing such things as distributing transcoding alone to another instance.

Architecture

The immich-server container contains multiple workers:

  • api: responds to API requests for data and files for the web and mobile app.
  • microservices: handles most other work, such as thumbnail generation and video encoding, in the form of jobs. Simply put, a job is a request to process data in the background.

Split workers [Optional]

If you prefer to throttle or distribute the workers, you can use the environment variables to specify which container should pick up which tasks.

For example, for a simple setup with one container for the Web/API and one for all other microservices, you can do the following:

Copy the entire immich-server block as a new service and make the following changes to the copy:

- immich-server:
-   container_name: immich_server
...
-   ports:
-     - 2283:3001
+ immich-microservices:
+   container_name: immich_microservices

Once you have two copies of the immich-server service, make the following changes to each one. This will allow one container only to serve the web UI and API and the other one to handle all other tasks.

services:
  immich-server:
    ...
+   environment:
+     IMMICH_WORKERS_INCLUDE: 'api'

  immich-microservices:
    ...
+   environment:
+     IMMICH_WORKERS_EXCLUDE: 'api'

Similar image detection

This release adds the much-anticipated ability to detect duplicate assets that aren't exactly identical, whether because of a difference in resolution, compression or metadata. To give you control over which asset(s) to keep, the assets aren't deduplicated immediately. Instead, there's a new Duplicates page where you can review duplicates to keep or trash them. An asset with the largest file size is selected by default.

Deduplication-action.mp4

To get started, you can run the new duplicate detection job on all assets. You won't need to do this for new assets, as they'll be automatically processed.

image

The Duplicates page is under a new Utilities section in the sidebar. Stay tuned for other features that will go into this section!

image

End-to-end hardware-accelerated transcoding

Until now, hardware acceleration for most backends only applied to encoding; decoding and tone-mapping were still done on the CPU. There's now an opt-in hardware decoding toggle that allows you to accelerate the full transcoding process for NVENC, QSV, and RKMPP. Some testing showed a 10x speed improvement compared to accelerated encoding alone (results are subject to your hardware and the video itself, of course).

hwdecodingchart

Keep in mind that hardware and video compatibility becomes more relevant with this setting, which is why it's currently opt-in.

Special thanks to Jellyfin's @nyanmisaka for their helpful tips and suggestions for this feature!

Better video thumbnails

Immich now tries to find a descriptive video thumbnail instead of simply using the first frame. No more black images for thumbnails!

Before:

video-thumbnail-before

After:

video-thumbnail-after

This change won't apply retroactively to existing videos. To update video thumbnails, you can either select them and choose Refresh Thumbnails from the overflow menu or re-run thumbnail generation on all assets through the job panel to update all of them.

Additional email notifications

Two new event types have been added for which email notifications can be sent out:

  1. You are added to a shared album.
  2. New media is added to an album.

Also, users can now control their notification settings for each event. Notification preferences can be viewed on the web account settings page.

image

Translation on the web

We have added translation for Immich on the web. You can help us translate the web to your native language by accessing our Weblate project here.

You can change the app to your language from the Account Settings > App Settings > Language

image

And as always, bugs are fixed, and many other improvements also come with this release.

What's Changed

🗄️ Server

📱 Mobile

Read more

v1.106.1

11 Jun 10:03
Compare
Choose a tag to compare

v1.106.1

Note: We skip v1.106.0 and push straight to v1.106.1 since we discovered and fixed some more bugs while waiting for the v1.106.0 mobile releases to be approved for synchronized publishing across all platforms

BREAKING CHANGES

Warning

1. Underlying API changes

Please ensure your mobile app and server are on the same version. Otherwise, you won't be able to access the app.

We advise you to wait for the mobile app to be reviewed and released from the app stores before updating your instance to avoid disrupting your users.

2. Environment variables

  • SERVER_PORT, MICROSERVICES_PORT, and MACHINE_LEARNING_PORT were renamed to IMMICH_PORT
  • HOST and MACHINE_LEARNING_HOST were renamed to IMMICH_HOST

3. Removal of the immich-microservices container

The microservices container/process can now be deployed within the immich-server container itself and is done so by default.

Please refer to our documentation for a detailed explanation of this change and a way to keep microservices as a separate container.

Please edit your docker-compose.yml file with the following changes. If you use hardware acceleration previously in immich-microservices, you can move the extends block's content to the immich-server service to keep the same functionality.

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
-   command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always

-  immich-microservices:
-    container_name: immich_microservices
-    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
-    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
-    #   file: hwaccel.transcoding.yml
-    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
-    command: ['start.sh', 'microservices']
-    volumes:
-      - ${UPLOAD_LOCATION}:/usr/src/app/upload
-      - /etc/localtime:/etc/localtime:ro
-    env_file:
-      - .env
-    depends_on:
-      - redis
-      - database
-    restart: always

Highlights

Welcome to release v1.106.0 of Immich. Woooh, this release is packed with many new features, improvements, and bug fixes. This is one of the longest release stretches we have ever done, with over 230 closed PRs over a month. I hope you enjoy this release as much as we do, and we have more brewing on the horizon; let's go over some of the highlights of the release below:

  • Removal of the immich-microservices container
  • Similar image detection and management
  • End-to-end acceleration for NVENC and QSV transcoding
  • Better video thumbnails
  • Email notifications for album events
  • Per user email notifications settings
  • Send a test email when configuring the SMTP email server
  • Public roadmap (here)
  • Translation on the web
  • Notable fix: Fixed an edge case bug on mobile synchronization when there is a bad file with date time information. Thanks @fyfrey so much!

Removal of the immich-microservices container

"microservices be gone" - Zack

Actually, it is still there but in a true microservices manner where we spawn it in a separate process. Woohoo, one more container down to simplify the official setup of Immich!

This change is one of many pieces of upcoming work to change how we handle jobs. Microservices were always a patch for the problem that we couldn't run background tasks within the main server, which would introduce contention for the API itself. Using workers, we can now have these within the same container, separated into different V8 engines. Moving forward, we will be looking to split out "microservices" into actual microservices such as transcoding, thumbnails, etc., allowing such things as distributing transcoding alone to another instance.

Architecture

The immich-server container contains multiple workers:

  • api: responds to API requests for data and files for the web and mobile app.
  • microservices: handles most other work, such as thumbnail generation and video encoding, in the form of jobs. Simply put, a job is a request to process data in the background.

Split workers [Optional]

If you prefer to throttle or distribute the workers, you can use the environment variables to specify which container should pick up which tasks.

For example, for a simple setup with one container for the Web/API and one for all other microservices, you can do the following:

Copy the entire immich-server block as a new service and make the following changes to the copy:

- immich-server:
-   container_name: immich_server
...
-   ports:
-     - 2283:3001
+ immich-microservices:
+   container_name: immich_microservices

Once you have two copies of the immich-server service, make the following changes to each one. This will allow one container only to serve the web UI and API and the other one to handle all other tasks.

services:
  immich-server:
    ...
+   environment:
+     IMMICH_WORKERS_INCLUDE: 'api'

  immich-microservices:
    ...
+   environment:
+     IMMICH_WORKERS_EXCLUDE: 'api'

Similar image detection

This release adds the much-anticipated ability to detect duplicate assets that aren't exactly identical, whether because of a difference in resolution, compression or metadata. To give you control over which asset(s) to keep, the assets aren't deduplicated immediately. Instead, there's a new Duplicates page where you can review duplicates to keep or trash them. An asset with the largest file size is selected by default.

Deduplication-action.mp4

To get started, you can run the new duplicate detection job on all assets. You won't need to do this for new assets, as they'll be automatically processed.

image

The Duplicates page is under a new Utilities section in the sidebar. Stay tuned for other features that will go into this section!

image

End-to-end hardware-accelerated transcoding

Until now, hardware acceleration for most backends only applied to encoding; decoding and tone-mapping were still done on the CPU. There's now an opt-in hardware decoding toggle that allows you to accelerate the full transcoding process for NVENC, QSV, and RKMPP. Some testing showed a 10x speed improvement compared to accelerated encoding alone (results are subject to your hardware and the video itself, of course).

hwdecodingchart

Keep in mind that hardware and video compatibility becomes more relevant with this setting, which is why it's currently opt-in.

Special thanks to Jellyfin's @nyanmisaka for their helpful tips and suggestions for this feature!

Better video thumbnails

Immich now tries to find a descriptive video thumbnail instead of simply using the first frame. No more black images for thumbnails!

Before:

video-thumbnail-before

After:

video-thumbnail-after

This change won't apply retroactively to existing videos. To update video thumbnails, you can either select them and choose Refresh Thumbnails from the overflow menu or re-run thumbnail generation on all assets through the job panel to update all of them.

Additional email notifications

Two new event types have been added for which email notifications can be sent out:

  1. You are added to a shared album.
  2. New media is added to an album.

Also, users can now control their notification settings for each event. Notification preferences can be viewed on the web account settings page.

image

Translation on the web

We have added translation for Immich on the web. You can help us translate the web to your native language by accessing our Weblate project here.

You can change the app to your language from the Account Settings > App Settings > Language

image

What's Changed

⚠️ Breaking Changes

Read more

v1.105.1

14 May 21:56
Compare
Choose a tag to compare

v1.105.1

There is no mobile release for this version

Caution

Please update immediately, as this bug can put your data at risk if using external libraries.

Hotfixes

  • Fixed a bug where deleting an external library would delete all local files

What's Changed

🗄️ Server

📱 Mobile

🔨 Maintenance

  • chore(deps-dev): bump jinja2 from 3.1.3 to 3.1.4 in /machine-learning by @dependabot in #9483
  • chore(deps-dev): bump flask-cors from 4.0.0 to 4.0.1 in /machine-learning by @dependabot in #9485
  • chore(deps): update dependency flutter_lints to v4 by @renovate in #9488
  • chore(deps): update python:3.11-bookworm docker digest to 96de1ea by @renovate in #9490

New Contributors

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

v1.105.0

14 May 17:21
Compare
Choose a tag to compare

v1.105.0

Caution

Changes in glob path external library

Library import paths no longer support wildcards (* notation/globs). If your library was previously using this, please update affected paths to point to directories instead.
Note: exclusion paths remain unchanged and still support glob syntax.

Highlights

Welcome to release v1.105.0 of Immich. WOW, 2 releases in 2 days! Immich's full-time core team has taken effect. Slightly kidding there, but we have a lot of bug fixes since the last release that we would like to push out to avoid you all encountering annoying bugs when using the software. Some highlights can be found below:

  • The mobile app now uses a more efficient sync algorithm.
  • Fixed assets status not showing correctly when deleting assets from the server when opening the mobile app.

What's Changed

⚠️ Breaking Changes

  • fix(server): support special characters in library paths by @sushain97 in #9385

🗄️ Server

📱 Mobile

🖥️ Web

📓 Documentation

  • fix install.sh add random password for .env by @xiagw in #9282
  • docs: remove mention of delete being disabled for external assets by @benmccann in #9465
  • docs(server,ml): update nvidia toolkit link by @mertalev in #9477
  • Added Swedish translation of README. by @klahr in #9464

🔨 Maintenance

New Contributors

Full Changelog: v1.104.0...v1.105.0

v1.104.0

13 May 18:52
Compare
Choose a tag to compare

v1.104.0

Caution

EXTERNAL LIBRARY EDITABILITY

For external library users, you can now manage your assets directly from Immich's user interface, i.e. you can edit date/time, location information, and delete from the web and the mobile app.

If you don't want Immich to handle those operations, please make sure to have the read-only, i.e., :ro flag on your mount point in the docker-compose.yml file.

Live stream - Immich Q&A ft. Eron Wolf & Louis Rossmann from FUTO

Last week, we had a live stream to answer your questions about Immich joining FUTO. You can watch the VOD here.

Highlights

Welcome to release v1.104.0 of Immich. This release includes new features, bug fixes, and improvements. The core team will now focus on tasks to bring us to a stable release. The highlights of this release can be found below.

  • Editability of external library
  • Notification foundation - SMTP Email

Editability of external library

Yes, we've heard you guys! You can now edit date/time and location information and even delete assets in an external library directly from Immich. If you don't want to use this feature, you should make sure to have the :ro flag on your docker mount in the docker-compose.yml file.

Notification - SMTP Email

Thanks, @hitech95, for kickstarting this feature,@jrasm91, and @danieldietzler for finishing it. We now have basic notification built-in, using email. The first mechanism that uses email is to send an email to a new user with information about the account and the instance they were invited to.

What's Changed

⚠️ Breaking Changes

🗄️ Server

📱 Mobile

🖥️ Web

📓 Documentation

Read more

v1.103.1

29 Apr 19:31
Compare
Choose a tag to compare

v1.103.1

There is no mobile release for this version

Hotfixes

  • Fixed an issue of being unable to view detailed assets in partner sharing on the web.

Include the v1.103.0 release note for your convenience.


v1.103.0

Highlights

Welcome to the release of v1.103.0 of Immich. This version includes some exciting new features and notable bug fixes. We hope you enjoy this release. Please take a look at the highlights below:

  • Read-only album sharing permission
  • Permanent URL on the web for asset viewer
  • Jump-to-date from memory view on the mobile app
  • Action bar in memory view on the web
  • Improve geocoding location data
  • Notable fix: Occasional logout on iOS
  • Notable fix: Asset's status sync issue on the mobile app
  • Notable fix: Memory leak causing mobile app crashes when swiping continuously in the detail view

Read-only album-sharing permission

When creating a shared album, you can specify whether the shared users can contribute to it or participate as read-only.

image

Permanent URL on the web for asset viewer

Assets now have a permanent URL on all views, so you can save a URL and refer back later to access a particular photo or video.

Jump-to-date from memory view on the mobile app

There is now an option to jump to a date from the memory viewer on the mobile app.

image

Action bar in memory view on the web

You can now select the assets in a certain memory and perform actions like adding to an album, deleting, archiving, favorite, etc.

image

Improve geocoding location data

The location data is now more consistent in the same area. To apply this change, you can trigger a metadata extraction job for all.

Before After
image image
image image

Support

If you find the project helpful, you can support Immich via the following channels.

It is a great way to let me know that you want me to continue developing and working on this project for years to come.

What's Changed

🖥️ Web

Full Changelog: v1.103.0...v1.103.1

v1.103.0

29 Apr 15:29
Compare
Choose a tag to compare

v1.103.0

Highlights

Welcome to the release of v1.103.0 of Immich. This version includes some exciting new features and notable bug fixes. We hope you enjoy this release. Please take a look at the highlights below:

  • Read-only album sharing permission
  • Permanent URL on the web for asset viewer
  • Jump-to-date from memory view on the mobile app
  • Action bar in memory view on the web
  • Improve geocoding location data
  • Notable fix: Occasional logout on iOS
  • Notable fix: Asset's status sync issue on the mobile app
  • Notable fix: Memory leak causing mobile app crashes when swiping continuously in the detail view

Read-only album-sharing permission

When creating a shared album, you can specify whether the shared users can contribute to it or participate as read-only.

image

Permanent URL on the web for asset viewer

Assets now have a permanent URL on all views, so you can save a URL and refer back later to access a particular photo or video.

Jump-to-date from memory view on the mobile app

There is now an option to jump to a date from the memory viewer on the mobile app.

image

Action bar in memory view on the web

You can now select the assets in a certain memory and perform actions like adding to an album, deleting, archiving, favorite, etc.

image

Improve geocoding location data

The location data is now more consistent in the same area. To apply this change, you can trigger a metadata extraction job for all.

Before After
image image
image image

Support

If you find the project helpful, you can support Immich via the following channels.

It is a great way to let me know that you want me to continue developing and working on this project for years to come.

What's Changed

🗄️ Server

📱 Mobile

🖥️ Web

⚡ CLI

📓 Documentation

  • docs: update "move all data" instructions in FAQ by @abernds...
Read more

v1.102.3

20 Apr 20:33
Compare
Choose a tag to compare

v1.102.3

There is no mobile release for this version

3 hotfixes in a day - sorry guys

Hotfixes

  • Actual fix for logout issue across the web and the mobile app

And as always, bugs are fixed, and many other improvements also come with this release.

Please consider supporting the project.

Support

If you find the project helpful, you can support Immich via the following channels.

It is a great way to let me know that you want me to continue developing and working on this project for years to come.

What's Changed

🗄️ Server

📱 Mobile

  • Revert "feat(android) Check server is reachable before starting background backup (#8594)" by @alextran1502 in #8958

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

v1.102.2

20 Apr 16:17
Compare
Choose a tag to compare

v1.102.2

Hotfixes

  • Next attempt to fix auto-logout on Android
  • Fixed issue with input focus reset on search people page

And as always, bugs are fixed, and many other improvements also come with this release.

Please consider supporting the project.

Support

If you find the project helpful, you can support Immich via the following channels.

It is a great way to let me know that you want me to continue developing and working on this project for years to come.

What's Changed

🗄️ Server

  • feat(server): enable AV1 encoding for QSV by @jarylc in #8942

📱 Mobile

🖥️ Web

New Contributors

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

v1.102.1

20 Apr 13:55
Compare
Choose a tag to compare

v1.102.1

Hotfixes

  • Fixed Android mobile app randomly logout for user with background backup enabled

And as always, bugs are fixed, and many other improvements also come with this release.

Please consider supporting the project.

Support

If you find the project helpful, you can support Immich via the following channels.

It is a great way to let me know that you want me to continue developing and working on this project for years to come.

What's Changed

🗄️ Server

📱 Mobile

  • fix(android): Check server is reachable before starting background backup by @devjn in #8594

🖥️ Web

New Contributors

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