Releases: immich-app/immich
v1.115.0
v1.115.0
Note
We are working on redesigning the flows and layout of the mobile app to incorporate recently added features such as folders and tags, as well as making improvements to album management on the mobile app. We are gathering feedback in this discussion. We are excited to hear your feedback.
Welcome to release v1.115.0
of Immich. This release focuses on cleaning up our backlog of issues. It is also worth noting that the Cursed knowledge page has been updated with even more cursed knowledge. Please find some of the release highlights below:
- Administration button
- Manually link and unlink Live motion photos
- Default exclusion patterns
- Start-up folder checks
- Upload trash indicator
Notable bug fixes include:
- Signing out of the web now signs out of all tabs
- Long-standing issue regarding inaccurate album asset count has been fixed
- Search text is preserved when switching between "Context" and "File name or extension"
- Editing a person's name or birthdate on mobile has been fixed
Administration button
The Administration
button on the web is now moved inside the profile sheet to clean up the top app bar and improve the navigation experience for all screen sizes.

Manually link and unlink Live motion photos
Live photos (iOS) can now be manually linked an unlinked.
Screencast.from.09-11-2024.10.15.57.AM.webm
Default exclusion patterns
We have added default exclusion patterns whenever a new external library is created. By default, we exclude the @eaDir
folder Synology uses to store miscellaneous files and any files beginning with ._
. Of course, you can edit these patterns if you want to, but this is highly unlikely.
Startup folder checks
Immich will now fail to start if it is unable to read/write to upload/
, library/
, thumbs/
, encoded-videos/
or profile/
. Starting with this release, the server will write an .immich
file to each of the previously listed folders. On subsequent restarts, it will fail to start if it fails to locate the previously written .immich
file. This will hopefully increase transparency around situations where the UPLOAD_LOCATION
mount is incorrectly configured or unavailable.
Upload trash indicator
When you upload a duplicate via the web and that duplicate is in the trash, you now will see an indicator for it, along with being able to open the asset in a new tab.
Light | Dark |
---|---|
![]() |
![]() |
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🚀 Features
- feat(web): manually link live photos by @jrasm91 in #12514
- feat(web): unlink live photos by @jrasm91 in #12574
🌟 Enhancements
- feat(web): logout of all tabs by @jrasm91 in #12407
- feat(server): start up folder checks by @jrasm91 in #12401
- feat(web): responsive top navigation by @ben-basten in #12373
- feat(mobile): Add dismiss action on app_bar_dialog by @Lauritz-Tieste in #12511
- feat(web): select the EXIF timezone (if it exists) in dropdown by @C-Otto in #12495
- fix(web): show trash indicator by @jrasm91 in #12521
- feat(web): move search options into a modal by @ben-basten in #12438
- feat(server): default exclusion patterns by @etnoy in #12566
🐛 Bug fixes
- fix(server): remove hidden assets from albums by @jrasm91 in #12449
- fix(server): handle multiple hierarchical subjects by @jrasm91 in #12509
- fix(mobile): scroll thumb is hidden behind the tab navigation bar by @alextran1502 in #12512
- fix(web): select partner assets from timeline by @jrasm91 in #12517
- fix(web): preserve search text by @jrasm91 in #12531
- fix(web): show upload error message on network error by @jrasm91 in #12533
- fix(server): handle invalid directory item by @jrasm91 in #12534
- fix(web): leave assets selected after add to album by @jrasm91 in #12537
- fix(server): person repo methods by @jrasm91 in #12524
- fix(ml): batch axis not being added for recognition model by @mertalev in #12588
📚 Documentation
- docs: more cursed knowledge by @jrasm91 in #12529
- docs: proper value of word-based suggestions setting to setup VSCode by @sapachev in #12586
- docs: add server backup to First Steps by @mmomjian in #12555
🌐 Translations
New Contributors
- @pbustamantes made their first contribution in #12486
- @Lauritz-Tieste made their first contribution in #12511
- @jonathanjsimon made their first contribution in #12510
- @sapachev made their first contribution in #12586
Full Changelog: v1.114.0...v1.115.0
v1.114.0
v1.114.0
Highlights
Welcome to release v1.114.0
of Immich. Who doesn't love a juicy release on a Friday? This release focuses on additional enhancements and bug fixes for recent new features. Please find some of the highlights below:
- Tag improvements (including Lightroom support)
- Import faces from EXIF and XMP sidecars (Digikam format)
- Better handling of timezones
- Upload panel **New look**
- Automatic database reconnection
Tag improvements
Since the last release, when we introduced support for tags, we have made a few changes based on your feedback.
- We now support reading from
HierarchicalSubject
. Values will be parsed as hierarchical tags, with|
as a delimiter. - We now only read from
Keywords
as a fallback when no hierarchical tag information is available - We have fixed a bug where you could not remove the last tag from EXIF/XMP.
NOTE: these changes apply to the metadata extraction job. To apply them to your photos and videos, re-run metadata extraction.
Import faces from metadata
This release adds the ability to read face metadata in Digikam format during metadata extraction, increasing interoperability with other software and laying the foundation for faces from sources other than machine learning.
Note that there are certain limitations with these faces. These limitations may be removed in a later release:
- Assets that contain face metadata are skipped during face detection
- Faces from metadata are not considered during facial recognition
- Faces from metadata are grouped into people based on name
- Only face metadata in Digikam format is supported
You can enable this feature by going to Administration > Metadata Settings
.
Better handling of timezones
This version fixes some issues related to how timezone offsets are parsed and how timezones and offsets are displayed. The offset is now parsed correctly for photos and videos taken with the "+00:00" offset (e.g., several African countries, Iceland, Portugal/UK/Ireland in winter).
If you notice that the "+00:00" offset is not shown correctly, please re-run the "Extract Metadata" job on all photos and videos.
Upload panel
The upload panel has a new look! It works the same as before, except that duplicates are no longer automatically cleared from the queue. They will remain behind, along with a clickable icon, that links to the deduped image.
Light | Dark |
---|---|
![]() |
![]() |
Automatic database reconnection
Previously, when the connection to the database was interrupted for any reason (restart, timeout, network interruption, etc.), the server would never reconnect. Restoring the connection required a container restart. Now, the server will automatically try to reconnect every 5 seconds indefinitely.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🚀 Features
🌟 Enhancements
- feat(server): support lightroom tags by @jrasm91 in #12288
- feat(web): show folder navigation in root directory by @ben-basten in #12299
- chore(mobile): handle sync album on duplicated by @alextran1502 in #12173
- feat(web): sort albums in modal by @jrasm91 in #12331
- feat(web): add skip link to sidebar by @ben-basten in #12330
- fix(server): search suggestions include partner assets by @Lukasdotcom in #12269
- feat(web): add download shortcut on the timeline & asset viewer by @imondrag in #12339
🐛 Bug fixes
- fix(server): empty trash for archived assets by @alextran1502 in #12281
- feat(server): prefer tagslist by @jrasm91 in #12286
- fix: remove public. reference in migration sql by @alextran1502 in #12285
- fix(server): public references in migrations by @jrasm91 in #12298
- fix(web): paste event in input fields by @jrasm91 in #12297
- fix(server): parse time zone with explicit zero offset by @C-Otto in #12307
- fix(web): retain selected time zone offset also for +00:00 by @C-Otto in #12310
- fix(web): handle RTL languages in the map component by @zackpollard in #12308
- fix(server): auto-reconnect to database by @jrasm91 in #12320
- fix(web): correct color for active tree item by @alextran1502 in #12318
- refactor(web): upload panel by @jrasm91 in #12326
- fix(mobile): background task crashing on Android by @alextran1502 in #12314
- fix(server): asset no longer has tags by @jrasm91 in #12350
- fix(web): only show valid time zones/offsets, update list based on date by @C-Otto in #12315
- fix: flash bug on tag by @midzelis in #12332
- fix(web): showing album timeline after adding new assets by @alextran1502 in #12354
- fix(mobile): download asset to DCIM/Immich folder on Android by @alextran1502 in #12355
- fix(web): person asset grid by @jrasm91 in #12370
- fix(server): copy video projection metadata for 360 videos by @mertalev in #12376
- fix(web): auth on navigation from shared link to timeline by @michelheusschen in #12385
- fix(web): broken album thumbnail by @michelheusschen in #12381
- fix(web): ensure shared link covers are full size by @michelheusschen in #12386
- fix(web): show focus outline for asset thumbnails again by @michelheusschen in #12382
📚 Documentation
- docs: Fix link to ioredis docs by @halkeye in #12291
- docs: Add conditional album storage template information by @feyst in #12218
🌐 Translations
- feat(web): add Malay language by @jrasm91 in #12311
- chore(web): update translations by @weblate in #12265
New Contributors
- @halkeye made their first contribution in #12291
- @bugfest made their first contribution in #6455
- @Lukasdotcom made their first contribution in #12269
Full Changelog: v1.113.1...v1.114.0
v1.113.1
v1.113.1
Hotfixes
This release fixes some bugs introduced in version v1.113.0 and added some enhancements to the new Folders and Tags feature
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🌟 Enhancements
- feat(web): tag button in album/shared album by @alextran1502 in #12172
- feat(web): load original panorama image when zoomed in to 75% or above by @TapuCosmo in #12222
- feat(web): shared breadcrumbs component for folders and tags by @ben-basten in #12215
🐛 Bug fixes
- fix(web): memory view in timeline href by @alextran1502 in #12158
- fix(web): unable to scroll timeline after using gesture by @kaziu687 in #12163
- fix(web): hide tree view text overflow with ellipsis by @ben-basten in #12161
- fix: keyword parsing by @jrasm91 in #12164
- fix(web): avoid deleting empty album unexpectedly by @michelheusschen in #12175
- fix(server): remove offline assets from trash by @etnoy in #12199
- fix(server): get assetFiles when retrieving assets WithoutProperty.THUMBNAIL by @mPyKen in #12225
- fix(mobile): Android back gesture closes app by @imondrag in #12221
- fix(web): auto grow area extend when there is no content by @alextran1502 in #12197
- fix(mobile): set SSL options properly in background backup process (#11870) by @yjiang-c in #12206
- fix: hide scrollbar when the asset grid is empty by @martabal in #12217
- fix(server): remove thumbnailAt in asset_job_status for missing thumbnails by @mPyKen in #12254
📚 Documentation
- docs(project): lightroom project by @bmachek in #12149
- docs: update google oauth examples by @malavolti in #12162
- docs: fixing example docker compose by @Biepa in #12230
New Contributors
- @bmachek made their first contribution in #12149
- @malavolti made their first contribution in #12162
- @Qhilm made their first contribution in #12178
- @niklasfi made their first contribution in #12180
- @imondrag made their first contribution in #12221
- @Biepa made their first contribution in #12230
Full Changelog: https://github.com/immich-app/immich/compare/v1.113.0...
v1.113.0
v1.113.0
Warning
Breaking changes
For OAuth users, please replace app.immich:/
with app.immich:///oauth-callback
for the Redirect URI in your OAuth provider settings
Highlights
Welcome to release v1.113.0
of Immich! This is one of the biggest releases yet, introducing some of the most requested features since the early days of Immich. Let's dive right into what we have in place for this release:
- Folder view
- Tags
- Timeline improvements
- Library refresh stability
- Mobile album sync
Folder view
You can now browse your photos and videos by folder like in a file explorer. You can use the storage template migration feature for the best experience with uploaded assets in this view.
This feature is especially useful for scanned photos, which are difficult to put in a timeline. It has been a long-requested feature.
You can enable this feature from the Users Settings > Features > Folders
.
The UI is currently only available for the web; mobile will come in a subsequent release.
Tags
Immich now supports hierarchical tags, with the ability to read existing tags from the TagList
and Keywords
exif properties. Any changes to tags made through Immich are also written back to a sidecar file. You can re-run the metadata extraction jobs for all assets to import your existing tags.
You can enable this feature from the Users Settings > Features > Tags
.
The UI is currently only available for the web; mobile will come in a subsequent release.
tag-operations-1.mp4
Timeline improvements
This release introduces a rewrite of the web timeline component. It can now handle a large number of assets in a single day or month and has been successfully tested with a very large data set (over a million assets). Photographers frequently request this since they can easily take thousands of photos in a given day.
With these performance improvements, you'll see fewer placeholders while loading, which will make for a more fluid scrolling and scrubbing experience.
Library refresh stability
In relation to the previous point, the stability of library scanning has improved. Previously, you could run out of memory when starting a refresh with libraries containing millions of assets. Now, we queue the refresh jobs in batches. These enhancements won't make scanning go any faster, but they greatly reduce the likelihood of out-of-memory errors that would cause Immich to crash.
Mobile album sync
You can now sync or mirror an album from your phone to the Immich server on your account. For example, if you select Recents
, Camera
and Videos
album for backup, the corresponding album with the same name will be created on the server. Once the assets from those albums are uploaded, they will be put into the target albums automatically.
You can enable this feature from the album selection in the backup screen.

For existing installations, you can sync the already uploaded assets by going to the backup screen and pressing the Sync
button.

Have a wonderful weekend,
Cheers!
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🚨 Breaking Changes
- feat(server): granular permissions for api keys by @jrasm91 in #11824
- refactor(server): stacks by @jrasm91 in #11453
- fix(server): album statistics endpoint by @jrasm91 in #11924
- fix: remove
asset.resized
by @jrasm91 in #11983 - fix(mobile): use a valid OAuth callback URL by @qrkourier in #10832
🚀 Features
- feat: folder view by @davidakerr in #11880
- feat(web): Scroll to asset in gridview; increase gridview perf; reduce memory; scrollbar ticks in fixed position by @midzelis in #10646
- feat: loading screen, initSDK on bootstrap, fix FOUC for theme by @midzelis in #10350
- feat(mobile): preserve mobile album info on upload by @alextran1502 in #11965
- feat: tags by @jrasm91 in #11980
- feat(web): jump to timeline by @alextran1502 in #12117
🌟 Enhancements
- feat(server): do not automatically download android motion videos by @jrasm91 in #11774
- feat(web): pasting coordinates by @michelheusschen in #11866
- feat(web): drag and drop or paste directories for upload by @simkli in #11879
- feat(web): Left hand navigation for memories by @carlesalbasboix in #11913
- feat(web): my immich shortcut by @danieldietzler in #12007
- fix(web): show a clearer confirmation message when deleting an unnamed album by @Snowknight26 in #11988
- feat(format): nrw format by @avsm in #12048
- feat(web): restore scroll position on navigating back to search page by @alextran1502 in #12042
- feat(server): Storage template support album condition by @feyst in #12000
- fix(mobile): Changes in the UI for the image editor pages by @Yuvi-raj-P in #12018
- feat(web): announce notifications to screen readers by @ben-basten in #12071
- fix(server): don't crash when refreshing large libraries by @etnoy in #7934
- feat(server): sort images in duplicate groups by date by @GeoffreyFrogeye in #12094
- feat(ml): support dynamic scaling by @rkojedzinszky in #12065
- feat(web): navigate assets with gestures (next/prev) by @kaziu687 in #11888
- fix(mobile): allow create empty non-shared albums, add proper button colors by @src52 in #12103
- feat: user's features preferences by @alextran1502 in #12099
- chore(server): log path when generating external thumbnail by @etnoy in #12107
🐛 Bug fixes
- fix(web): focus trap inside portal by @michelheusschen in #11797
- fix(mobile): show correct notification icon for android by @karthikraja001 in #11863
- fix(web): show camera make in search options after searching by @michelheusschen in #11884
- fix(web): correctly populate the camera model search dropdown by @Snowknight26 in #11883
- fix(server): create shared album from the mobile app does not trigger send email invite by @alextran1502 in #11911
- fix(server): do not match live photos across libraries by @jrasm91 in #11952
- fix(web): rating stars accessibility by @ben-basten in #11966
- fix(mobile): Fix for incorrectly naming edited files and structure change by @Yuvi-raj-P in #11741
- fix: align camera model drop down behavior with other drop downs on web and mobile by @x24git in #11951
- fix(web): announce current theme to screen reader users by @ben-basten in #12039
- fix(web): show supporter badge for account less than 14 days by @alextran1502 in #12058
- fix(web): shared link expiration date accessibility by @ben-basten in #12060
- chore(web): ignore shortcut toggle when entering email and password by @alextran1502 in #12082
- chore(web): ensure goto is awaited for login page by @alextran1502 in #12087
- fix(server): ensure new exclusion patterns work by @etnoy in #12102
- fix(server): skip smtp validation if unchanged by @michelheusschen in #12111
- fix(mobile): long waiting time for login request when server is unreachable by @alextran1502 in https...
v1.112.1
v1.112.1
Hotfixes
- Fixed entering backup screen always shows the permission prompt on Android
- Fixed the
Load original image
mechanism.
Include the v1.112.0
release note below for your convenience
Highlights
Welcome to the release of v1.112.0
of Immich. This release packs with new UI features and enhancements, and many bugs are getting squashed. We hope you enjoy this release. Some of the key highlights include:
- Material color theming for the mobile app
- Open in map view on the web
- Star rating
- Screen stays on and auto darkens when performing a long session of foreground upload
- Notable fix: Uploading assets from iCloud causing the iOS mobile app to crash
- Notable fix: Photos and videos belonging to a person are now all displayed in the person's view on the mobile app
Material color theming for the mobile app
The app has had a makeover to prepare for the new school year. You can now choose a different primary color in the app, and the new color will be applied across the app's elements. There are a variety of minor tweaks in UI elements to make the app appear more consistent and aesthetically pleasing.
Open in map view on the web
You can now navigate to the map directly from the asset's detail panel by clicking on the map icon at the top right corner of the minimap.
Star rating
As one of the most commonly used pieces of information for photographers, the star rating information in EXIF will now be included in the extracted data. You can run the extract metadata job for all to populate this information in your instance.
Enabling this feature in User Settings > App Settings > Star Rating
lets you view and set the star rating information in the detail panel.
The edited information will be saved in the companion sidecar XMP file.
Always-on screen for foreground upload
When entering the backup screen and running foreground backup, the screen will now stay on and automatically darken after 30 seconds.
New search models
Immich now supports a set of newer models with very competitive performance.
Higher MACs implies the model is slower and vice versa.
A special mention goes to ViT-B-16-SigLIP__webli
, which outperforms several much larger ViT-L models despite being the same size as the default model. However, it is a bit slower than the default. At the same size, ViT-B-16-SigLIP-384__webli
is among the best models period, at the cost of being much slower than other models of its size. It's ideal for memory-constrained environments that still want the best quality.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🐛 Bug fixes
- fix(mobile): load original by @alextran1502 in #11786
- fix(mobile): android always prompts permission when accessing backup page by @alextran1502 in #11790
📚 Documentation
- chore(docs): Encode db dump in UTF-8 for windows by @thariq-shanavas in #11787
Full Changelog: v1.112.0...v1.112.1
v1.112.0
v1.112.0
Highlights
Welcome to the release of v1.112.0
of Immich. This release packs with new UI features and enhancements, and many bugs are getting squashed. We hope you enjoy this release. Some of the key highlights include:
- Material color theming for the mobile app
- Open in map view on the web
- Star rating
- Screen stays on and auto darkens when performing a long session of foreground upload
- Notable fix: Uploading assets from iCloud causing the iOS mobile app to crash
- Notable fix: Photos and videos belonging to a person are now all displayed in the person's view on the mobile app
Material color theming for the mobile app
The app has had a makeover to prepare for the new school year. You can now choose a different primary color in the app, and the new color will be applied across the app's elements. There are a variety of minor tweaks in UI elements to make the app appear more consistent and aesthetically pleasing.
Open in map view on the web
You can now navigate to the map directly from the asset's detail panel by clicking on the map icon at the top right corner of the minimap.
Star rating
As one of the most commonly used pieces of information for photographers, the star rating information in EXIF will now be included in the extracted data. You can run the extract metadata job for all to populate this information in your instance.
Enabling this feature in User Settings > App Settings > Star Rating
lets you view and set the star rating information in the detail panel.
The edited information will be saved in the companion sidecar XMP file.
Always-on screen for foreground upload
When entering the backup screen and running foreground backup, the screen will now stay on and automatically darken after 30 seconds.
New search models
Immich now supports a set of newer models with very competitive performance.
Higher MACs implies the model is slower and vice versa.
A special mention goes to ViT-B-16-SigLIP__webli
, which outperforms several much larger ViT-L models despite being the same size as the default model. However, it is a bit slower than the default. At the same size, ViT-B-16-SigLIP-384__webli
is among the best models period, at the cost of being much slower than other models of its size. It's ideal for memory-constrained environments that still want the best quality.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🚀 Features
- feat(server): search unknown place by @jforseth210 in #10866
- feat(web): open in map view by @jrasm91 in #11592
- feat(mobile): add support for material themes by @pruthvi-21 in #11560
- feat(mobile): enable wakelock on backup page by @Saschl in #11621
- feat(mobile): darken screen on backup page by @Saschl in #11623
- feat(web): add Exif-Rating by @stumpigit in #11580
- feat(web): add privacy step in the onboarding by @martabal in #11359
- feat(web): image editor - panel and cropping by @ilyaChuk in #11074
🌟 Enhancements
- feat(ml): add more search models by @mertalev in #11468
- feat(web): Add stacking option to deduplication utilities by @i-am-a-teapot in #11114
- chore(server): support pgvecto.rs 0.3.0 by @mertalev in #11624
- feat: change web asset detail map to zoom level 12.5 by @zackpollard in #11643
- feat(web): improve group-tab accessibility by @michelheusschen in #11647
- feat(web): improve shared link management on mobile by @michelheusschen in #11720
🐛 Bug fixes
- fix: make HTML valid by @benmccann in #11465
- fix(mobile): Crop presets break crop rectangle #11462 by @Yuvi-raj-P in #11467
- fix(server): external domain url validation by @martyfuhry in #11493
- fix(web): websocket over ipv6 by @michelheusschen in #11508
- fix(web): correctly format future timeline dates by @michelheusschen in #11506
- fix(web): prevent change-location suggestion race-condition by @oidq in #11523
- fix(mobile): Naming fix for the edited file by @Yuvi-raj-P in #11503
- fix(mobile): autofill by @alextran1502 in #11591
- refactor(server): startup checks for vector extension by @mertalev in #11559
- fix(web): slideshow on iphone by @michelheusschen in #11599
- chore(server): remove get person asset limit by @alextran1502 in #11597
- fix(server): video duration extraction by @michelheusschen in #11610
- fix(server): handle numeric 'Image Description' and 'Description' values by @jo-gross in #11636
- fix(mobile): iOS crashing when download iCloud content by @alextran1502 in #11639
- fix(server): avoid transcoding thumbnail streams by @mincrmatt12 in #11603
- fix(web): keep album description in sync by @michelheusschen in #11652
- fix(server): use luxon for maxdate validator by @michelheusschen in #11651
- chore(mobile): refactor detail panel by @alextran1502 in #11662
- fix(mobile): incorrect remove action from the album assets detail view by @alextran1502 in #11671
- fix(web): asset viewer dynamic size by @michelheusschen in #11697
- fix(web): use fallback image if shared asset isn't resized by @michelheusschen in #11704
- fix(web): hide import json button when using config file by @michelheusschen in #11714
- fix(web): detail panel out of sync when reopening by @michelheusschen in #11713
- fix(web): single row of items by @michelheusschen in #11729
- fix(server): follow symlinks when zipping assets by @C-Otto in #11685
- fix(web): fallback aperture info when there is no locale set by @alextran1502 in #11770
- fix(ml): pydantic dep causes starting up issue by @alextran1502 in #11773
📚 Documentation
- Add Immich Distribution to Community Projects page by @nsg in #11576
- feat(docs): privacy policy by @alextran1502 in #11535
- chore: more cursed knowledge by @jrasm91 in #11630
- chore: more cursed knowledge by @jrasm91 in #11631
- docs: how to decrease Redis logs by @mmomjian in #11638
- fix(docs): update documentation by @C-Otto in #11655
- chore: add warning to media location env var by @bo0tzz in #11665
- docs: Update docs + example.env for DB_PASSWORD by @mmomjian in #11678
- docs: update custom map style guide by @pcouy in #11350
🌐 Translations
- feat(web): more languages by @jrasm91 in #11488
- chore(web): update translations by @weblate in #11458
- chore(web): update translations by @weblate in #11533
New Contributors
v1.111.0
v1.111.0
Highlights
Welcome to release v1.111.0
of Immich; this release focuses on UI enhancement, accessibility, and refactoring and adds a new editor feature to the mobile app, which includes photo rotation and cropping. We hope you like it. Some of the key highlights include:
- Photo editor on the mobile app
- Notable fix: Random logout on the mobile app when the connection between the app and server is unstable.
Rotating and cropping on the mobile app
Thanks to @Yuvi-raj-P, we can rotate and crop a photo on the mobile app. The edited new file will be created, which can be selected for upload to the Immich server or for sharing with others.
This is the first round of implementation of this feature, let's us know your feedback and how do you want this to be improved.
Edit option is added to the bottom bar | Edit mode (Crop/Rotate) |
---|---|
![]() |
![]() |
Cropping | End result |
---|---|
![]() |
![]() |
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🗄️ Server
- chore(server): clean mail-templates and add tailwind style by @hitech95 in #11296
- chore(server): email template minor styling by @alextran1502 in #11387
- feat(server): significantly improve Australian reverse geocoding accuracy by @lhjt in #11370
- fix(server): use fqdn for og:image meta tag value by @eleith in #11082
- feat(server): reverse geocoding endpoint by @jrasm91 in #11430
- fix(server): correct person birth date across timezones by @michelheusschen in #11369
📱 Mobile
- chore(deps): update dependency flutter to v3.22.3 by @renovate in #11301
- fix(mobile): search filter translation + fixes by @waclaw66 in #11141
- feat(mobile): adds crop and rotate to mobile by @Yuvi-raj-P in #10989
- fix(mobile): client TLS on ios by @alextran1502 in #11415
- chore(mobile): Add text to bottom gallery bar by @alextran1502 in #11417
- fix(mobile): mobile logging out randomly by @alextran1502 in #11431
- chores(mobile): Translations update by @alextran1502 in #11454
🖥️ Web
- fix(web): buy immich translations by @michelheusschen in #11379
- fix(web): easier alt text translation for other languages by @ben-basten in #11124
- chore(web): improve responsiveness in Album and Shared Album pages on small devices by @ayykamp in #11055
- fix(web): responsive design when selecting assets in an album by @martabal in #11169
- feat(web): search bar keyboard accessibility by @ben-basten in #11323
- feat(web): Duplicate-Page shortcut changes by @JW-CH in #11183
- fix(web): slideshow settings title by @michelheusschen in #11396
- fix(web): translation leftovers by @waclaw66 in #11412
- chore(web): update translations by @weblate in #11365
- fix(web): avoid nesting buttons inside links by @michelheusschen in #11425
- feat(web): more localized number formatting by @michelheusschen in #11401
- fix(web): timeline group date formatting by @michelheusschen in #11392
- chore(web): update translations by @weblate in #11416
- chore(web): update translations by @weblate in #11429
📓 Documentation
🔨 Maintenance
- chore(deps): update dependency byte-size to v9 by @renovate in #11356
- chore(deps): update docker.io/redis:6.2-alpine docker digest to e3b17ba by @renovate in #11302
- chore(deps): update dependency @types/picomatch to v3 by @renovate in #11096
- chore(deps): update terraform cloudflare to v4.38.0 by @renovate in #11423
- chore(deps): update dependency node to v20.16.0 by @renovate in #11421
- docs: warning to not edit volumes in compose by @mmomjian in #11432
- chore(deps): update node.js to eb8101c by @renovate in #11436
- fix(deps): update dependency exiftool-vendored to v28.2.0 by @renovate in #11439
- chore(deps): update dependency exiftool-vendored to v28 by @renovate in #11440
- chore(deps): update base-image to v20240730 (major) by @renovate in #11447
Other changes
- chore(mobile): post release task by @alextran1502 in #11382
- chore: bump vitest to 1.6.0 by @etnoy in #11386
- fix(server): make vitest pick up edited files by @etnoy in #11385
- chore(server): make vite-tsconfig-paths a dev dependency instead by @etnoy in #11404
New Contributors
- @ayykamp made their first contribution in #11055
- @Yuvi-raj-P made their first contribution in #10989
- @lhjt made their first contribution in #11370
- @eleith made their first contribution in #11082
Full Changelog: https://github.com/immich-app/immich/compare/v1.110.0...
v1.110.0 - 40_000 stars release
v1.110.0 - 40_000 stars release
Hello, Alex here. I want to thank you all again for your feedback and support. I found a design I made in April 2022 to show off the achievement to my family of getting 1000 stars on GitHub when Immich was still a baby. Now, the project has grown to join the big boy club. Thank you for all the stars and love that you sent us. We are forever grateful.
I hope this release helps clarify our intentions and mission surrounding the financial support for Immich and open-source software in general. We could not have come back with a better solution without you.
If you are interested in watching, here is a video from FUTO addressing many topics and concerns that have been discussed over the past week. I hope you like it and find it informative. Youtube
Warning
If you use CUDA for machine learning, the minimum NVIDIA driver version is now 545 from 535.
Highlights
Welcome to release v1.110.0
of Immich. This release addresses the wording change in our introduction of a way to purchase Immich, as well as many bug fixes and enhancements. Some of the highlights include
- Migration to Immich hosted map tile server
- Wording changes to purchase mechanism.
- Claiming product keys mechanism for past financial donors of the project.
- TLS client certificate for the mobile app.
New Immich-Hosted Maps
Previously, our maps were hosted by a third-party provider; however, going forward, that will no longer be the case. We are now hosting the map tiles ourselves at tiles.immich.cloud, and therefore your web or mobile client will no longer reach out to other third parties when browsing the map! This change should be pretty transparent, or if anything hopefully feel faster, however if you do experience problems with the map after this release, please reach out to us on Discord or GitHub!
Wording and minor changes to the purchase mechanism.
As mentioned in our follow-up announcement about the wording changes for the purchase mechanism, we made changes to the following items:
- The
licensed
orunlicensed
word will now be called "The-Words-Which-Must-Not-Be-Named" in Immich's world 😂 - Replaced
"The-Words-Which-Must-Not-Be-Named"
indication with a Buy button. - The buy button will only show when the account age is older than 14 days.
- Added options to allow users to hide the Buy button for 30 days or indefinitely. If you hide the button indefinitely and later change your mind, you can find the option to buy Immich directly under
User Settings > Purchase Settings
- Added more information to clarify our mission and intentions.
- Replaced the
"The-Words-Which-Must-Not-Be-Named"
badge with a supporter badge. - Added option to hide the supporter badge.
Hide buy button options

Supporter badge
Give it a hover for extra shininess!
Hide supporter badge options
After activation

User settings

Claiming a product key
For the past financial donors of the project, you can claim your product keys from https://buy.immich.app/claim using your GitHub credentials.

Thank you for your support.
TLS client certificate for the mobile app
With @yjiang-c's contribution, you can now add a custom TLS certificate on the mobile app if your networking is configured to accept one.
immich_demo.mp4
Better OpenVINO support
OpenVINO is now faster and works for a wider range of hardware. Previously, it was common for it to fail for either face detection or smart search depending on hardware. Since this involved making changes in the models, if you're using OpenVINO, please delete your model cache volume so it downloads the updated models. You only need to do this if you're using OpenVINO.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
What's Changed
🗄️ Server
- fix(server): static mail attachment extension by @danieldietzler in #11254
- feat(server): accepted video containers by @mertalev in #11274
- fix(server): exif description whitespace handling by @michelheusschen in #11249
- fix(server): correct openapi response type for getServerLicense() by @michelheusschen in #11261
- fix(server): DateTimeOriginal overwrite issue with sidecar file by @michelheusschen in #11306
- fix(deps): exiftool-vendored by @jrasm91 in #11338
- feat: people infinite scroll by @michelheusschen in #11326
- feat(server): Allow activating non-admin user with server license by @stephen304 in #11206
📱 Mobile
- feat(mobile): remove asset from album in gallery view by @fyfrey in #11184
- fix(mobile): negative coordinate input by @michelheusschen in #11292
- fix(mobile): native share functionality on iPad by @Saschl in #11294
- feat(mobile): Adding setting in mobile app to TLS client certificate by @yjiang-c in #10860
🖥️ Web
- fix(web): use fixed position for download and upload panel by @michelheusschen in #11279
- feat(web): coordinate input for asset location by @michelheusschen in #11291
- chore(web): update translations by @weblate in #11165
🧠 Machine Learning
- feat(ml): improved ARM-NN support by @fyfrey in #11233
- fix(deps): update machine-learning by @renovate in #10740
📓 Documentation
- docs: 40k stars! ⭐ by @danieldietzler in #11265
- docs: corrected container port for immich_microservices by @itsnikhil in #11170
- chore(docs): compress homepage screenshots, 10x smaller by @zackpollard in #11347
- docs: add product key to roadmap by @aviv926 in #11351
- fix: "acess" should be "access" by @imakida in #11363
- docs: Add missing info to asset types and storage locations by @aviv926 in #11358
🔨 Maintenance
- chore(deps): bump docker/setup-buildx-action from 3.4.0 to 3.5.0 by @dependabot in #11284
- chore(deps): bump docker/setup-qemu-action from 3.1.0 to 3.2.0 by @dependabot in #11283
- chore(deps): bump docker/build-push-action from 6.3.0 to 6.5.0 by @dependabot in #11282
- chore(deps): update machine-learning by @renovate in #11299
- chore(deps): update base-image to v20240723 (major) by @renovate in #11311
- chore(deps): update node by @renovate in #11300
- chore(deps): update machine-learning by @renovate in #11310
- chore(deps): update node by @renovate in #11322
- chore(deps): update redis:6.2-alpine docker digest to e3b17ba by @renovate in #11303
Other changes
- chore(docs): change some wording by @alextran1502 in #11201
- chore(mobile): post release task by @alextran1502 in #11220
- fix(mobile): changed "x jaren" to "x jaar" in dutch app translations by @JordyEGNL in #11371
New Contributors
- @itsnikhil made their first contribution in ...
v1.109.2
v1.109.2
Hotfixes
- Fixed license info panel doesn't disappear when moving the mouse outside the box.
- Fixed server not starting up on ARM devices
What's Changed
🖥️ Web
- fix(web): hide license popup after mouse leave by @michelheusschen in #11193
- fix(web): user can remove server license by @alextran1502 in #11199
🔨 Maintenance
Full Changelog: https://github.com/immich-app/immich/compare/v1.109.1...
v1.109.1
v1.109.1
Hotfixes
- Fix an issue to prevent the machine learning container from starting up
What's Changed
🗄️ Server
Other changes
New Contributors
Full Changelog: v1.109.0...v1.109.1