v1.133.0 #18429
Replies: 53 comments 104 replies
-
|
FINALLY! that was 3-4 week release gap |
Beta Was this translation helpful? Give feedback.
-
|
Really amazing work! Very excited to try out the new changes. |
Beta Was this translation helpful? Give feedback.
-
|
Cast feature is amazing 😍😍 |
Beta Was this translation helpful? Give feedback.
-
|
Thank you |
Beta Was this translation helpful? Give feedback.
-
|
Cast support and finally a locked folder is awesome! The performance improvements are awesome, too! Thank you! |
Beta Was this translation helpful? Give feedback.
-
|
I did not ever expect to get rickrolled reading release notes. 10/10. |
Beta Was this translation helpful? Give feedback.
-
|
You guys are cooking 🗣️🗣️🗣️ |
Beta Was this translation helpful? Give feedback.
-
|
Awesome. Congrats. 🎉 Smooth upgrade. And very quick for 15000 assets. Line 542 in 55adc13 Line 551 in 55adc13 Is that easy fixable or to be manually corrected? I guess it's fair to correct the whole line to English if it contains {}. |
Beta Was this translation helpful? Give feedback.
-
|
Awesome update! The new features just keep on rolling |
Beta Was this translation helpful? Give feedback.
-
|
Sorry- a bit new to this. In the docker compose block at the top of this- are we supposed to add all of that text? What is the meaning of the red highlights/ green highlights? |
Beta Was this translation helpful? Give feedback.
-
|
The 'locked folder', is it only one folder and cannot contain multiple albums that you don't want in your public library? If so, is multiple album locking on the table for the future? |
Beta Was this translation helpful? Give feedback.
-
|
I knew y'all been cooking when the update took a while! Amazing update! Thank you |
Beta Was this translation helpful? Give feedback.
-
|
Congrats to the team 🎆🎆 Does anyone know when the new version will ship in F-droid? |
Beta Was this translation helpful? Give feedback.
-
|
I have a question regarding locked folders: I see that several photo operations that are normally available for other photos, for example, tagging or changing descriptions don't show up for locked photos. There is one thing that I'd love to see at some point: Obviously we don't want locked photos / videos to show up in search or any of the other normal places. I'd find it very useful, though, if it was possible to do a search scoped to locked photos, only if, say, I already have the locked album unlocked and open and explicitly choose to do it - the logic being that there may be things I don't want others to easily see, but that are useful to me, and would be nice to search through them, especially if it's a lot of them in one single locked album. I get this could be tricky though. Once again, thank you all for the amazing work. It's truly a marvel of a software. |
Beta Was this translation helpful? Give feedback.
-
Hi, I am using pg16 currently, do i use a matching postgres:16 for the new update? |
Beta Was this translation helpful? Give feedback.
-
|
Guys, wonderful work. I love the new scrolling experience. |
Beta Was this translation helpful? Give feedback.
-
|
2ct feedback on locked folders: Yes serves the purpose of hiding sensetive content. But at the same time removing it completly from discovery through timeline , search or map features. I would prever a "mode" switch where when in "unlocked" state sensetive content is just shown and once "locked" marked images just dissapear. On point: sometimes i want to scroll through the image collection of the "other" images and also have "sensetive" images shown. |
Beta Was this translation helpful? Give feedback.
-
|
Incredibly how much better the performance is now on my raspberry 4B, kudos! 👏 👏 😀 |
Beta Was this translation helpful? Give feedback.
-
|
In case anybody is using CrunchyData PGO in search for an image to migrate to vectorchord https://github.com/JanPretzel/crunchydata-vectorchord |
Beta Was this translation helpful? Give feedback.
-
|
The migration worked properly, congrats to the team! I wasn't aware that newer postgres version worked, I though only 14 was supported. I was using v14 and now it seems I could use 16 or even 17. I have a couple of questions:
Is there a way to migrate the data? I haven't tried yet but would it be possible to create a backup in 14, create an empty database container with 17 and restore the backup? Is there any other option to do the upgrade? Thanks! |
Beta Was this translation helpful? Give feedback.
-
|
Immich now is super fast 🚀🚀🚀 |
Beta Was this translation helpful? Give feedback.
-
|
how about remote machine learning's postgres? My remote ML postgres config is default, such as and my main docker(immich server) is upgrade to VectorChord. Exist some necessary modification on Remote ML docker-compose? |
Beta Was this translation helpful? Give feedback.
-
|
Is it implemented to send push notifications to the mobile app? |
Beta Was this translation helpful? Give feedback.
-
|
Where can I set up a notification when adding new photos to an album? |
Beta Was this translation helpful? Give feedback.
-
|
Are these new images only required for existing installations? Can |
Beta Was this translation helpful? Give feedback.
-
|
My procedure was this:
Everything is up again! |
Beta Was this translation helpful? Give feedback.
-
|
Fyi, if you run into the error: Make sure you remove the "command" line from your docker compose: |
Beta Was this translation helpful? Give feedback.
-
|
Hi @alextran1502, thanks for the work on the locked folder! Great stuff! I was wondering if you have plans to implement folders within the locked folder in the future? It would definitely be a handy feature |
Beta Was this translation helpful? Give feedback.
-
|
While I can see my locked folder in the Android app, I can't find any way to add photos to it in the app, whereas I can on the web. Is it planned to be add this to the app? |
Beta Was this translation helpful? Give feedback.
-
|
Hi Immich team and community, While upgrading Immich from version v1.132.1 to v1.135.3 (also tested with v1.133.0 and v1.133.1), I encountered a startup failure caused by a mismatch between the VectorChord extension version activated in the database and the version available in the Postgres container. 🔍 Issue Summary The microservices worker immediately exited and killed the API process. Here’s an excerpt from the logs: 📜 Full Log Extract ✅ Temporary Solution
to:
This fixed the compatibility issue and allowed Immich to start correctly. 📦 Docker Compose Snippet ❓ Questions for the Team and Community
Thanks for your awesome work on Immich – and for any insights you can provide on this! Best regards |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
v1.133.0 - The Hot Summer Release
Caution
BREAKING CHANGES
Mobile app version
Please make sure to have the mobile app and the server on the same version for this release. Older versions of the mobile app will not work correctly with version
v1.133.0of the server. At the time of this release, the updated version of the mobile app should be available on the app stores.Upgrading the server from a very old release
As of 1.133.0, Immich only supports upgrading directly from 1.107.2 or later. If you’re trying to upgrade a version of Immich below this, please upgrade to 1.107.2 first and ensure Immich starts up successfully before continuing to the latest release.
New database vector extension
We are migrating off the deprecated pgvecto.rs database extension to its successor VectorChord, which comes with performance improvements in almost all aspects. This change is a major milestone we want to perform prior to the stable release.
Before making any other changes, please back up your database. While every effort has been made to make this migration as smooth as possible, there’s always a chance that something can go wrong.
After making a backup, please modify your
docker-compose.ymlfile with the following information.[...] database: container_name: immich_postgres - image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 + image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' + # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs + # DB_STORAGE_TYPE: 'HDD' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data - healthcheck: - test: >- - pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; - Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align - --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; - echo "checksum failure count is $$Chksum"; - [ "$$Chksum" = '0' ] || exit 1 - interval: 5m - start_interval: 30s - start_period: 5m - command: >- - postgres - -c shared_preload_libraries=vectors.so - -c 'search_path="$$user", public, vectors' - -c logging_collector=on - -c max_wal_size=2GB - -c shared_buffers=512MB - -c wal_compression=on restart: always [...]If you deviated from the defaults of pg14 or pgvectors0.2.0, you must adjust the pg major version and pgvecto.rs version. If you are still using the default
docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0image, you can just follow the changes above. For example, if the previous image isdocker.io/tensorchord/pgvecto-rs:pg16-v0.3.0, the new image should beghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0instead of the image specified in the diff.After making these changes, you can start Immich as normal. Immich will make some changes to the DB during startup, which can take seconds to minutes to finish, depending on hardware and library size. In particular, it’s normal for the server logs to be seemingly stuck at
Reindexing clip_indexandReindexing face_indexfor some time if you have over 100k assets in Immich and/or Immich is on a relatively weak server. If you see these logs and there are no errors, just give it time.Important
Note: after switching to VectorChord, you should not downgrade Immich below 1.133.0.
Please don’t hesitate to contact us here on GitHub or Discord if you encounter migration issues.
VectorChord FAQ
I have a separate PostgreSQL instance shared with multiple services. How can I switch to VectorChord?
Please see https://immich.app/docs/administration/postgres-standalone#migrating-to-vectorchord for migration instructions. The migration path will be different depending on whether you’re currently using pgvecto.rs or pgvector, as well as whether Immich has superuser DB permissions.
What will happen if I upgrade Immich to 1.133.0 without changing the DB image?
Immich will auto-detect the vector extension available in the DB and continue to work without manual intervention. However, we will drop support for pgvecto.rs in a later release, so please switch at your convenience.
I’m using a different deployment method than Docker Compose. How should I migrate?
If you’re using Immich through turnkey deployment methods such as TrueNAS apps, the respective maintainers will either perform the migration transparently or inform you of what to do if not.
Why are so many lines removed from the
docker-compose.ymlfile? Does this mean the health check is removed?These lines are now incorporated into the image itself along with some additional tuning.
What does this change mean for my existing DB backups?
The new DB image includes pgvector and pgvecto.rs in addition to VectorChord, so you can use this image to restore from existing backups that used either of these extensions. However, backups made after switching to VectorChord require an image containing VectorChord to restore successfully.
Do I still need pgvecto.rs installed after migrating to VectorChord?
pgvecto.rs only needs to be available during the migration, or if you need to restore from a backup that used pgvecto.rs. For a leaner DB and a smaller image, you can optionally switch to an image variant that doesn’t have pgvecto.rs installed after you’ve performed the migration and started Immich:
ghcr.io/immich-app/postgres:14-vectorchord0.3.0, changing the PostgreSQL version as appropriate.Why does it matter whether my database is on an SSD or an HDD?
These storage mediums have different performance characteristics. As a result, the optimal settings for an SSD are not the same as those for an HDD. Either configuration is compatible with SSD and HDD, but using the right configuration will make Immich snappier. As a general tip, we recommend users store the database on an SSD whenever possible.
Can I use the new database image as a general PostgreSQL image outside of Immich?
It’s a standard PostgreSQL container image that additionally contains the VectorChord, pgvector, and (optionally) pgvecto.rs extensions. If you were using the previous pgvecto.rs image for other purposes, you can similarly do so with this image.
If pgvecto.rs and pgvector still work, why should I switch to VectorChord?
VectorChord is faster, more stable, uses less RAM, and (with the settings Immich uses) offers higher-quality results than pgvector and pgvecto.rs. This translates to better search and facial recognition experiences. In addition, pgvecto.rs support will be dropped in the future, so changing it sooner will avoid disruption.
Highlights
Welcome to the release
v1.133.0of Immich, which is the hottest release yet for this summer, with more than 200 commits since the last version. This version brings you a new database extension, an even more optimized and faster timeline, more unified components on the web, some cool new features that have been requested for a long time, and many bug fixes and improvements. Let’s dive in!TOKEN_ENDPOINT_AUTH_METHODto eitherclient_sect_postorclient_secret_basicafter entering theCLIENT_SECRETIn-app notification
Introducing an in-app, or internal, notification system. Previously, there was no way to notify you on the client if a database backup failed. Now, the failed backup will show up under a new notification section on the web. This mechanism paves the way for other helpful notifications, such as when a new album is shared with you or when new assets are added to a shared album, directly in the app.
Show map in albums view
On the web, you can now click this button to see the map view that shows the location of all the photos and videos in an album.
Locked folder
Have you ever taken embarrassing selfies that you don’t want anyone to see, and worry that you could accidentally reveal them while showcasing your superb Immich library? Locked folder view got you covered, with a personal PIN code, and an option to use biometric verification on the mobile app. You can access the page from the sidebar on the web or in the
Librarypage on the applocked-web-demo-cut.mp4
You can select any assets and add them to the locked folder. They will only be shown in the locked folder view.
Google Cast Support
We now have casting support! Immich now supports casting to Google Cast enabled devices like the Google Chromecast. This feature is currently only available on the web, with mobile app support coming in the near future. You can use images, videos and slideshows with casting.
Note
Your Immich instance must be accessed through a public HTTPS endpoint in order for the casting device to successfully load media. Accessing the instance and casting from a private HTTPS endpoint (or an HTTP endpoint) will result in the cast receiver failing to load any media.
User detail page
From the user management page of the admin view, you can now get a more in-depth view of individual users for their information, usage statistics, and which features they have enabled, etc, by clicking on the email from the user’s table
RTL text support on the web
The web styling has been changed to accommodate RTL languages
Performance improvement in web timeline
Last time, we discussed thinking that the timeline performance has reached its prime and that adding more gains would be difficult. In this release, we managed to squeeze that gain like a ripe orange.
The timeline will automatically cancel the requests to the server when you scroll very fast, displaying the thumbnails instantaneously when the scrolling stops. Previously, the web needed to finish the requests for the thumbnails being scrolled by, even if they are not displayed on the viewport. This change significantly reduces the load time.
An additional optimization has been made to reduce the data packet for each thumbnail to about 30% of its original size. This optimization contributes to a greater loading speed on the timeline.
We hope you enjoy these impressive improvements.
Sneak Peak
Besides the cool features and enhancements that made their way into the application, along with many bug fixes, our highest priority at the moment is moving toward the stable release. A big chunk of time and dedication from the team is now spent on improving the mobile app synchronization system, basically rewriting the flow and designing the data model from the ground up. At the same time, we’re working to properly allocate CPU-intensive tasks to background threads to avoid app stuttering and jerkiness when the data sync between the server and the mobile app happens.
Below is the chart result comparing the local album sync between the current version and the reworked version.
Current version

Improved version

We are working hard to get it into the application in the coming months and are very excited about this new improvement.
Cheers!
The Immich Team
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or purchase our merchandise at https://immich.store
What's Changed
🚨 Breaking Changes
🚀 Features
🌟 Enhancements
🐛 Bug fixes
duplicateIdis provided asnullby @TitanNano in fix: update assets whenduplicateIdis provided asnull#18071📚 Documentation
🌐 Translations
New Contributors
duplicateIdis provided asnull#18071Full Changelog: v1.132.3...v1.133.0
This discussion was created from the release v1.133.0.
Beta Was this translation helpful? Give feedback.
All reactions