Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(github-release): update immich-app/immich to v1.106.2 #126

Merged
merged 1 commit into from
Jun 12, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 11, 2024

Mend Renovate

This PR contains the following updates:

Package Update Change
immich-app/immich minor v1.105.1 -> v1.106.2

Release Notes

immich-app/immich (immich-app/immich)

v1.106.2

Compare Source

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
🖥️ Web
🧠 Machine Learning
⚡ CLI
📓 Documentation

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

v1.106.1

Compare Source

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
🗄️ Server
📱 Mobile
🖥️ Web
🧠 Machine Learning
⚡ CLI
📓 Documentation

Configuration

📅 Schedule: Branch creation - "on saturday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

Copy link

github-actions bot commented Jun 11, 2024

--- kubernetes/apps/media/immich/app Kustomization: flux-system/immich HelmRelease: media/immich

+++ kubernetes/apps/media/immich/app Kustomization: flux-system/immich HelmRelease: media/immich

@@ -27,13 +27,13 @@

       retries: 3
       strategy: rollback
   values:
     env:
       TZ: ${TIMEZONE}
     image:
-      tag: v1.105.1
+      tag: v1.106.2
     immich:
       metrics:
         enabled: true
       persistence:
         library:
           existingClaim: immich-nfs

Copy link

github-actions bot commented Jun 11, 2024

--- HelmRelease: media/immich Deployment: media/immich-machine-learning

+++ HelmRelease: media/immich Deployment: media/immich-machine-learning

@@ -25,13 +25,13 @@

       serviceAccountName: default
       automountServiceAccountToken: true
       dnsPolicy: ClusterFirst
       enableServiceLinks: true
       containers:
       - name: immich-machine-learning
-        image: ghcr.io/immich-app/immich-machine-learning:v1.105.1
+        image: ghcr.io/immich-app/immich-machine-learning:v1.106.2
         imagePullPolicy: IfNotPresent
         env:
         - name: DB_DATABASE_NAME
           value: immich
         - name: DB_HOSTNAME
           value: immich-postgresql
--- HelmRelease: media/immich Deployment: media/immich-microservices

+++ HelmRelease: media/immich Deployment: media/immich-microservices

@@ -25,13 +25,13 @@

       serviceAccountName: default
       automountServiceAccountToken: true
       dnsPolicy: ClusterFirst
       enableServiceLinks: true
       containers:
       - name: immich-microservices
-        image: ghcr.io/immich-app/immich-server:v1.105.1
+        image: ghcr.io/immich-app/immich-server:v1.106.2
         imagePullPolicy: IfNotPresent
         command:
         - /bin/sh
         args:
         - ./start-microservices.sh
         env:
--- HelmRelease: media/immich Deployment: media/immich-server

+++ HelmRelease: media/immich Deployment: media/immich-server

@@ -25,13 +25,13 @@

       serviceAccountName: default
       automountServiceAccountToken: true
       dnsPolicy: ClusterFirst
       enableServiceLinks: true
       containers:
       - name: immich-server
-        image: ghcr.io/immich-app/immich-server:v1.105.1
+        image: ghcr.io/immich-app/immich-server:v1.106.2
         imagePullPolicy: IfNotPresent
         command:
         - /bin/sh
         args:
         - ./start-server.sh
         env:

@renovate renovate bot force-pushed the renovate/immich-app-immich-1.x branch from 59527d6 to 8a4c622 Compare June 11, 2024 22:08
@renovate renovate bot changed the title feat(github-release): update immich-app/immich to v1.106.1 feat(github-release): update immich-app/immich to v1.106.2 Jun 11, 2024
@willianpaixao willianpaixao self-requested a review June 12, 2024 07:45
@willianpaixao willianpaixao self-assigned this Jun 12, 2024
Copy link
Owner

@willianpaixao willianpaixao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@willianpaixao willianpaixao merged commit ab975f3 into main Jun 12, 2024
6 checks passed
@willianpaixao willianpaixao deleted the renovate/immich-app-immich-1.x branch June 12, 2024 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant