feat(server): Option to configure SMTPS transport#22833
feat(server): Option to configure SMTPS transport#22833jrasm91 merged 6 commits intoimmich-app:mainfrom
Conversation
2f7cd84 to
ee6657e
Compare
|
Does the secure flag ever get passed to the email transport? I couldn't seem to find if that happens. |
|
@caburum that's an excellent call. I was actually looking that up, then got distracted, and then forgot about it again 😅. |
This commit adds a boolean option in the SMTP transport configuration to enable the so-called "secure" mode. What it does is use SMTP over TLS instead of relying on the more common STARTTLS option over plain SMTP.
ee6657e to
2844fbb
Compare
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/immich-app/immich-server](https://github.com/immich-app/immich) | minor | `v2.1.0` -> `v2.2.1` | --- ### Release Notes <details> <summary>immich-app/immich (ghcr.io/immich-app/immich-server)</summary> ### [`v2.2.1`](https://github.com/immich-app/immich/releases/tag/v2.2.1) [Compare Source](immich-app/immich@v2.2.0...v2.2.1) <!-- Release notes generated using configuration in .github/release.yml at v2.2.1 --> #### What's Changed ##### 🐛 Bug fixes - fix(mobile): regression - not displayed activity button in top bar by [@​idubnori](https://github.com/idubnori) in [#​23366](immich-app/immich#23366) - fix: asset copy validation error by [@​danieldietzler](https://github.com/danieldietzler) in [#​23387](immich-app/immich#23387) - fix(ml): ocr failing with rootless docker by [@​mertalev](https://github.com/mertalev) in [#​23402](immich-app/immich#23402) - fix(mobile): video seeking on android by [@​mertalev](https://github.com/mertalev) in [#​23405](immich-app/immich#23405) - fix: button condition rendering by [@​alextran1502](https://github.com/alextran1502) in [#​23400](immich-app/immich#23400) - fix: view in timeline does not jump to the timeline correctly by [@​alextran1502](https://github.com/alextran1502) in [#​23428](immich-app/immich#23428) - fix: show close button on purchase modal by [@​alextran1502](https://github.com/alextran1502) in [#​23436](immich-app/immich#23436) ##### 📚 Documentation - chore: update android signing fingerprints to docs by [@​luneth](https://github.com/luneth) in [#​23361](immich-app/immich#23361) ##### 🌐 Translations - chore(web): update translations by [@​weblate](https://github.com/weblate) in [#​23375](immich-app/immich#23375) #### New Contributors - [@​luneth](https://github.com/luneth) made their first contribution in [#​23361](immich-app/immich#23361) **Full Changelog**: <immich-app/immich@v2.2.0...v2.2.1> ### [`v2.2.0`](https://github.com/immich-app/immich/releases/tag/v2.2.0) [Compare Source](immich-app/immich@v2.1.0...v2.2.0) ### v2.2.0 *The month following our [stable release ](https://immich.app/blog/stable-release)**🎉** has flown by! We are blown away by the support from everyone around this milestone, especially for the [Retro DVD ](https://immich.store/products/immich-retro)**📀**! If you want to get one for yourself, you still can, but once this batch is gone, we won’t be making any more, **EVER!** So get one while you can from [immich.store](https://immich.store/)!* <img width="2292" height="209" alt="image" src="https://github.com/user-attachments/assets/3829caef-8674-4ab0-a0d0-954c317e8987" /> #### Highlights Welcome to version `v2.2.0` of Immich. This release comes with the traditional Immich fashion, where the features and enhancements list is longer than the bug fixes list. Let’s dive right into the highlights of this exciting release - New mutable Docker tag for `v2` versions - Optical Character Recognition (OCR) - \[Web] Wasm implementation for justified layout calculation 🦀 - \[Web] UI improvement for the review duplicates screen - \[Mobile] Show albums in the asset’s detail sheet - \[Mobile] Show similar photos - \[Mobile] Chat-style for activity view - \[Mobile] High precision seeking for video - \[Mobile] New UI to present server-client version mismatch - Option to create a new user as an admin - Notable fix: older iOS devices freeze when spawning background tasks - Notable fix: temporary files on iOS are now cleaned up properly ##### Docker tag for `v2` versions The `example.env` file has been updated to use `IMMICH_VERSION=v2`, which is a mutable Docker tag that points to the latest `2.x.x` release image. ##### Optical Character Recognition (OCR) OCR search has been one of the most requested features on our users' wishlists. Thanks to the fantastic work of [@​flipped-1121](https://github.com/flipped-1121) and [@​mertalev](https://github.com/mertalev), Immich can now recognize texts in images, adding a powerful capability to its already powerful search features. This will help users find lost family recipes or a crypto wallet’s passphrase more easily. The OCR pipeline is integrated into the existing machine learning flow. For new uploads, it will run automatically with the existing machine learning flow. For existing setups, you can go to `Administration > Job > Click on “All” for OCR job` to extract OCR information for your gallery <p align="center"> <img width="800" alt="image" src="https://github.com/user-attachments/assets/ece151cf-4268-406a-a68f-ce3c9c869c15" /> </p> To search for letters in photos, a new radio button has been added to the search type on the web app, and in the dropdown list on the mobile app. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/adb161c8-717d-4030-b5eb-4f3cfef11a96" /> </p> OCR currently has official support for English, Chinese (Simplified), Chinese (Traditional) and Japanese text. Languages using Latin script generally work as well, but may have lower accuracy or interpret characters without the diacritics. ##### \[Web] Wasm implementation for justified layout calculation 🦀 This release comes with a blazing-fast re-implementation of the justified layout on the web, which makes calculating the size of the thumbnails in each bucket several times faster, significantly improving the rendering performance for a large bucket, i.e., 10s of thousands of assets in a single month ##### \[Web] UI improvement for the review duplicates screen To help you decide which asset to keep in a group of duplicates, more information has been added to the info section below each asset, including date/time, location, and the number of albums the asset is in. The info section has been redesigned to make scanning the information faster, with different properties getting highlighted. We will keep improving on this interface to make it more intuitive <p align="center"> <img width="800" alt="image" src="https://github.com/user-attachments/assets/0bee8443-b44e-4264-a4ab-36a99cef4596" /> </p> ##### \[Mobile\] Show albums in the asset’s detail You can view and navigate to the albums that the asset belongs to in the info sheet <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/96bb194a-cc54-478b-9958-b6e8eea9b03c" /> </p> ##### \[Mobile\] Show similar photos The popular feature “Show similar photos” has made its way to the mobile app. You can use the button in the detail sheet to find similar images to the one you are viewing. <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/45cb751d-da22-4fe8-bc47-406dbb9c9cfc" /> </p> ##### \[Mobile\] Chat-style for album activity view The album’s activity view now displays the messages and actions in a chat-style view, making it easier to follow <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/a5a8a4aa-ebbe-4282-844b-27e9df14a529" /> </p> ##### \[Mobile\] High precision seeking for video The progress bar of the video player now has higher precision duration handling. This makes seeking much more fluid than before, as well as making position updates in the progress bar smooth, rather than jumping from second to second. ##### \[Mobile] New UI to present server-client version mismatch As we are now in the stable-era, we want to make the notification of a new version more subtle, less distracting. The update message and icon’s color on the mobile app have been redesigned for that purpose. When your server version is older than the available one, a message with a clickable link is displayed, directing you to the latest release notes. When your mobile app version is older than the one available on the App Store, a message with a clickable link appears, directing you to the App Store to perform the update. | Server update | App update | | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | <img width="300" alt="image" src="https://github.com/user-attachments/assets/c136aab6-ef39-4769-ab35-b6719b188ed5" /> | <img width="300" height="2340" alt="image" src="https://github.com/user-attachments/assets/3bead2e2-f202-48b8-9164-c5c29c999434" /> | #### Support Immich <p align="center"> <img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!"> </p> If you find the project helpful, you can support Immich by purchasing a product key at <https://buy.immich.app> or our merchandise at <https://immich.store> <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🔒 Security - fix(server): bump valkey to 8 by [@​mmomjian](https://github.com/mmomjian) in [#​22911](immich-app/immich#22911) ##### 🚀 Features - feat(ml): coreml by [@​mertalev](https://github.com/mertalev) in [#​17718](immich-app/immich#17718) - feat(server): Option to configure SMTPS transport by [@​clementmartin](https://github.com/clementmartin) in [#​22833](immich-app/immich#22833) - feat: show location & date on duplicate asset comparison overview by [@​adrianjost](https://github.com/adrianjost) in [#​22632](immich-app/immich#22632) - feat: view the user's app version on the user page by [@​aviv926](https://github.com/aviv926) in [#​21345](immich-app/immich#21345) - feat: GHA for iOS release flow by [@​alextran1502](https://github.com/alextran1502) in [#​23196](immich-app/immich#23196) - feat(web): add search filter for camera lens model. by [@​dagstuan](https://github.com/dagstuan) in [#​21792](immich-app/immich#21792) - feat(web): load original videos by [@​andre-antunesdesa](https://github.com/andre-antunesdesa) in [#​20041](immich-app/immich#20041) - feat(cli): add --delete-duplicates option by [@​RobinJ1995](https://github.com/RobinJ1995) in [#​20035](immich-app/immich#20035) - feat: ocr by [@​flipped-1121](https://github.com/flipped-1121) in [#​18836](immich-app/immich#18836) - feat: show "appears in" albums on asset viewer bottom sheet by [@​bwees](https://github.com/bwees) in [#​21925](immich-app/immich#21925) - feat: getAssetOcr endpoint by [@​alextran1502](https://github.com/alextran1502) in [#​23331](immich-app/immich#23331) - feat(mobile): view similar photos by [@​vitoksmile](https://github.com/vitoksmile) in [#​22148](immich-app/immich#22148) - feat(mobile): chat-style album activities timeline by [@​idubnori](https://github.com/idubnori) in [#​23185](immich-app/immich#23185) ##### 🌟 Enhancements - feat(album): show per-user contributions in shared albums by [@​Chaoscontrol](https://github.com/Chaoscontrol) in [#​21740](immich-app/immich#21740) - feat: add video auto play setting by [@​Saschl](https://github.com/Saschl) in [#​20416](immich-app/immich#20416) - fix(web): improve scrubber behavior on scroll-limited timelines by [@​midzelis](https://github.com/midzelis) in [#​22917](immich-app/immich#22917) - feat(web): Download links and Obtainium link generator on Utilities page and onboarding by [@​NicholasFlamy](https://github.com/NicholasFlamy) in [#​20589](immich-app/immich#20589) - feat(web): create user as admin by [@​jrasm91](https://github.com/jrasm91) in [#​23026](immich-app/immich#23026) - chore: rework backup success notification descriptions by [@​bwees](https://github.com/bwees) in [#​23024](immich-app/immich#23024) - feat(mobile): Change the UI of asset activity list to bottom sheet by [@​idubnori](https://github.com/idubnori) in [#​23075](immich-app/immich#23075) - feat: improved update messaging on app bar server info by [@​bwees](https://github.com/bwees) in [#​22938](immich-app/immich#22938) - refactor(web): improve date labels in scrubber by [@​midzelis](https://github.com/midzelis) in [#​23046](immich-app/immich#23046) - feat: support database dumps for pg18 by [@​zackpollard](https://github.com/zackpollard) in [#​23186](immich-app/immich#23186) - feat: improvements of thumbnail animations by [@​Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#​20300](immich-app/immich#20300) - feat(web): reactively update shared link expiration by [@​khanbasharat3a1](https://github.com/khanbasharat3a1) in [#​22274](immich-app/immich#22274) - feat: (mobile) open asset viewer from album activity page by [@​idubnori](https://github.com/idubnori) in [#​23182](immich-app/immich#23182) - feat(mobile): high precision seeking by [@​mertalev](https://github.com/mertalev) in [#​22346](immich-app/immich#22346) - feat(web): wasm justified layout, sync edition by [@​mertalev](https://github.com/mertalev) in [#​23194](immich-app/immich#23194) - feat: logout sessions on password change by [@​MontejoJorge](https://github.com/MontejoJorge) in [#​23188](immich-app/immich#23188) - feat(server): enhance metadata reading for video files by [@​tstachl](https://github.com/tstachl) in [#​23258](immich-app/immich#23258) - feat: improve UI for resolving duplication detection by [@​alextran1502](https://github.com/alextran1502) in [#​23145](immich-app/immich#23145) - feat: toasts by [@​jrasm91](https://github.com/jrasm91) in [#​23298](immich-app/immich#23298) - feat: asset copy by [@​danieldietzler](https://github.com/danieldietzler) in [#​23172](immich-app/immich#23172) ##### 🐛 Bug fixes - fix(web): prevent photo-only memories showing mute button by [@​meesfrensel](https://github.com/meesfrensel) in [#​22802](immich-app/immich#22802) - fix: get all assets for the Recents album on iOS by [@​alextran1502](https://github.com/alextran1502) in [#​22956](immich-app/immich#22956) - fix: tag clean up query and add tests by [@​MontejoJorge](https://github.com/MontejoJorge) in [#​22633](immich-app/immich#22633) - fix: unit overlapses value in server stats card by [@​alextran1502](https://github.com/alextran1502) in [#​22994](immich-app/immich#22994) - fix: navigate to time action by [@​midzelis](https://github.com/midzelis) in [#​20928](immich-app/immich#20928) - fix: remove assets from shared link by [@​MontejoJorge](https://github.com/MontejoJorge) in [#​22935](immich-app/immich#22935) - fix(server): only asset owner should see favorite status by [@​pwojtaszko](https://github.com/pwojtaszko) in [#​20654](immich-app/immich#20654) - fix(web): render context overlays over the scrollbar by [@​PaulSonOfLars](https://github.com/PaulSonOfLars) in [#​23007](immich-app/immich#23007) - fix(web): two scrollbars in folder view by [@​YarosMallorca](https://github.com/YarosMallorca) in [#​23045](immich-app/immich#23045) - fix: skip ML availability check if ML is disabled by [@​bo0tzz](https://github.com/bo0tzz) in [#​23053](immich-app/immich#23053) - chore: skip dialog for single merged asset by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​22958](immich-app/immich#22958) - fix(mobile): notate experimental network features, cleanup mis assigned translation tags by [@​mmomjian](https://github.com/mmomjian) in [#​23021](immich-app/immich#23021) - fix(ml): pin cudnn version by [@​mertalev](https://github.com/mertalev) in [#​23110](immich-app/immich#23110) - fix(server): use GPSLongitudeRef and GPSLatitudeRef EXIF fields by [@​ruippeixotog](https://github.com/ruippeixotog) in [#​21445](immich-app/immich#21445) - fix: allow editing all images by [@​bwees](https://github.com/bwees) in [#​23144](immich-app/immich#23144) - fix: isolate freeze app on older ios device by [@​alextran1502](https://github.com/alextran1502) in [#​22509](immich-app/immich#22509) - fix: android skip posting hash response after detached from engine by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​23192](immich-app/immich#23192) - fix: back/forward navigation won't reset scroll in timeline by [@​midzelis](https://github.com/midzelis) in [#​22838](immich-app/immich#22838) - fix: handle null bucketId or name in android local sync by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​23224](immich-app/immich#23224) - fix: fetch original name before upload by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​21877](immich-app/immich#21877) - fix: focus-trap on safari by [@​midzelis](https://github.com/midzelis) in [#​23246](immich-app/immich#23246) - fix(web): disable picture-in-picture on video viewer by [@​tstachl](https://github.com/tstachl) in [#​23318](immich-app/immich#23318) - fix: make hitbox on app bar dialog bigger by [@​bwees](https://github.com/bwees) in [#​23316](immich-app/immich#23316) - fix: clear temp cache on iOS before uploads by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​23326](immich-app/immich#23326) ##### 📚 Documentation - fix(web): clarify some transcoding settings by [@​meesfrensel](https://github.com/meesfrensel) in [#​22797](immich-app/immich#22797) - docs: fix small error by [@​0xflotus](https://github.com/0xflotus) in [#​22890](immich-app/immich#22890) - docs: Expand on OpenVINO WSL HW accel by [@​Mraedis](https://github.com/Mraedis) in [#​21054](immich-app/immich#21054) - docs: clarify well-known usage by [@​jrasm91](https://github.com/jrasm91) in [#​23018](immich-app/immich#23018) - feat: move community projects and guides to immich-aweseome by [@​jrasm91](https://github.com/jrasm91) in [#​23016](immich-app/immich#23016) - fix(docs): cli upload json format example by [@​leepeuker](https://github.com/leepeuker) in [#​22858](immich-app/immich#22858) - docs: update [backup-and-restore.md](http://backup-and-restore.md) by [@​nickwebcouk](https://github.com/nickwebcouk) in [#​21065](immich-app/immich#21065) #### New Contributors - [@​Chaoscontrol](https://github.com/Chaoscontrol) made their first contribution in [#​21740](immich-app/immich#21740) - [@​meesfrensel](https://github.com/meesfrensel) made their first contribution in [#​22802](immich-app/immich#22802) - [@​0xflotus](https://github.com/0xflotus) made their first contribution in [#​22890](immich-app/immich#22890) - [@​clementmartin](https://github.com/clementmartin) made their first contribution in [#​22833](immich-app/immich#22833) - [@​leepeuker](https://github.com/leepeuker) made their first contribution in [#​22858](immich-app/immich#22858) - [@​nickwebcouk](https://github.com/nickwebcouk) made their first contribution in [#​21065](immich-app/immich#21065) - [@​idubnori](https://github.com/idubnori) made their first contribution in [#​23075](immich-app/immich#23075) - [@​ruippeixotog](https://github.com/ruippeixotog) made their first contribution in [#​21445](immich-app/immich#21445) - [@​Nykri](https://github.com/Nykri) made their first contribution in [#​22888](immich-app/immich#22888) - [@​slagiewka](https://github.com/slagiewka) made their first contribution in [#​23130](immich-app/immich#23130) - [@​khanbasharat3a1](https://github.com/khanbasharat3a1) made their first contribution in [#​22274](immich-app/immich#22274) - [@​andre-antunesdesa](https://github.com/andre-antunesdesa) made their first contribution in [#​20041](immich-app/immich#20041) - [@​RobinJ1995](https://github.com/RobinJ1995) made their first contribution in [#​20035](immich-app/immich#20035) - [@​flipped-1121](https://github.com/flipped-1121) made their first contribution in [#​18836](immich-app/immich#18836) - [@​ZacWarham](https://github.com/ZacWarham) made their first contribution in [#​23275](immich-app/immich#23275) - [@​tstachl](https://github.com/tstachl) made their first contribution in [#​23258](immich-app/immich#23258) **Full Changelog**: <immich-app/immich@v2.1.0...v2.2.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbWFnZSJdfQ==--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/1905 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
…1 (#1904) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/immich-app/immich-machine-learning](https://github.com/immich-app/immich) | minor | `v2.1.0` -> `v2.2.1` | --- ### Release Notes <details> <summary>immich-app/immich (ghcr.io/immich-app/immich-machine-learning)</summary> ### [`v2.2.1`](https://github.com/immich-app/immich/releases/tag/v2.2.1) [Compare Source](immich-app/immich@v2.2.0...v2.2.1) <!-- Release notes generated using configuration in .github/release.yml at v2.2.1 --> #### What's Changed ##### 🐛 Bug fixes - fix(mobile): regression - not displayed activity button in top bar by [@​idubnori](https://github.com/idubnori) in [#​23366](immich-app/immich#23366) - fix: asset copy validation error by [@​danieldietzler](https://github.com/danieldietzler) in [#​23387](immich-app/immich#23387) - fix(ml): ocr failing with rootless docker by [@​mertalev](https://github.com/mertalev) in [#​23402](immich-app/immich#23402) - fix(mobile): video seeking on android by [@​mertalev](https://github.com/mertalev) in [#​23405](immich-app/immich#23405) - fix: button condition rendering by [@​alextran1502](https://github.com/alextran1502) in [#​23400](immich-app/immich#23400) - fix: view in timeline does not jump to the timeline correctly by [@​alextran1502](https://github.com/alextran1502) in [#​23428](immich-app/immich#23428) - fix: show close button on purchase modal by [@​alextran1502](https://github.com/alextran1502) in [#​23436](immich-app/immich#23436) ##### 📚 Documentation - chore: update android signing fingerprints to docs by [@​luneth](https://github.com/luneth) in [#​23361](immich-app/immich#23361) ##### 🌐 Translations - chore(web): update translations by [@​weblate](https://github.com/weblate) in [#​23375](immich-app/immich#23375) #### New Contributors - [@​luneth](https://github.com/luneth) made their first contribution in [#​23361](immich-app/immich#23361) **Full Changelog**: <immich-app/immich@v2.2.0...v2.2.1> ### [`v2.2.0`](https://github.com/immich-app/immich/releases/tag/v2.2.0) [Compare Source](immich-app/immich@v2.1.0...v2.2.0) ### v2.2.0 *The month following our [stable release ](https://immich.app/blog/stable-release)**🎉** has flown by! We are blown away by the support from everyone around this milestone, especially for the [Retro DVD ](https://immich.store/products/immich-retro)**📀**! If you want to get one for yourself, you still can, but once this batch is gone, we won’t be making any more, **EVER!** So get one while you can from [immich.store](https://immich.store/)!* <img width="2292" height="209" alt="image" src="https://github.com/user-attachments/assets/3829caef-8674-4ab0-a0d0-954c317e8987" /> #### Highlights Welcome to version `v2.2.0` of Immich. This release comes with the traditional Immich fashion, where the features and enhancements list is longer than the bug fixes list. Let’s dive right into the highlights of this exciting release - New mutable Docker tag for `v2` versions - Optical Character Recognition (OCR) - \[Web] Wasm implementation for justified layout calculation 🦀 - \[Web] UI improvement for the review duplicates screen - \[Mobile] Show albums in the asset’s detail sheet - \[Mobile] Show similar photos - \[Mobile] Chat-style for activity view - \[Mobile] High precision seeking for video - \[Mobile] New UI to present server-client version mismatch - Option to create a new user as an admin - Notable fix: older iOS devices freeze when spawning background tasks - Notable fix: temporary files on iOS are now cleaned up properly ##### Docker tag for `v2` versions The `example.env` file has been updated to use `IMMICH_VERSION=v2`, which is a mutable Docker tag that points to the latest `2.x.x` release image. ##### Optical Character Recognition (OCR) OCR search has been one of the most requested features on our users' wishlists. Thanks to the fantastic work of [@​flipped-1121](https://github.com/flipped-1121) and [@​mertalev](https://github.com/mertalev), Immich can now recognize texts in images, adding a powerful capability to its already powerful search features. This will help users find lost family recipes or a crypto wallet’s passphrase more easily. The OCR pipeline is integrated into the existing machine learning flow. For new uploads, it will run automatically with the existing machine learning flow. For existing setups, you can go to `Administration > Job > Click on “All” for OCR job` to extract OCR information for your gallery <p align="center"> <img width="800" alt="image" src="https://github.com/user-attachments/assets/ece151cf-4268-406a-a68f-ce3c9c869c15" /> </p> To search for letters in photos, a new radio button has been added to the search type on the web app, and in the dropdown list on the mobile app. <p align="center"> <img width="500" alt="image" src="https://github.com/user-attachments/assets/adb161c8-717d-4030-b5eb-4f3cfef11a96" /> </p> OCR currently has official support for English, Chinese (Simplified), Chinese (Traditional) and Japanese text. Languages using Latin script generally work as well, but may have lower accuracy or interpret characters without the diacritics. ##### \[Web] Wasm implementation for justified layout calculation 🦀 This release comes with a blazing-fast re-implementation of the justified layout on the web, which makes calculating the size of the thumbnails in each bucket several times faster, significantly improving the rendering performance for a large bucket, i.e., 10s of thousands of assets in a single month ##### \[Web] UI improvement for the review duplicates screen To help you decide which asset to keep in a group of duplicates, more information has been added to the info section below each asset, including date/time, location, and the number of albums the asset is in. The info section has been redesigned to make scanning the information faster, with different properties getting highlighted. We will keep improving on this interface to make it more intuitive <p align="center"> <img width="800" alt="image" src="https://github.com/user-attachments/assets/0bee8443-b44e-4264-a4ab-36a99cef4596" /> </p> ##### \[Mobile\] Show albums in the asset’s detail You can view and navigate to the albums that the asset belongs to in the info sheet <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/96bb194a-cc54-478b-9958-b6e8eea9b03c" /> </p> ##### \[Mobile\] Show similar photos The popular feature “Show similar photos” has made its way to the mobile app. You can use the button in the detail sheet to find similar images to the one you are viewing. <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/45cb751d-da22-4fe8-bc47-406dbb9c9cfc" /> </p> ##### \[Mobile\] Chat-style for album activity view The album’s activity view now displays the messages and actions in a chat-style view, making it easier to follow <p align="center"> <img width="300" alt="image" src="https://github.com/user-attachments/assets/a5a8a4aa-ebbe-4282-844b-27e9df14a529" /> </p> ##### \[Mobile\] High precision seeking for video The progress bar of the video player now has higher precision duration handling. This makes seeking much more fluid than before, as well as making position updates in the progress bar smooth, rather than jumping from second to second. ##### \[Mobile] New UI to present server-client version mismatch As we are now in the stable-era, we want to make the notification of a new version more subtle, less distracting. The update message and icon’s color on the mobile app have been redesigned for that purpose. When your server version is older than the available one, a message with a clickable link is displayed, directing you to the latest release notes. When your mobile app version is older than the one available on the App Store, a message with a clickable link appears, directing you to the App Store to perform the update. | Server update | App update | | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | <img width="300" alt="image" src="https://github.com/user-attachments/assets/c136aab6-ef39-4769-ab35-b6719b188ed5" /> | <img width="300" height="2340" alt="image" src="https://github.com/user-attachments/assets/3bead2e2-f202-48b8-9164-c5c29c999434" /> | #### Support Immich <p align="center"> <img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!"> </p> If you find the project helpful, you can support Immich by purchasing a product key at <https://buy.immich.app> or our merchandise at <https://immich.store> <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### 🔒 Security - fix(server): bump valkey to 8 by [@​mmomjian](https://github.com/mmomjian) in [#​22911](immich-app/immich#22911) ##### 🚀 Features - feat(ml): coreml by [@​mertalev](https://github.com/mertalev) in [#​17718](immich-app/immich#17718) - feat(server): Option to configure SMTPS transport by [@​clementmartin](https://github.com/clementmartin) in [#​22833](immich-app/immich#22833) - feat: show location & date on duplicate asset comparison overview by [@​adrianjost](https://github.com/adrianjost) in [#​22632](immich-app/immich#22632) - feat: view the user's app version on the user page by [@​aviv926](https://github.com/aviv926) in [#​21345](immich-app/immich#21345) - feat: GHA for iOS release flow by [@​alextran1502](https://github.com/alextran1502) in [#​23196](immich-app/immich#23196) - feat(web): add search filter for camera lens model. by [@​dagstuan](https://github.com/dagstuan) in [#​21792](immich-app/immich#21792) - feat(web): load original videos by [@​andre-antunesdesa](https://github.com/andre-antunesdesa) in [#​20041](immich-app/immich#20041) - feat(cli): add --delete-duplicates option by [@​RobinJ1995](https://github.com/RobinJ1995) in [#​20035](immich-app/immich#20035) - feat: ocr by [@​flipped-1121](https://github.com/flipped-1121) in [#​18836](immich-app/immich#18836) - feat: show "appears in" albums on asset viewer bottom sheet by [@​bwees](https://github.com/bwees) in [#​21925](immich-app/immich#21925) - feat: getAssetOcr endpoint by [@​alextran1502](https://github.com/alextran1502) in [#​23331](immich-app/immich#23331) - feat(mobile): view similar photos by [@​vitoksmile](https://github.com/vitoksmile) in [#​22148](immich-app/immich#22148) - feat(mobile): chat-style album activities timeline by [@​idubnori](https://github.com/idubnori) in [#​23185](immich-app/immich#23185) ##### 🌟 Enhancements - feat(album): show per-user contributions in shared albums by [@​Chaoscontrol](https://github.com/Chaoscontrol) in [#​21740](immich-app/immich#21740) - feat: add video auto play setting by [@​Saschl](https://github.com/Saschl) in [#​20416](immich-app/immich#20416) - fix(web): improve scrubber behavior on scroll-limited timelines by [@​midzelis](https://github.com/midzelis) in [#​22917](immich-app/immich#22917) - feat(web): Download links and Obtainium link generator on Utilities page and onboarding by [@​NicholasFlamy](https://github.com/NicholasFlamy) in [#​20589](immich-app/immich#20589) - feat(web): create user as admin by [@​jrasm91](https://github.com/jrasm91) in [#​23026](immich-app/immich#23026) - chore: rework backup success notification descriptions by [@​bwees](https://github.com/bwees) in [#​23024](immich-app/immich#23024) - feat(mobile): Change the UI of asset activity list to bottom sheet by [@​idubnori](https://github.com/idubnori) in [#​23075](immich-app/immich#23075) - feat: improved update messaging on app bar server info by [@​bwees](https://github.com/bwees) in [#​22938](immich-app/immich#22938) - refactor(web): improve date labels in scrubber by [@​midzelis](https://github.com/midzelis) in [#​23046](immich-app/immich#23046) - feat: support database dumps for pg18 by [@​zackpollard](https://github.com/zackpollard) in [#​23186](immich-app/immich#23186) - feat: improvements of thumbnail animations by [@​Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#​20300](immich-app/immich#20300) - feat(web): reactively update shared link expiration by [@​khanbasharat3a1](https://github.com/khanbasharat3a1) in [#​22274](immich-app/immich#22274) - feat: (mobile) open asset viewer from album activity page by [@​idubnori](https://github.com/idubnori) in [#​23182](immich-app/immich#23182) - feat(mobile): high precision seeking by [@​mertalev](https://github.com/mertalev) in [#​22346](immich-app/immich#22346) - feat(web): wasm justified layout, sync edition by [@​mertalev](https://github.com/mertalev) in [#​23194](immich-app/immich#23194) - feat: logout sessions on password change by [@​MontejoJorge](https://github.com/MontejoJorge) in [#​23188](immich-app/immich#23188) - feat(server): enhance metadata reading for video files by [@​tstachl](https://github.com/tstachl) in [#​23258](immich-app/immich#23258) - feat: improve UI for resolving duplication detection by [@​alextran1502](https://github.com/alextran1502) in [#​23145](immich-app/immich#23145) - feat: toasts by [@​jrasm91](https://github.com/jrasm91) in [#​23298](immich-app/immich#23298) - feat: asset copy by [@​danieldietzler](https://github.com/danieldietzler) in [#​23172](immich-app/immich#23172) ##### 🐛 Bug fixes - fix(web): prevent photo-only memories showing mute button by [@​meesfrensel](https://github.com/meesfrensel) in [#​22802](immich-app/immich#22802) - fix: get all assets for the Recents album on iOS by [@​alextran1502](https://github.com/alextran1502) in [#​22956](immich-app/immich#22956) - fix: tag clean up query and add tests by [@​MontejoJorge](https://github.com/MontejoJorge) in [#​22633](immich-app/immich#22633) - fix: unit overlapses value in server stats card by [@​alextran1502](https://github.com/alextran1502) in [#​22994](immich-app/immich#22994) - fix: navigate to time action by [@​midzelis](https://github.com/midzelis) in [#​20928](immich-app/immich#20928) - fix: remove assets from shared link by [@​MontejoJorge](https://github.com/MontejoJorge) in [#​22935](immich-app/immich#22935) - fix(server): only asset owner should see favorite status by [@​pwojtaszko](https://github.com/pwojtaszko) in [#​20654](immich-app/immich#20654) - fix(web): render context overlays over the scrollbar by [@​PaulSonOfLars](https://github.com/PaulSonOfLars) in [#​23007](immich-app/immich#23007) - fix(web): two scrollbars in folder view by [@​YarosMallorca](https://github.com/YarosMallorca) in [#​23045](immich-app/immich#23045) - fix: skip ML availability check if ML is disabled by [@​bo0tzz](https://github.com/bo0tzz) in [#​23053](immich-app/immich#23053) - chore: skip dialog for single merged asset by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​22958](immich-app/immich#22958) - fix(mobile): notate experimental network features, cleanup mis assigned translation tags by [@​mmomjian](https://github.com/mmomjian) in [#​23021](immich-app/immich#23021) - fix(ml): pin cudnn version by [@​mertalev](https://github.com/mertalev) in [#​23110](immich-app/immich#23110) - fix(server): use GPSLongitudeRef and GPSLatitudeRef EXIF fields by [@​ruippeixotog](https://github.com/ruippeixotog) in [#​21445](immich-app/immich#21445) - fix: allow editing all images by [@​bwees](https://github.com/bwees) in [#​23144](immich-app/immich#23144) - fix: isolate freeze app on older ios device by [@​alextran1502](https://github.com/alextran1502) in [#​22509](immich-app/immich#22509) - fix: android skip posting hash response after detached from engine by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​23192](immich-app/immich#23192) - fix: back/forward navigation won't reset scroll in timeline by [@​midzelis](https://github.com/midzelis) in [#​22838](immich-app/immich#22838) - fix: handle null bucketId or name in android local sync by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​23224](immich-app/immich#23224) - fix: fetch original name before upload by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​21877](immich-app/immich#21877) - fix: focus-trap on safari by [@​midzelis](https://github.com/midzelis) in [#​23246](immich-app/immich#23246) - fix(web): disable picture-in-picture on video viewer by [@​tstachl](https://github.com/tstachl) in [#​23318](immich-app/immich#23318) - fix: make hitbox on app bar dialog bigger by [@​bwees](https://github.com/bwees) in [#​23316](immich-app/immich#23316) - fix: clear temp cache on iOS before uploads by [@​shenlong-tanwen](https://github.com/shenlong-tanwen) in [#​23326](immich-app/immich#23326) ##### 📚 Documentation - fix(web): clarify some transcoding settings by [@​meesfrensel](https://github.com/meesfrensel) in [#​22797](immich-app/immich#22797) - docs: fix small error by [@​0xflotus](https://github.com/0xflotus) in [#​22890](immich-app/immich#22890) - docs: Expand on OpenVINO WSL HW accel by [@​Mraedis](https://github.com/Mraedis) in [#​21054](immich-app/immich#21054) - docs: clarify well-known usage by [@​jrasm91](https://github.com/jrasm91) in [#​23018](immich-app/immich#23018) - feat: move community projects and guides to immich-aweseome by [@​jrasm91](https://github.com/jrasm91) in [#​23016](immich-app/immich#23016) - fix(docs): cli upload json format example by [@​leepeuker](https://github.com/leepeuker) in [#​22858](immich-app/immich#22858) - docs: update [backup-and-restore.md](http://backup-and-restore.md) by [@​nickwebcouk](https://github.com/nickwebcouk) in [#​21065](immich-app/immich#21065) #### New Contributors - [@​Chaoscontrol](https://github.com/Chaoscontrol) made their first contribution in [#​21740](immich-app/immich#21740) - [@​meesfrensel](https://github.com/meesfrensel) made their first contribution in [#​22802](immich-app/immich#22802) - [@​0xflotus](https://github.com/0xflotus) made their first contribution in [#​22890](immich-app/immich#22890) - [@​clementmartin](https://github.com/clementmartin) made their first contribution in [#​22833](immich-app/immich#22833) - [@​leepeuker](https://github.com/leepeuker) made their first contribution in [#​22858](immich-app/immich#22858) - [@​nickwebcouk](https://github.com/nickwebcouk) made their first contribution in [#​21065](immich-app/immich#21065) - [@​idubnori](https://github.com/idubnori) made their first contribution in [#​23075](immich-app/immich#23075) - [@​ruippeixotog](https://github.com/ruippeixotog) made their first contribution in [#​21445](immich-app/immich#21445) - [@​Nykri](https://github.com/Nykri) made their first contribution in [#​22888](immich-app/immich#22888) - [@​slagiewka](https://github.com/slagiewka) made their first contribution in [#​23130](immich-app/immich#23130) - [@​khanbasharat3a1](https://github.com/khanbasharat3a1) made their first contribution in [#​22274](immich-app/immich#22274) - [@​andre-antunesdesa](https://github.com/andre-antunesdesa) made their first contribution in [#​20041](immich-app/immich#20041) - [@​RobinJ1995](https://github.com/RobinJ1995) made their first contribution in [#​20035](immich-app/immich#20035) - [@​flipped-1121](https://github.com/flipped-1121) made their first contribution in [#​18836](immich-app/immich#18836) - [@​ZacWarham](https://github.com/ZacWarham) made their first contribution in [#​23275](immich-app/immich#23275) - [@​tstachl](https://github.com/tstachl) made their first contribution in [#​23258](immich-app/immich#23258) **Full Changelog**: <immich-app/immich@v2.1.0...v2.2.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbWFnZSJdfQ==--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/1904 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
|
Pinging @caburum @danieldietzler... Did this ever get integrated into the actual invocation of nodemailer?? It doesn't look like it did (the code linked in @danieldietzler's comment hasn't changed) and it's not working for me: Immich opens a socket to my SMTP server, but never sends anything, and eventually the server kills the connection for inactivity. The client should be initiating the TLS handshake. |
|
For convenient reference: |
PReq immich-app#22833 is about adding support for SMTP-over-TLS rather than just STARTTLS when sending emails. That PReq adds almost everything; it just forgot to actually pass the flag to Nodemailer at the end. This adds that last line of code and makes it work correctly (for me, anyways!).
Final step on #22833 PReq #22833 is about adding support for SMTP-over-TLS rather than just STARTTLS when sending emails. That PReq adds almost everything; it just forgot to actually pass the flag to Nodemailer at the end. This adds that last line of code and makes it work correctly (for me, anyways!). Co-authored-by: Nathaniel <I@nathaniel.land>
* fix(mobile): inconsistent asset details background (immich-app#26634) The background of the photo view does not extend below the height of the viewport, and so the asset details fade in over black with the photo view, and the standard surface colour scheme of the scaffold for the rest. This leads to a janky animation. We can't change the background of the scaffold to black, as it in turn makes the iOS bouncing scroll physics cut off incorrectly. The best fix is to remove background decoration from the photo view, and defer to the parent to colour the background. Co-authored-by: Alex <alex.tran1502@gmail.com> * fix: playback style migration (immich-app#26718) * feat(mobile): SyncAssetEditV1 (immich-app#26518) * feat(mobile): SyncAssetEditV1 * fix: websocket handling * fix: server version requirement * fix: revert pubspec changes * refactor(web): add --font-sans CSS variable for primary font (immich-app#26730) * feat(web): toggle zoom on double-click in photo viewer (immich-app#26732) * fix(mobile): incorrect asset dimensions in search (immich-app#26725) Search results use a different provider than the main timeline, and they appear appear to have diverged a bit. This means that assets can sometimes look wrong or different in search compared to the main timeline or albums. * fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails (immich-app#26741) * feat(android): enhance playback style detection using MIME type, reducing glide exposure (immich-app#26747) * feat(android): enhance playback style detection using MIME type * feat(android): improve playback style detection for GIF and WebP formats * fix(android): make playback style detection faster * refactor(android): simplify XMP reading logic for API 29 and below * update playback style detection documentation * use DefaultImageHeaderParser instead of all available ones for webp playbackStyle type detection * fix(mobile): correct local asset dimensions (immich-app#26677) * fix(mobile): correct local asset dimensions We are constraining the size of videos so that they play nicely with hero animations, and don't stretch in weird ways. This however caused a regression as we are not account for local assets on Android which have un-oriented dimensions. * post-orientation width and height in local sync * migration * no need to handle it in asset viewer --------- Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com> Co-authored-by: Alex <alex.tran1502@gmail.com> * fix(server): opus handling as accepted audio codec in transcode policy (immich-app#26736) * Fix opus handling as accepted audio codec in transcode policy Fix the issue when opus is among accepted audio codecs in transcode policy (which is default) but it still triggers transcoding because the codec name from ffprobe (opus) does not match `libopus` literal in Immich. Make a distinction between a codec name and encoder: - codec name: switch to `opus` as the audio codec name. This matches what ffprobe returns for a media file with opus audio. - encoder: continue using the `libopus` encoder in ffmpeg. * Add unit tests for accepted audio codecs and for libopus encoder * Add db migration for ffmpeg.targetAudioCodec opus * backward compatibility * tweak * noisy logs * full mapping * make check happy * mark deprecated * update api * indexOf --------- Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com> * feat(ml): enable openvino for cpu (immich-app#22948) * Enable OpenVINO CPU acceleration in Immich * Remove unnecessary debug log * Removing checking for device_ids for openvino since cpu will always be available * Find OpenVINOExecutionProvider index instead of assuming index 0 * Fix openvino tests * Fix failing test mock. OpenVINO expects provider options, but cuda provide doesn't so use that for mocked tests. * Support empty provider options in OrtSessions in which case ONNXRuntime will use its own defaults * Use OpenVINOExecutionProvider for test_sets_provider_options_kwarg * fix mock * simplify * unused variable --------- Co-authored-by: Aleksander <pejcic@adobe.com> Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com> * feat: responsive video duration in thumbnail (immich-app#26770) * test(e2e): fix flakiness: optimize resetDatabase with TRUNCATE and fix selectDay selector scoping (immich-app#26776) fix(e2e): optimize resetDatabase with TRUNCATE and fix selectDay selector scoping * fix(mobile): restrict trashed asset migration to Android platform (immich-app#26726) * fix(migration): restrict trashed asset migration to Android platform * playbackStyle migration add different log depending on platform * fix(web): refresh recent albums sidebar after album changes (immich-app#26757) * fix(web): show the correct cursor at crop bounds when editing an asset (immich-app#26748) * fix(web): recalculate face bounding boxes (immich-app#26737) Co-authored-by: Daniel Dietzler <mail@ddietzler.dev> * fix(web): context menu overflow (immich-app#26760) * chore: refactor test factories (immich-app#26804) * chore: remove release-pr workflow (immich-app#26742) It's not being used right now; can always add it back :P * fix(web): correct tag rounding in search options (immich-app#26814) * feat(web): animate zoom toggle with cubicOut easing (immich-app#26731) * feat(mobile): consolidate video controls (immich-app#26673) Videos have recently been changed to support zooming, but this can make the controls in the centre of the screen unergonomic as they will either stay in the centre when dismissing, or stick to the video when zooming. Neither is great. We should align the behaviour with other apps which has the play/pause toggle at the bottom of the screen with the seeker bar instead. Co-authored-by: Alex <alex.tran1502@gmail.com> * chore(deps): update docker.io/valkey/valkey:9 docker digest to 3eeb097 (immich-app#26807) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(web): prevent unrelated assets from appearing in tag view (immich-app#26816) * chore(deps): update dependency @types/node to ^24.11.0 (immich-app#26808) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * feat(web): add shortcut "p" to open/close the face tag box (immich-app#26826) * fix(mobile): use tabular figures in backup page (immich-app#26830) The numbers in the backup page are not monospace, and so changes cause the layout to shift. Using tabular figures (monospace) will prevent that. Refs: immich-app#25021 * fix(mobile): wrap backup error message text (immich-app#26834) Refs: immich-app#25022 * feat(mobile): use material design 3 slider (immich-app#26829) * feat(mobile): use material design 3 slider The new slider is easier to use, and looks more modern. * chore: add shadow to button and text for better visibility --------- Co-authored-by: Alex <alex.tran1502@gmail.com> * fix(web): restore asset update events in asset viewer (immich-app#26845) * fix(server): use correct day ordering in timeline buckets (immich-app#26821) * fix(web): sort timeline day groups received from server * fix(server): use correct day ordering in timeline buckets * feat: adaptive progressive image loading for photo viewer (immich-app#26636) * feat(web): adaptive progressive image loading for photo viewer Replace ImageManager with a new AdaptiveImageLoader that progressively loads images through quality tiers (thumbnail → preview → original). New components and utilities: - AdaptiveImage: layered image renderer with thumbhash, thumbnail, preview, and original layers with visibility managed by load state - AdaptiveImageLoader: state machine driving the quality progression with per-quality callbacks and error handling - ImageLayer/Image: low-level image elements with load/error lifecycle - PreloadManager: preloads adjacent assets for instant navigation - AlphaBackground/DelayedLoadingSpinner: loading state UI Zoom is handled via a derived CSS transform applied to the content wrapper in AdaptiveImage, with the zoom library (zoomTarget: null) only tracking state without manipulating the DOM directly. Also adds scaleToCover to container-utils and getAssetUrls to utils. * fix: don't partially render images in firefox * add passive loading indicator to asset-viewer --------- Co-authored-by: Alex <alex.tran1502@gmail.com> * chore: upgrade to kysely 0.28.11 (immich-app#26744) * fix(deps): update typescript-projects (immich-app#26812) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: use pokedex-large runner for rocm (immich-app#26823) * feat(mobile): show animated images in asset viewer (immich-app#26614) * Add support for showing animated images in AssetViewer with AnimatedImageStreamCompleter * Add GIF overlay to thumbnail tile for animated assets * formatting * require isAnimated parameter in image providers for better asset handling * feat: refactor AnimatedImageStreamCompleter to use streams for codec loading and initial image handling * formatting * add isAnimatedImage property to BaseAsset * remove ApiService.getRequestHeaders() usage * fix(mobile): logout on upgrade (immich-app#26827) * use cookiejar * cookie duping hook * remove old pref * handle network switching on logout * remove bootstrapCookies * dead code * fix cast * use constants * use new event name * update api * fix(web): exclude emoji from translation string (immich-app#26852) * fix(server): extract make/model from sony video files (immich-app#26833) Co-authored-by: Your Name <brendan.ngo@okendo.io> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev> * refactor(web): crop area tool (immich-app#26843) * fix(web): face selection box position resetting on browser resize (immich-app#26766) * chore(deps): update dependency exiftool-vendored to v35.13.1 (immich-app#26813) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: more unused release workflow cleanup (immich-app#26817) * chore(mobile): remove background from asset viewer back button (immich-app#26851) We recently changed the asset viewer to use a gradient. The circle button looks out of place now. * chore: add shadow to video play/pause icon shadow (immich-app#26836) * fix(web): fix zoom touch event handling (immich-app#26866) fix(web): fix zoom touch event handling and add clarifying comments - Suppress Safari's synthetic dblclick on double-tap which conflicts with zoom-image's touchstart-based zoom - Add comment explaining pointer-events-none on zoom transform wrapper - Add comments for touchAction and overflow style overrides * refactor: clean class (immich-app#26879) * refactor: external links (immich-app#26880) * refactor: clean class (immich-app#26885) * fix(server): restrict individual shared link asset removal to owners (immich-app#26868) * fix(server): restrict individual shared link asset removal to owners * make open-api * refactor: small test factories (immich-app#26862) * fix: add to shared link (immich-app#26886) * refactor: move encoded video to asset files table (immich-app#26863) * refactor: move encoded video to asset files table * chore: update * fix: use correct original URL for 360 video panorama playback (immich-app#26831) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix(web): disable drag and drop for internal items (immich-app#26897) * fix(mobile): video auth (immich-app#26887) * fix video auth * update commit * fix(web): keep header fixed on individual shared links (immich-app#26892) * fix: SMTP over TLS (immich-app#26893) Final step on immich-app#22833 PReq immich-app#22833 is about adding support for SMTP-over-TLS rather than just STARTTLS when sending emails. That PReq adds almost everything; it just forgot to actually pass the flag to Nodemailer at the end. This adds that last line of code and makes it work correctly (for me, anyways!). Co-authored-by: Nathaniel <I@nathaniel.land> * feat: require pull requests to follow template (immich-app#26902) * feat: require pull requests to follow template * fix: persist-credentials: false --------- Co-authored-by: Thomas <9749173+uhthomas@users.noreply.github.com> Co-authored-by: Alex <alex.tran1502@gmail.com> Co-authored-by: Brandon Wees <brandonwees@gmail.com> Co-authored-by: Min Idzelis <min123@gmail.com> Co-authored-by: Snowknight26 <Snowknight26@users.noreply.github.com> Co-authored-by: Luis Nachtigall <31982496+LeLunZ@users.noreply.github.com> Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com> Co-authored-by: Sergey Katsubo <skatsubo@gmail.com> Co-authored-by: Aleksander Pejcic <apejcic@gmail.com> Co-authored-by: Aleksander <pejcic@adobe.com> Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com> Co-authored-by: Andreas Heinz <github@a80.net> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev> Co-authored-by: Daniil Suvorov <severecloud@gmail.com> Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com> Co-authored-by: bo0tzz <git@bo0tzz.me> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Mees Frensel <33722705+meesfrensel@users.noreply.github.com> Co-authored-by: Brendan Ngo <107925883+brendanngo@users.noreply.github.com> Co-authored-by: Your Name <brendan.ngo@okendo.io> Co-authored-by: Jason Rasmussen <jason@rasm.me> Co-authored-by: luis15pt <100942871+luis15pt@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Nathaniel Hourt <nat.hourt@gmail.com> Co-authored-by: Nathaniel <I@nathaniel.land>
Final step on immich-app#22833 PReq immich-app#22833 is about adding support for SMTP-over-TLS rather than just STARTTLS when sending emails. That PReq adds almost everything; it just forgot to actually pass the flag to Nodemailer at the end. This adds that last line of code and makes it work correctly (for me, anyways!). Co-authored-by: Nathaniel <I@nathaniel.land>
Description
This commit adds a boolean option in the SMTP transport configuration to enable the so-called "secure" mode. What it does is use SMTP over TLS instead of relying on the more common STARTTLS option over plain SMTP.
Fixes #22832 22832
How Has This Been Tested?
Unit tests are passing, configured the use of SMTPS, sent a test email and received it.
Checklist:
src/services/uses repositories implementations for database calls, filesystem operations, etc.src/repositories/is pretty basic/simple and does not have any immich specific logic (that belongs insrc/services/)Please describe to which degree, if any, an LLM was used in creating this pull request.
None.