github immich-app/immich v1.90.2

latest releases: v1.120.2, v1.120.1, v1.120.0...
11 months ago

v1.90.2

Important

Announcement (Breaking changes next release - v1.91.0)

Continuing the effort of reducing Immich's footprint, we would like to announce another planned change. Starting from the next release (not this release), we will be removing the Typesense container and changing the database image. Below are the changes that must be made in your docker-compose.yml file.

  immich-server:
  [...]
    depends_on:
      - redis
      - database
-     - typesense
    restart: always

  immich-microservices:
  [...]
    depends_on:
      - redis
      - database
-     - typesense
    restart: always

-  typesense:
-    container_name: immich_typesense
-    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
-    environment:
-      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
-      - TYPESENSE_DATA_DIR=/data
-      # remove this to get debug messages
-      - GLOG_minloglevel=1
-    volumes:
-      - tsdata:/data
-    restart: always

[...]

  database:
    container_name: immich_postgres
-   image: postgres:14-alpine@sha256:6a0e35296341e676fe6bd8d236c72afffe2dfe3d7eb9c2405c0f3fc04500cd07
+   image: tensorchord/pgvecto-rs:pg14-v0.1.11
    env_file:
      - .env
    environment:

volumes:
  pgdata:
  model-cache:
- tsdata:

Note

Note: If you are running your database with a non-superuser role for Immich, you must enable the pgvecto.rs extension manually. You can do this by connecting to the immich database as a superuser and running:

CREATE EXTENSION vectors;

Search Background

It turns out that synchronizing data between Postgres and Typesense is quite complicated. It accounts for at least an additional 1000 lines of code and, while very feature-filled, has become a burden to maintain. Also, there have been some serious memory and performance issues with Typesense, especially with large photo collections. It is lightning fast, but at the expense of large indexes that must be read from disk into memory on each restart. There have been reports of this process taking up to 30 minutes!

We effectively remove an entire class of bugs and issues by removing the need to synchronize data. Furthermore, search queries can more easily be combined with the existing database schema, like libraries, partner sharing, albums, etc. After merging #3605, we hope to be able to make significant progress around the search implementation and feature set.

In short, some of the benefits of this change include the following:

  • One less container to run, deploy, and manage
  • Better memory/system resource usage
    • Decreased memory usage
    • Faster Encode CLIP and Recognize Faces jobs
    • Faster startup time
  • Significantly less code to maintain, test, debug
  • Improved developer workflow when adding search-related functionality
  • Ability to integrate smart search into end-to-end testing for improved testing coverage and stability
  • Ability to integrate CLIP search with other (metadata) criteria in the future
  • Ability to add customizable index settings for even lower memory usage and higher performance, such as on-disk indices and quantization

Hot Fixes

There is no mobile release for this version

  • Fixed merge face panel only shows 10 people

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

  • fix(web): don't limit merge face selector to 10 people by @martabal in #5551

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

Don't miss a new immich release

NewReleases is sending notifications on new releases.