github immich-app/immich v1.51.0

latest releases: v1.107.2, v1.107.1, v1.107.0...
15 months ago

v1.51.0

Breaking Changes 🚨

This release added a new container to Immich's ecosystem, namely Typesense. Please update your docker-compose.yml file to include the new container and .env file to have the new environment variable, which is TYPESENSE_API_KEY=some-random-text, TYPESENSE_API_KEY is a requirement for Typesense container to spin up, you can use any text for the key, the server will use that value to create a client to communicate with the Typesense container.

Please make sure to have your server and mobile app on the same version so that the app can work correctly.

Typesense container is required for now, but we plan to make it optional with the fallback of using Postgres full-text search for the searching mechanism.

  immich-server:
    depends_on:
      ...  
      - typesense
   
  immich-microservices:
    ...  
    depends_on:
      ...
      - typesense
  
  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.0
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
    logging:
      driver: none
    volumes:
      - tsdata:/data

[...]

volumes:
  pgdata:
  model-cache:
  tsdata:

Please ensure to add typesense to the depend_on section of the immich-server and immich-microservices containers.

Highlighted

This is one of the more extended release breaks (a total of 53 pull requests were merged) that we've had for a while due to some large items that we've been working on, such as:

Integrating Typesense and CLIP for a better search system

As mentioned in the previous releases, we want a better search system. As Immich aims to be a fully featured Google Photos alternative, we want to provide you with the best search experience possible. We've been working on integrating Typesense and CLIP into Immich to provide you with a top-notch searching experience for your larger libraries.

We chose Typesense for its open-source nature, attractive features, and self-hosting capability.

We chose CLIP for its ability to search for images based on their content rather than their metadata. So you can do something like this:

SCR-20230320-fyi-2

SCR-20230320-fz6

The CLIP embedding data is a new column in the database. To get that info for your previously uploaded assets, please consider running the ENCODE CLIP job in the admin’s job panel

image

We will continue to iterate and improve the search feature in the subsequent releases. We would appreciate any feedback about the initial implementation - what works well and what areas could be improved.

Note: The mobile app does not incorporate this feature yet. It is only applicable to the web in this release.

Allow the mobile app to work offline without an internet connection or when the server is down.

Previously, when the server was down, or your phone didn't have an internet connection, tapping on anything in the mobile app would send you back to the login screen. This is because the mobile app couldn’t retrieve any data from the server. We've added a new feature that allows the mobile app to work offline, so you can still view your photos and videos cached or stored on your device even when the server is down or you don't have an internet connection.

In addition, when viewing photos and videos residing on your device, these are no longer loaded from the server but directly from the device. This reduces your mobile data usage and increases the loading speed of thumbnails while scrolling the timeline.

This has been a more significant feature that required a lot of refactoring from @fyfrey over many months-long processes. We're pleased to be able to release this feature to you finally.

As in other releases, we've also added many smaller features and bug fixes, so please check out the full changelog below.

Thank you

I want to thank everyone who contributed to this release, especially @fyfrey for the huge amount of work he put into the offline mode feature, @jrasm91 and @zackpollard for the refactoring of the server and the integration of the new search system, @martyfuhry for improving the UI/UX of the mobile app, @michelheusschen for improving the web code base and consistency, @bo0tzz for the never-ending stream of CI/CD improvement and answering questions on Discord, and all the new contributors who spared some of their free time to contribute to the project.

This project is for the community, and from the community, I am honored to be a part of it.


As always, please consider supporting the project.

🎉 Cheer! 🎉

Support

If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsors

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 App

  • feat(mobile): Enter server first for login by @martyfuhry in #1952
  • feature(mobile): sync assets, albums & users to local database on device by @fyfrey in #1759
  • fix(mobile): Fixes hero animation on main timeline by @martyfuhry in #1924
  • fix(mobile): iOS backup debug info tile only shown in iOS by @martyfuhry in #1951
  • feat(mobile): Transparent bottom Android navigation bar by @martyfuhry in #1953
  • fix(mobile): do not crash on malformed asset duration by @fyfrey in #1921
  • fix(mobile): Gallery viewer fullscreen edge case by @martyfuhry in #1959
  • fix(mobile): Sorted shared album and added share user doesn't reflect change in album view by @alextran1502 in #1955
  • fix(mobile): add isar source code as a git submodule for F-Droid build by @fyfrey in #1985
  • fix(mobile): Fix iOS login layout issue by @martyfuhry in #2004
  • feature(mobile): allow app to be used offline by @fyfrey in #1932
  • chore(mobile): remove integration test temporarily by @alextran1502 in #2008
  • feature(mobile): no longer wait for background backup in settings by @fyfrey in #1984
  • feat(mobile): Share album name and adaptive shared album display by @martyfuhry in #2017
  • feat(mobile): persist album sort order by @truedem0n in #1997
  • fix(mobile): proper syncing with Recents album on iOS

Web

Others

  • chore(docs): add missing space in version_announcement_overlay_text_2 for ru-RU locale by @brighteyed in #1919
  • chore(deps): bump docker/setup-buildx-action from 2.4.1 to 2.5.0 by @dependabot in #1976
  • chore(docs): added note on scope of redis optional parameters in example.env by @DragosRotaru in #1974
  • chore(docs): Document how photo dates are determined by @twitsforbrains in #1978
  • chore(docs): Document fallback timezone setting (fixes #2000) by @etnoy in #2003
  • chore(docs): Document cli path parameter change by @etnoy in #2011
  • chore: Move away from docker hub where possible by @bo0tzz in #2006

New Contributors

Full Changelog: v1.50.1...v1.51.0

Don't miss a new immich release

NewReleases is sending notifications on new releases.