Immich
High performance self-hosted photo and video management solution
Alternative to: google photos, apple photos, amazon photos
v1.132.0
2025-04-23v1.132.0
Highlights
[!NOTE]
We are now using Valkey’s image for the Redis service in the default docker-compose.yml template. This is not a required change. If you wish to use it, you can download thedocker-compose.ymlfile at the bottom of the release notes and replace the redis image with the new one.
Welcome to version v1.132.0 of Immich.
This release marks an exciting milestone, inching one step closer to the stable release. The server no longer relies on TypeORM (database object-relational mapping); from this point forward, we utilize our own schema and migration management tool, integrated with Kysely. Related, the mobile app will also begin to use a new database, SQLite. Over the next few releases, we plan to roll out a new, efficient sync implementation using SQLite, which should improve startup time and reduce jankiness, especially when working with large media collections.
In addition to the two milestones mentioned above, this release also features new enhancements, bug fixes, and other notable additions. Please see the highlights below.
- Opt-in web-mobile delete action synchronization on Android
- Improve web responsive design on mobile devices
- Migrate mobile app translations to Weblate
- Improve mobile app map performance
Opt-in web-mobile delete synchronization (Android only)
This update includes a new, optional feature currently in an experimental phase. It aims to synchronize deletion actions between the Immich web interface and your connected Android device.
If you choose to enable this feature (Settings > Advanced > Sync remote deletion), trashing, deleting, or restoring a photo or video through the Immich web interface will result in the corresponding action being taken on the file on your Android phone. This functionality is intended to prevent the need to perform the same trash action separately on both Immich and your phone.
When this feature is active, the sequence of events is as follows:
- Your photos get backed up from your phone to Immich.
- Later, you use the Immich website to trash some of those photos.
- The next time you open the Immich app on your phone, the app will find those photos you trashed on the website and move them to your phone’s trash folder for you.
- If you choose to restore the asset from Immich’s trash, it will also be moved out of your phone’s trash folder.
Note: The location of the phone’s trash folder varies by device. For example, Samsung devices often use the Gallery app’s trash, while Google Pixel devices may use the Files app’s trash.)
Improve web responsive design on mobile devices.
This release makes significant improvements to the browsing experience of the web app on mobile devices. The sidebar is now collapsible, leaving more space to view the timeline. We’ve also changed the size of the images in the timeline on mobile, with the hope of making more images visible at once.
Mobile app translations have been migrated to Weblate.
The i18n on the mobile app, previously managed with Localizely, has now been migrated to Weblate. Anyone can help with translation without needing to obtain an invitation from us.
Along with those changes, we have made many more improvements to the quality of the server, web, and mobile app. We hope you enjoy those as well.
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
- refactor: notification-admin controller by @jrasm91 in https://github.com/immich-app/immich/pull/17748
🔒 Security
- fix: various actions workflow security improvements by @bo0tzz in https://github.com/immich-app/immich/pull/17651
- feat: static analysis job for gha workflows by @bo0tzz in https://github.com/immich-app/immich/pull/17688
🚀 Features
- feat(web): expand/collapse sidebar by @ben-basten in https://github.com/immich-app/immich/pull/16768
- feat(mobile): sqlite by @shenlong-tanwen in https://github.com/immich-app/immich/pull/16861
- feat(server): Avoid face match with people born after file creation #4743 by @abhinav96 in https://github.com/immich-app/immich/pull/16918
- feat: opt-in sync of deletes and restores from web to Android by @aleksandrsovtan in https://github.com/immich-app/immich/pull/16732
- feat(server): read additional lens exif tags by @Snowknight26 in https://github.com/immich-app/immich/pull/17125
- feat: sync pictureFile with oidc if it isn’t set already by @Etienne-bdt in https://github.com/immich-app/immich/pull/17397
- feat: view qr code from share modal by @jrasm91 in https://github.com/immich-app/immich/pull/17544
- feat(mobile): use Weblate for i18n (1) by @alextran1502 in https://github.com/immich-app/immich/pull/17609
- feat: user sync stream by @shenlong-tanwen in https://github.com/immich-app/immich/pull/16862
🌟 Enhancements
- feat: allow accounts with a quota of 0 GiB by @rubenhensen in https://github.com/immich-app/immich/pull/17413
- feat(web): improve individual share ux by @devsnek in https://github.com/immich-app/immich/pull/17430
- feat: use browser download manager for single file downloads by @ROODAY in https://github.com/immich-app/immich/pull/17507
- feat: show thumbhash behind load error, if possible by @midzelis in https://github.com/immich-app/immich/pull/17554
- feat: responsive: skeleton by @midzelis in https://github.com/immich-app/immich/pull/17553
- feat: responsive-web: shrink mem-lane by @midzelis in https://github.com/immich-app/immich/pull/17550
- chore(mobile): small visual fix and update by @alextran1502 in https://github.com/immich-app/immich/pull/17547
- feat(server): parse EXIF creation time for some insta360 images by @Kirens in https://github.com/immich-app/immich/pull/17564
- perf(mobile): optimize date loading with batch loading by @andreymir in https://github.com/immich-app/immich/pull/17240
- feat: responsive controlbar by @midzelis in https://github.com/immich-app/immich/pull/17601
- refactor(server): remove asset placeholder by @etnoy in https://github.com/immich-app/immich/pull/17621
- chore(server): don’t check null dates by @etnoy in https://github.com/immich-app/immich/pull/17664
- feat(mobile): search on places page by @YarosMallorca in https://github.com/immich-app/immich/pull/17679
- feat(mobile): map improvements by @YarosMallorca in https://github.com/immich-app/immich/pull/17714
- feat: add album start and end dates for storage template by @exciton in https://github.com/immich-app/immich/pull/17188
- perf(mobile): remove load of thumbnails in the image provider by @EinToni in https://github.com/immich-app/immich/pull/17773
- perf(mobile): remove small thumbnail and cache generated thumbnails by @EinToni in https://github.com/immich-app/immich/pull/17792
🐛 Bug fixes
- fix(web): fix thumbnail hover link position by @Snowknight26 in https://github.com/immich-app/immich/pull/16762
- fix(web): use original image if web compatible by @mertalev in https://github.com/immich-app/immich/pull/17347
- refactor(mobile): device asset entity to use modified time by @shenlong-tanwen in https://github.com/immich-app/immich/pull/17064
- fix(mobile): bump isar maxSize by @shenlong-tanwen in https://github.com/immich-app/immich/pull/17372
- fix: reset memories on logout by @danieldietzler in https://github.com/immich-app/immich/pull/17405
- fix(web): Video memories are played at 100% volume instead of respecting user preference by @Zlendy in https://github.com/immich-app/immich/pull/17424
- fix(mobile): prevent unnecessary reload on multi user timeline by @shenlong-tanwen in https://github.com/immich-app/immich/pull/17418
- fix(mobile): video player restarting when device rotates by @Sese-Schneider in https://github.com/immich-app/immich/pull/17362
- fix(mobile): items not deselecting on back button by @YarosMallorca in https://github.com/immich-app/immich/pull/17403
- fix(mobile): use custom filter to fetch asset path entities by @shenlong-tanwen in https://github.com/immich-app/immich/pull/17344
- fix(mobile): exifInfo not updated on sync by @shenlong-tanwen in https://github.com/immich-app/immich/pull/17407
- fix(server): Exclude album assets in shared link payload by @mPyKen in https://github.com/immich-app/immich/pull/17207
- fix(mobile): hide asset description text field if user is not owner by @gaganyadav80 in https://github.com/immich-app/immich/pull/17442
- fix: broken start/end dates on album update by @danieldietzler in https://github.com/immich-app/immich/pull/17467
- fix(mobile): adds support for Internationalized Domain Name (IDN) by @gaganyadav80 in https://github.com/immich-app/immich/pull/17461
- fix: no thumbnail generated for motion assets by @alextran1502 in https://github.com/immich-app/immich/pull/17472
- fix(mobile): asset grid will infinitely scroll on iOS when select and… by @gaganyadav80 in https://github.com/immich-app/immich/pull/17469
- fix: patch-package install in docker build and better postgres patch by @bwees in https://github.com/immich-app/immich/pull/17523
- fix: test_sets_default_sess_options fails if compiling with globally enabled cuda by @Pleune in https://github.com/immich-app/immich/pull/17516
- fix(web): mobile view double scroll layer by @alextran1502 in https://github.com/immich-app/immich/pull/17528
- fix(web): reset search history after logout by @ben-basten in https://github.com/immich-app/immich/pull/17534
- fix(mobile): remove locate asset button from trashed asset by @YarosMallorca in https://github.com/immich-app/immich/pull/17503
- fix: live photo hiding by @danieldietzler in https://github.com/immich-app/immich/pull/17548
- fix: responsive: long press while scroll by @midzelis in https://github.com/immich-app/immich/pull/17555
- fix: occasional empty buckets, after canceled loads by @midzelis in https://github.com/immich-app/immich/pull/17552
- fix(web): search bar deactivates when focus exits by @ben-basten in https://github.com/immich-app/immich/pull/17549
- fix: read longitude and latitude when reverse geocoding is off by @atollk in https://github.com/immich-app/immich/pull/17558
- fix: responsive: timeline glitch and keyboard-accessible scrubber by @midzelis in https://github.com/immich-app/immich/pull/17556
- fix(web): improve mobile web album viewer padding by @aamirazad in https://github.com/immich-app/immich/pull/17575
- fix(mobile): exif not updated on sync by @shenlong-tanwen in https://github.com/immich-app/immich/pull/17633
- fix: skip places that no longer exist in geo import by @darookee in https://github.com/immich-app/immich/pull/17637
- fix: use IMMICH_HOST in microservices by @yparitcher in https://github.com/immich-app/immich/pull/17659
- fix(web): map marker positioning in details pane by @YarosMallorca in https://github.com/immich-app/immich/pull/17754
- fix(mobile): use immutable cache keys for local images by @lukaszwawrzyk in https://github.com/immich-app/immich/pull/17794
- fix: cache build versions by @zackpollard in https://github.com/immich-app/immich/pull/17811
- fix: retrieve version from lockfile and fallback to cli command by @zackpollard in https://github.com/immich-app/immich/pull/17812
📚 Documentation
- docs: fixed a wrong path in CLI docs page by @l0ll098 in https://github.com/immich-app/immich/pull/17369
- fix: restore mangled footnotes by @bo0tzz in https://github.com/immich-app/immich/pull/17446
- docs: Add PowerShell example for running web client only by @ROODAY in https://github.com/immich-app/immich/pull/17546
- chore(doc): translation instruction for mobile app by @alextran1502 in https://github.com/immich-app/immich/pull/17629
- chore: add immich-cli docker example by @ppuschmann in https://github.com/immich-app/immich/pull/17595
- fix(docs): Database dump warnings by @mmomjian in https://github.com/immich-app/immich/pull/17676
- feat(docs): documentation update by @aviv926 in https://github.com/immich-app/immich/pull/17720
- docs: updated community-projects.tsx: lrc-immich-plugin by @bmachek in https://github.com/immich-app/immich/pull/17801
🌐 Translations
- chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/17254
- feat(mobile): remove duplicated i18n file by @AutisticShark in https://github.com/immich-app/immich/pull/17591
- chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/17438
- chore(web): cleanup unused translations by @weblate in https://github.com/immich-app/immich/pull/17624
- chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/17627
- chore(web): update translations by @weblate in https://github.com/immich-app/immich/pull/17808
New Contributors
- @rubenhensen made their first contribution in https://github.com/immich-app/immich/pull/17413
- @devsnek made their first contribution in https://github.com/immich-app/immich/pull/17430
- @aleksandrsovtan made their first contribution in https://github.com/immich-app/immich/pull/16732
- @ROODAY made their first contribution in https://github.com/immich-app/immich/pull/17507
- @Pleune made their first contribution in https://github.com/immich-app/immich/pull/17516
- @Kirens made their first contribution in https://github.com/immich-app/immich/pull/17564
- @atollk made their first contribution in https://github.com/immich-app/immich/pull/17558
- @AutisticShark made their first contribution in https://github.com/immich-app/immich/pull/17591
- @EinToni made their first contribution in https://github.com/immich-app/immich/pull/17594
- @andreymir made their first contribution in https://github.com/immich-app/immich/pull/17240
- @ppuschmann made their first contribution in https://github.com/immich-app/immich/pull/17595
- @darookee made their first contribution in https://github.com/immich-app/immich/pull/17637
- @exciton made their first contribution in https://github.com/immich-app/immich/pull/17188
Full Changelog: https://github.com/immich-app/immich/compare/v1.131.3…v1.132.0