github immich-app/immich v1.102.0
v1.102.0 - 30,000 Stars Release 🌟

latest releases: v1.105.1, v1.105.0, v1.104.0...
one month ago

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

  • fix(server): image config not being updated by @mertalev in #8579
  • chore(server): better typing for system config key by @mertalev in #8580
  • fix(server): x264/x265 params not being set correctly by @mertalev in #8587
  • fix(server): hevc tag being set when copying a non-hevc stream by @mertalev in #8582
  • feat(server,web): configure image format by @mertalev in #8581
  • fix: npm i on Windows … by @jellemdekker in #8619
  • fix(server): delete thumbnail for readonly asset by @Ynng in #8593
  • fix(server): remove isWatched from DTO by @danieldietzler in #8598
  • chore(server): remove unused method by @jrasm91 in #8639
  • fix(server): require asset permission when creating an album with them by @danieldietzler in #8686
  • Add AV1 transcoding support by @n00mkrad in #8491
  • fix(server): prevent cross-library motion photo linking, made getByChecksum library specific by @Ynng in #8719
  • fix(server): link motion photo with existing video asset by @Ynng in #8724
  • fix(server): external library motion photo video asset handling by @Ynng in #8721
  • (server) Allow setting the host address for the server & microservices by @yparitcher in #8800
  • feat(server): correlation id via injected logger by @jrasm91 in #8823
  • chore: cleanup library watching by @jrasm91 in #8835
  • feat(server): efficient full app sync by @fyfrey in #8755
  • chore: migrate to vitest by @jrasm91 in #7156
  • chore(server): delete swap file by @jrasm91 in #8856
  • Migrate ImmichLogger over to injected ILoggerRepository by @iamamansharma in #8855
  • fix(server): correlationId by @jrasm91 in #8858
  • feat(server): logging interceptor by @jrasm91 in #8859
  • fix(server): storage usage calculation for motion photos by @Ynng in #8722
  • refactor(server): immich-admin list-users by @jrasm91 in #8862
  • fix(server): include archived images in face detection by @mertalev in #8892
  • fix(server): skip invisible assets for thumbnail generation and ml by @mertalev in #8891
  • refactor(server): sessions by @jrasm91 in #8915
  • refactor(server): cookies by @jrasm91 in #8920
  • feat(server): use embedded preview from raw images by @mertalev in #8773

📱 Mobile

🖥️ Web

⚡ CLI

  • feat(cli): Implement logic for --skip-hash by @pedrxd in #8561

📓 Documentation

🔨 Maintenance

Other changes

New Contributors

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

Don't miss a new immich release

NewReleases is sending notifications on new releases.