Skip to content

Releases: immich-app/immich

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...

v1.102.0 - 30,000 Stars Release 🌟

19 Apr 20:31
Compare
Choose a tag to compare

v1.102.0

⚠️ Breaking Changes (OPT-IN ONLY)

Caution

For people always pulling the latest compose file, this is a breaking change!
Disregarding the notes will result in (temporary) data loss!

Background

In the past, we've seen many cases where people accidentally deleted their Postgres data by (unintentionally) deleting the docker volume (e.g., docker compose down -v).
This is unfortunate as there is no way to recover that data (if you don't have a backup, MAKE BACKUPS!).
We have been thinking about mounting the Postgres data to a local folder for a while but always hesitated, as this would break existing instances due to people not reading the change logs carefully. However, there have been too many issues, and we ultimately decided to make that change.

What do I have to do?

Nothing. You should only copy the compose file with every new release if we tell you to do so in the release notes. Generally, we don't recommend making changes to existing instances. If you have never had issues, attempting to migrate the data will put it at (an unnecessary) risk.

I want to migrate my docker volume to a local folder

Unfortunately there isn't a "proper" way to export a docker volume.
The recommended method is to mount the volume and the directory (you want to copy your data to) to an arbitrary container, get a shell inside that container and copy the folder manually.

Caution

Take backups before attempting this. Especially make sure you have a current database dump (pg_dump)

Warning

Do not use a directory under /mnt for the postgres location if you are using WSL.
Generally (on all operating systems) we recommend against using a network share for your database location. This is bound to break and cause all sorts of weird issues.

If you would like to opt-in to this change, there is an additional environment variable in the .env file as well as a modification in your existing docker-compose.yml file.

docker-compose.yml file

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
-      - pgdata:/var/lib/postgresql/data  
+      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    restart: always

volumes:
- pgdata:
  model-cache:

.env file

[...]
 DB_HOSTNAME=immich_postgres
 DB_USERNAME=postgres
 DB_DATABASE_NAME=immich
+DB_DATA_LOCATION=./postgres

Highlights

Welcome to release version v1.102.0 of Immich. We reached 30,000 stars!!! Thank you so much for your continuous support. We are proud to bring you this release with a focus on QoL improvements and bug fixes across the web, mobile, and server. We hope you enjoy it. Some of the highlighted changes can be found below.

  • In-app language settings
  • Haptic feedback control
  • Enhanced UI/UX on the album list page
  • AV1 transcoding
  • Choose between WebP and JPEG for thumbnails and previews
  • Option to use embedded preview in RAW images
  • Option to fill the screen with slideshows view

In-app language settings

You can now keep your phone interface in a different language and have Immich's app in a different language with the new in-app language setting. It can be found in Settings > Languages. After making the change, the new language will propagate across the app.

language-setting

Haptic feedback control

We added an option in the mobile app to disable haptic feedback. It can be found under Settings > Preferences > Haptic Feedback

image

Web album page's UI/UX enhancement

Album Grouping

With this new feature, albums can now be grouped by year or owner (or not grouped at all). This can be very useful to not get lost when having a lot of albums, that even are sometimes similar.

GroupFeature

  • This works both on "Covers" and "List" views.

GroupFeatureList

  • Albums are first grouped, then sorted inside of those groups.
  • Group sorting can be either ascending or descending.
  • Group by drop-down is located next to the Sort by one. The two buttons on the right are Expand all and Collapse all. They are not displayed when No grouping is selected.

GroupByDropdown

  • Groups can be collapsed (saved in the local storage).
Collapse.mp4

Other UI Changes

  • Album cards now display the month and year of the photos.
    • Same month and year: Jan 2024
    • Different months, same year: Jan - Mar 2024
    • Different year: Sep 2023 - Feb 2024
  • Album cards now display the title over up to 2 lines. If the title is longer, it is cropped with an ellipsis (no change).

AlbumCard

  • "Edit Album" modal design has been slightly changed.

EditAlbumModal

Quality of Life

Album List
  • The context menu now has 4 options: Download, Edit, Share and Delete.

AlbumContextMenu

  • The context menu can now be displayed by right-clicking on an album card.
  • The context menu is now available on the list view (both Edit and Remove buttons have been removed).
  • The context menu is now available on the "Sharing" page, with only 1 option: Download.
  • The search feature now ignores accents.
Album View
  • When one and only one photo is selected, the context menu now displays the option Set as album cover.

SetAsAlbumCover

AV1 transcoding

This release adds support for the next-gen AV1 format using the SVT-AV1 encoder. AV1 promises smaller files at the same quality as the other codecs we support, especially for high resolution videos. Note that client support for AV1 is more limited, so we recommend trying it on one (server-only) video and confirming it plays before transcoding your full library with it.

New image settings

image

Before this release, all preview images were JPEG, and all thumbnails were WebP. This is now customizable, so you can set them as you like. This also paves the way for adding other formats with minimal change.

There's also a new option to use the embedded preview in RAW images instead of converting the RAW image itself. This is particularly useful if the converted images from a camera don't look quite right or if you have custom-developed previews you'd like to use instead.

Option to fill the screen with slideshows view

We added a new option in the slideshow settings to fill the screen with the slideshow view, this will give you a more immersive viewing experience.


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

⚠️ Breaking Changes

🗄️ Server

Read more