v1.92.0
Highlights
Welcome to the first Immich release of 2024, v1.92.0
. This release is packed with features, bug fixes, and improvements. Let’s dive into some of the highlights of this release.
- [BREAKING CHANGE] The welcome message for your instance is now moved to the Server Setting in the Settings section in the Administration page on the web
- Hardening storage template move operation: verify files are copied correctly when operating across filesystem boundaries
- External domain setting: allow the usage of a different domain for shared links
- Native hash calculation on iOS: significantly speeds up the initial hash calculation
- Introduce Onboarding flow for new instances: Show the admin common settings of the instance for a better user experience.
- CLI version 2.0.6 was released on npm: https://www.npmjs.com/package/@immich/cli
- Search is now working across the partner’s assets.
Hardening storage template
We have further hardened the storage template move mechanism to not leave any files in the upload
folder behind. Making the job concurrency a fixed number and performing database lock between the move jobs will resolve some outstanding issues and stabilize this core feature.
For new instances, the storage template mechanism is now disabled by default (existing instances won’t be affected). This means files uploaded to the server will be stored in the upload
folder and not moved to the library
folder. To provide a nice user experience, we added the onboarding feature, as seen below, to inform users that the storage template is disabled by default, and they can enable it before uploading any photos or videos to the instance to avoid confusion.
onboarding.mov
This is also the continued effort to add support for other storage backends, such as Amazon S3 or Backblaze B2, in the future.
External domain setting
Add the option to set the instance's "external domain" when constructing the shared link URL to copy to the clipboard.
Admin Settings
Shared Links
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.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
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.
Changelogs
Breaking Changes 🛠
Server
- fix(server, web): Prevent the user from setting a future date of birth by @MohamedFBoussaid in #5803
- fix(server): remove shared link with removed asset by @martabal in #5845
- feat(server,ml): remove image tagging by @mertalev in #5903
- chore(dev): move envs to image by @mertalev in #5906
- fix(server): run migrations after database checks by @mertalev in #5832
- fix(server): access system config before database migration complete by @alextran1502 in #5912
- fix(server): library scanning by @danieldietzler in #5951
- fix(server): strip metadata from thumbnails by @uhthomas in #4438
- chore(server): refactor locks by @mertalev in #5953
- feat(server): delete unnecessary encoded videos by @mertalev in #6027
- fix(server): Reduce the number of bound parameters in Access queries by @adamantike in #6015
- feat: storage template file move hardening by @zackpollard in #5917
- feat: storage template locking + fix for database locks by @zackpollard in #6054
- fix(server): remove archived people from explore by @martabal in #6091
- chore(server): refactor config init process by @jrasm91 in #5702
- sanitize storagelabel when creating a user #3346 by @JW-CH in #5717
- feat(server): Enqueue jobs in bulk by @adamantike in #5974
- feat(server): search across own+partner assets by @fyfrey in #5966
- feat(web,server): external domain setting by @jrasm91 in #6146
- chore(server): time bucket sql by @jrasm91 in #6156
- feat(server): add env for reverse geocoding path by @martabal in #6163
- chore(server): Clearer error message for machine learning failed request by @alextran1502 in #5914
- feat(server): in upload folder, split the files into folders based on the first four of the files uuid by @zackpollard in #6175
- fix(server): Fix incorrect sorting with search by @l0nax in #6031
- fix(server): Execute query in AlbumRepository.removeAsset method by @adamantike in #6216
- chore(server): set onboarding for existing instances by @alextran1502 in #6229
- feat(server): add rw2 support by @mertalev in #6231
- feat(server): add postgres major version check by @maxer137 in #6213
- fix(server): Split database queries based on PostgreSQL bound params limit by @adamantike in #6034
- test: small improvements to database init tests by @zackpollard in #6232
Mobile
- Localizely: Translations update by @alextran1502 in #5867
- Revert "chore(mobile): translation update (#5867)" by @alextran1502 in #5871
- fix(mobile): Fix pt-PT locale. Add missing pt-PT localizely entry by @andredasilvapinto in #5892
- fix(mobile): use proper id for gallery_viewer hero attribute by @shenlong-tanwen in #5894
- Localizely: Translations update by @alextran1502 in #5902
- Localizely: Translations update by @alextran1502 in #5960
- feat(mobile): load server result assets from local DB by @fyfrey in #5971
- fix(mobile): Fix "Live Images" and "Recently added" page by @l0nax in #6030
- chore(mobile): update en-US.json - spelling changes by @opbod in #5868
- feat(mobile): use new asset device endpoint by @jrasm91 in #6108
- refactor(mobile): use startOAuth and server features flags by @shenlong-tanwen in #6155
- refactor(mobile): Activities by @shenlong-tanwen in #5990
- (mobile): ios - calculate hash using CryptoKit by @shenlong-tanwen in #5976
- feat(mobile): multiselect for search & person page by @fyfrey in #6016
- fix(mobile): handle readonly and offline assets by @shenlong-tanwen in #5565
Web
- feat(web): bigger dialog box of location change by @waclaw66 in #5862
- fix(web): open image in new tab with memories on firefox by @martabal in #5847
- fix(web): multiple small issues on the web app by @martabal in #5875
- chore(web): redirect share page redirect to base path #5519 by @JW-CH in #5889
- fix(web): location pin by @waclaw66 in #5909
- fix(web): cannot open detail panel in public shared link by @alextran1502 in #5946
- chore(web): Use percentage sign for uploads by @adamantike in #5952
- feat(web): display age in months when age is 0 by @jpsak09 in #5961
- fix(web): "undefined" in error message when error at uploading by @RenautMestdagh in #5973
- fix(web): cancel select all by @martabal in #6047
- chore(web): migrate to vitest by @jorge-dev in #5754
- fix(web): use submit event instead of button click by @jrasm91 in #6112
- fix(web): use loading spinner instead of pulse by @martabal in #6116
- feat(web): onboarding by @alextran1502 in #6066
- feat(web): go back on the onboarding by @martabal in #6171
- feat(web): previous button for on-boarding steps by @martabal in #6178
- feat(web): auto switch theme by @martabal in #6176
CLI
- fix(cli): don't open too many files by @etnoy in #5841
- feat(cli): Allow uploading a single file by @etnoy in #5837
- feat(cli): Add existing assets to album and allow album name by @etnoy in #5838
- fix(cli): file handles by @jrasm91 in #6110
- fix(cli): add unit tests for exclusion patterns by @etnoy in #6148
- chore(cli): remove chai and unused types by @jrasm91 in #6153
Documentation
- Update README_nl_NL.md by @RenautMestdagh in #5840
- docs: fix README_ja_JP.md by @eltociear in #5939
- fix(documentation): entities path in migrations (#5985) by @mariosker in #5986
- fix(docs): update broken link by @m1yon in #6094
- docs: hardware-transcoding.md by @DCCInterstellar in #5968
- Update libraries.md - External Library step by step set up guide added by @jcianci12 in #5288
- docs: typo detial -> detail by @Mstrdav in #6135
- docs: unused geocoding env variable by @jrasm91 in #6158
- docs: Revert "Update libraries.md - External Library step by step set up guide added" by @bo0tzz in #6194
- feat(docs): Template script for 3-2-1 backup of the assets and database by @thariq-shanavas in #6026
- docs: fix typo in liberapay link by @fliiiix in #6222
- docs: Russian readme by @nomah4 in #6221
Dependency updates
- renovate: Constrain python version by @mertalev in #5904
- renovate: use in-range-only strategy for python by @mertalev in #5937
- fix(deps): update dependency pillow to v10 [security] by @renovate in #5944
- fix(deps): update machine-learning by @renovate in #5180
- chore(deps-dev): bump @babel/traverse from 7.23.0 to 7.23.6 in /web by @dependabot in #6019
- chore(deps-dev): bump @babel/traverse from 7.23.0 to 7.23.6 in /cli by @dependabot in #6020
- chore(deps): bump @babel/traverse from 7.23.0 to 7.23.6 in /docs by @dependabot in #6021
- chore(deps): pin dependencies by @renovate in #5945
- chore(deps): update base-image to v20231221 (major) by @renovate in #6029
- chore(deps): update redis:6.2-alpine docker digest to c5a607f by @renovate in #5979
- chore(deps): update base-image to v20231228 (major) by @renovate in #6095
- chore(deps): update dependency @types/supertest to v6 by @renovate in #6099
- chore(deps): update dependency eslint-plugin-unicorn to v50 by @renovate in #6100
- chore: group svelte major deps by @jrasm91 in #6104
- fix(deps): update dependency @nestjs/schedule to v4 by @renovate in #5348
- chore(deps): update @immich/cli by @renovate in #6118
- fix(deps): update docs by @renovate in #6120
- fix(deps): update server by @renovate in #6119
- chore(deps): update @immich/cli by @renovate in #6150
- fix(deps): update web by @renovate in #6152
- chore: group 'dependencies' by @jrasm91 in #6167
New Contributors
- @RenautMestdagh made their first contribution in #5840
- @andredasilvapinto made their first contribution in #5892
- @jpsak09 made their first contribution in #5961
- @mariosker made their first contribution in #5986
- @opbod made their first contribution in #5868
- @m1yon made their first contribution in #6094
- @DCCInterstellar made their first contribution in #5968
- @jcianci12 made their first contribution in #5288
- @Mstrdav made their first contribution in #6135
- @fliiiix made their first contribution in #6222
- @nomah4 made their first contribution in #6221
- @maxer137 made their first contribution in #6213
Full Changelog: v1.91.4...v1.92.0