Releases: immich-app/immich
v1.105.0
v1.105.0
Caution
Changes in glob path external library
Library import paths no longer support wildcards (* notation/globs). If your library was previously using this, please update affected paths to point to directories instead.
Note: exclusion paths remain unchanged and still support glob syntax.
Highlights
Welcome to release v1.105.0
of Immich. WOW, 2 releases in 2 days! Immich's full-time core team has taken effect. Slightly kidding there, but we have a lot of bug fixes since the last release that we would like to push out to avoid you all encountering annoying bugs when using the software. Some highlights can be found below:
- The mobile app now uses a more efficient sync algorithm.
- Fixed assets status not showing correctly when deleting assets from the server when opening the mobile app.
What's Changed
⚠️ Breaking Changes
- fix(server): support special characters in library paths by @sushain97 in #9385
🗄️ Server
- fix(server): regenerate (extract) motion videos by @jrasm91 in #9438
- chore(server): remove unused column by @jrasm91 in #9431
- fix(server): addAssets and removeAssets handle duplicate assetIds by @eric-barch in #9436
- refactor(server): logger by @jrasm91 in #9472
- feat(server): run microservices in worker thread by @zackpollard in #9426
- fix(server): new full sync return stacked assets individually by @fyfrey in #9189
- fix(server): sync issue when delete remotes assets by @alextran1502 in #9479
📱 Mobile
🖥️ Web
- fix(web): show w x h correctly when media is rotated by @jrasm91 in #9435
- feat(web): combine auth settings by @jrasm91 in #9427
- Fix typo in error page title by @donebydavid in #9451
- fix(web): decrease asset viewer navigation area size by @Snowknight26 in #9455
- fix(web): admin settings number input validation by @michelheusschen in #9470
📓 Documentation
- fix install.sh add random password for .env by @xiagw in #9282
- docs: remove mention of delete being disabled for external assets by @benmccann in #9465
- docs(server,ml): update nvidia toolkit link by @mertalev in #9477
- Added Swedish translation of README. by @klahr in #9464
🔨 Maintenance
- chore(deps): update node.js to 291e84d by @renovate in #9449
- fix(deps): update typescript-projects by @renovate in #9454
- chore(deps): update node.js to 53108f6 by @renovate in #9450
- chore(deps): update base-image to v20240514 (major) by @renovate in #9469
- fix(deps): update machine-learning by @renovate in #9304
- chore(deps): update machine-learning by @renovate in #9478
- chore(deps-dev): bump werkzeug from 3.0.1 to 3.0.3 in /machine-learning by @dependabot in #9480
- chore(deps): bump tqdm from 4.66.1 to 4.66.3 in /machine-learning by @dependabot in #9481
- fix(deps): update dependency @zoom-image/svelte to v0.2.11 by @renovate in #9482
New Contributors
- @donebydavid made their first contribution in #9451
- @eric-barch made their first contribution in #9436
- @xiagw made their first contribution in #9282
- @klahr made their first contribution in #9464
Full Changelog: v1.104.0...v1.105.0
v1.104.0
v1.104.0
Caution
EXTERNAL LIBRARY EDITABILITY
For external library users, you can now manage your assets directly from Immich's user interface, i.e. you can edit date/time, location information, and delete from the web and the mobile app.
If you don't want Immich to handle those operations, please make sure to have the read-only, i.e., :ro
flag on your mount point in the docker-compose.yml
file.
Live stream - Immich Q&A ft. Eron Wolf & Louis Rossmann from FUTO
Last week, we had a live stream to answer your questions about Immich joining FUTO. You can watch the VOD here.
Highlights
Welcome to release v1.104.0
of Immich. This release includes new features, bug fixes, and improvements. The core team will now focus on tasks to bring us to a stable release. The highlights of this release can be found below.
- Editability of external library
- Notification foundation - SMTP Email
Editability of external library
Yes, we've heard you guys! You can now edit date/time and location information and even delete assets in an external library directly from Immich. If you don't want to use this feature, you should make sure to have the :ro
flag on your docker mount in the docker-compose.yml
file.
Notification - SMTP Email
Thanks, @hitech95, for kickstarting this feature,@jrasm91, and @danieldietzler for finishing it. We now have basic notification built-in, using email. The first mechanism that uses email is to send an email to a new user with information about the account and the instance they were invited to.


What's Changed
⚠️ Breaking Changes
🗄️ Server
- feat(server): email notifications by @hitech95 in #8447
- feat(server): immich checksum header by @jrasm91 in #9229
- fix(server, web): reassigning faces by @martabal in #9265
- fix(server): show partners archived photos on mobile timeline by @alextran1502 in #9194
- refactor: create album users by @jrasm91 in #9315
- feat(server) Random Endpoint use querybuilder and return exifInfo by @JW-CH in #9301
- feat(server): optimize person thumbnail generation by @mertalev in #7513
- chore(server): remove unused deps by @jrasm91 in #9334
- refactor(server): auth route metadata by @jrasm91 in #9344
- perf: cache
getConfig
by @mertalev in #9377 - perf: cache transcoding devices by @mertalev in #9381
- chore(server): less rigid transcoding tests by @mertalev in #9401
- feat(server, web): include pictures of shared albums on map by @andreasgerstmayr in #7439
- chore(server): email notification button png by @alextran1502 in #9423
- fix(server): put system config by @jrasm91 in #9425
📱 Mobile
- refactor(mobile): entities and models by @alextran1502 in #9182
- fix(mobile): show all places don't show all places by @alextran1502 in #9193
- feat(mobile): play motion video with long press gesture support by @jzhangdev in #6543
- refactor(mobile): services and providers by @alextran1502 in #9232
- fix(mobile): Reset dropdown values in search by location on mobile by @Tushar-Harsora in #9261
- refactor(mobile): pages by @alextran1502 in #9246
- chore(mobile) Linked pt-BR.json with Mobile app and localizely.yml by @Tushar-Harsora in #9281
- Localizely: Translations update by @alextran1502 in #9287
- fix(mobile): allow select empty album as backup album by @alextran1502 in #9290
- refactor(mobile): widgets by @alextran1502 in #9291
- fix(mobile): add user to album using new dto property by @alextran1502 in #9312
- fix(mobile): fix ca-CA.json file name by @aryiu in #9288
- fix(mobile): Fix asset selector title bar text by @ddshd in #9273
- chore(deps): update mobile by @renovate in #7229
- feat(mobile): Add pull to refresh to sharing page by @ddshd in #9274
- Revert "feat(android) Check server is reachable before starting background backup (#8989)" by @alextran1502 in #9324
- fix(mobile): timeline slider no longer disappears by @ConnerWithAnE in #9358
- refactor(mobile): remove shared module by @alextran1502 in #9363
- Localizely: Translations update by @alextran1502 in #9432
🖥️ Web
- feat(web,a11y): replace IconButton with CircleIconButton by @ben-basten in #9153
- refactor(web): search people by @martabal in #9082
- fix(web): Prevent DELETE key from clearing DateInput in modal by @uniqueeest in #8846
- fix(web): missing add photos button in album when viewed as owner by @alextran1502 in #9183
- fix(web): Configure web's immich sdk to use event.fetch by @midzelis in #9233
- feat(web): determine duplication of upload on client by @truongsinh in #8825
- feat(web): expand usage of CircleIconButton by @ben-basten in #9256
- fix(web): Individual Photo Sharing with Album Link #8887 by @iamamansharma in #9264
- fix(web): click on face in detail-panel by @martabal in #9271
- fix(web): stream 360 video instead of fetching entire video by @TapuCosmo in #9279
- fix(web): allow deselecting all assets from select bar by @Snowknight26 in #9320
- fix(web): Selected face in search filter doesn't show border highlight when hovered in light theme by @Tushar-Harsora in #9348
- fix(web): fix logo size on shared pages by @Snowknight26 in #9346
- fix(web): multiple fixes for people by @martabal in #9343
- fix(web): autofocus change name field by @alextran1502 in #9376
- fix(web): Fixed video unmutes when scrubbing by @Tushar-Harsora in #9382
- fix(web): page down shortcut by @martabal in #9397
- chore(web): icon consistency and improvements by @NicholasFlamy in #9403
- feat(web): hide all unnamed by @martabal in #9378
📓 Documentation
- chore: upgrade docusaurus-preset-openapi to remove axios by @benmccann in #9167
- Docs: New Futo milestones by @aviv926 in #9211
- chore(readme): add Brazilian Portuguese readme by @ryanrpj in #7107
- chore: Remove donation info from readme_i18n by @bo0tzz in #9225
- chore: Remove sponsor link from homepage by @bo0tzz in #9226
- chore(docs): Link to helm chart README by @bo0tzz in #9238
- docs: update post-install-steps documentation by @g-bulgarit in #9239
- Specify PowerShell for win backup/restore by @mmomjian in #9262
- docs: add custom map styles community guide by @vovchykbratyk in #9311
- chore: arabic translations by @Me-Mr in #9325
- docs: update portainer.md by @mtwb47 in #9337
- Chore: Add Arabic translations to readme by @Me-Mr in #9342
- docs: backup restore - add warning to not backup DB_DATA_LOCATION by @mmomjian in #9353
- docs: adds hyperlinks for other readme translations by @Me-Mr in #9345
- chore: put back warning banner by @alextran1502 in #9362
- docs: warn against use on NTFS / WSL by @mmomjian in #9371
- docs: add discord link by...
v1.103.1
v1.103.1
There is no mobile release for this version
Hotfixes
- Fixed an issue of being unable to view detailed assets in partner sharing on the web.
Include the v1.103.0
release note for your convenience.
v1.103.0
Highlights
Welcome to the release of v1.103.0
of Immich. This version includes some exciting new features and notable bug fixes. We hope you enjoy this release. Please take a look at the highlights below:
- Read-only album sharing permission
- Permanent URL on the web for asset viewer
- Jump-to-date from memory view on the mobile app
- Action bar in memory view on the web
- Improve geocoding location data
- Notable fix: Occasional logout on iOS
- Notable fix: Asset's status sync issue on the mobile app
- Notable fix: Memory leak causing mobile app crashes when swiping continuously in the detail view
Read-only album-sharing permission
When creating a shared album, you can specify whether the shared users can contribute to it or participate as read-only.

Permanent URL on the web for asset viewer
Assets now have a permanent URL on all views, so you can save a URL and refer back later to access a particular photo or video.
Jump-to-date from memory view on the mobile app
There is now an option to jump to a date from the memory viewer on the mobile app.

Action bar in memory view on the web
You can now select the assets in a certain memory and perform actions like adding to an album, deleting, archiving, favorite, etc.
Improve geocoding location data
The location data is now more consistent in the same area. To apply this change, you can trigger a metadata extraction job for all.
Before | After |
---|---|
![]() |
![]() |
![]() |
![]() |
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🖥️ Web
- fix(web): permanent url for partner page by @alextran1502 in #9158
Full Changelog: v1.103.0...v1.103.1
v1.103.0
v1.103.0
Highlights
Welcome to the release of v1.103.0
of Immich. This version includes some exciting new features and notable bug fixes. We hope you enjoy this release. Please take a look at the highlights below:
- Read-only album sharing permission
- Permanent URL on the web for asset viewer
- Jump-to-date from memory view on the mobile app
- Action bar in memory view on the web
- Improve geocoding location data
- Notable fix: Occasional logout on iOS
- Notable fix: Asset's status sync issue on the mobile app
- Notable fix: Memory leak causing mobile app crashes when swiping continuously in the detail view
Read-only album-sharing permission
When creating a shared album, you can specify whether the shared users can contribute to it or participate as read-only.

Permanent URL on the web for asset viewer
Assets now have a permanent URL on all views, so you can save a URL and refer back later to access a particular photo or video.
Jump-to-date from memory view on the mobile app
There is now an option to jump to a date from the memory viewer on the mobile app.

Action bar in memory view on the web
You can now select the assets in a certain memory and perform actions like adding to an album, deleting, archiving, favorite, etc.
Improve geocoding location data
The location data is now more consistent in the same area. To apply this change, you can trigger a metadata extraction job for all.
Before | After |
---|---|
![]() |
![]() |
![]() |
![]() |
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🗄️ Server
- chore(server): enable swagger to take class validator rules into account by @danieldietzler in #9022
- feat(server): env variable to skip migrations on startup by @mertalev in #9069
- feat: readonly album sharing by @mgabor3141 in #8720
- fix(server): activity with deleted assets / users by @martabal in #9068
- chore(server): remove unused endpoint/service/interface in asset-v1 by @alextran1502 in #9086
- fix(server): default host binding by @jrasm91 in #9090
- chore(server): remove old asset search by @jrasm91 in #9104
- chore: for redis, use service name as the default by @jrasm91 in #9109
- chore(server): default postgres hostname to compose service name by @jrasm91 in #9118
- refactor(server): repositories by @danieldietzler in #9119
- fix(server): asset count on meta tag of shared links by @nghduc97 in #9107
- feat(server): remove inactive sessions by @jrasm91 in #9121
- fix(server): untracked thumbnail and preview images by @mertalev in #9126
- fix(server): Improve reverse geocoded location metadata by @hermesespinola in #9051
- fix(server): stacked assets for full sync, userIds as array for delta sync by @fyfrey in #9100
- chore: lifecycle metadata by @jrasm91 in #9103
📱 Mobile
- chore(mobile): override appbundle on PlayStore before getting released by @alextran1502 in #8960
- dep(mobile): upgrade gradle by @shenlong-tanwen in #8409
- feat(mobile): add i18n in multiselect-grid and update translation (en and fr) by @clementdelestre in #8993
- feat(android) Check server is reachable before starting background backup by @devjn in #8989
- fix(mobile): ios random logout by @alextran1502 in #8997
- feat(mobile) Add zh-TW.json for Traditional Chinese Language Support by @hdlineage in #9046
- feat(mobile): Added "jump to date" functionality to the memory view by @arnolicious in #7323
- fix(mobile): Fixes memory image cache for local images by @martyfuhry in #9019
- fix(mobile): appBar on home screen animates out and doesnt alter asset grid position by @ConnerWithAnE in #9026
- fix(mobile): show places in Search page on mobile by @alextran1502 in #9085
- fix(mobile): group setting change doesn't propagate across the app by @alextran1502 in #9066
- fix(mobile): restore button in asset viewer by @ConnerWithAnE in #8919
- chore(mobile): add toast notification for "Download Started" by @DeadEnded in #9023
- chore(mobile): Use bulk update endpoint by @alextran1502 in #9110
- fix(mobile): sync issue by @alextran1502 in #9149
- chore(mobile): more logs by @alextran1502 in #9081
🖥️ Web
- feat(web): new look option for slideshow by @martabal in #8924
- fix(web): trash page now auto refreshes by @ConnerWithAnE in #8978
- feat(web): support 360 video (equirectangular) by @truongsinh in #8762
- fix(web): wrong month on timeline scrollbar cursor by @alextran1502 in #8996
- refactor(server, web, mobile): Change wording of memory titles by @rawcomposition in #9025
- fix(web): search people by @martabal in #8955
- fix(web): handle non-http client side page error by @nghduc97 in #8901
- feat(web): display age with months if age is less than 2 by @julianwachholz in #9053
- feat(web): assets now have a permanent URL by @midzelis in #8532
- feat(web): upload json config by @truppelito in #8953
- fix(web): Move stack slideshow container higher in the DOM by @Snowknight26 in #8998
- fix(web): closing asset viewer by @martabal in #8933
- feat(web): permanent url in shared link by @alextran1502 in #9083
- fix(web): the selected tab on the sidebar was not always shown as selected by @ConnerWithAnE in #9084
- fix(web): add debounce to location search by @nghduc97 in #9074
- feat(web,a11y): form and search filter accessibility by @ben-basten in #9087
- feat(web): separate command to build with rollup plugin visualizer by @nghduc97 in #9097
- fix(web): fix no matching export error by @mgabor3141 in #8550
- feat(web): standardize CircleIconButton colors by @ben-basten in #9127
- chore(web): remove CircleIconButton slot by @ben-basten in #9131
- feat(web): add menu bar with action buttons to memory view by @alextran1502 in #9141
⚡ CLI
- fix(cli):
--ignore
getting ignored by @mertalev in #9071 - fix(cli): dry run being inaccurate by @mertalev in #9088
📓 Documentation
- docs: update "move all data" instructions in FAQ by @abernds...
v1.102.3
v1.102.3
There is no mobile release for this version
3 hotfixes in a day - sorry guys
Hotfixes
- Actual fix for logout issue across the web and the mobile app
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🗄️ Server
- feat(server): enable AV1 encoding for NVENC by @mertalev in #8959
- fix(server): session refresh by @jrasm91 in #8974
📱 Mobile
- Revert "feat(android) Check server is reachable before starting background backup (#8594)" by @alextran1502 in #8958
Full Changelog: https://github.com/immich-app/immich/compare/v1.102.2...
v1.102.2
v1.102.2
Hotfixes
- Next attempt to fix auto-logout on Android
- Fixed issue with input focus reset on search people page
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🗄️ Server
📱 Mobile
- Revert "fix(mobile): random logout (#8739)" by @alextran1502 in #8954
🖥️ Web
New Contributors
Full Changelog: https://github.com/immich-app/immich/compare/v1.102.1...
v1.102.1
v1.102.1
Hotfixes
- Fixed Android mobile app randomly logout for user with background backup enabled
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🗄️ Server
- refactor(server): move file file report endpoints to their own controller by @danieldietzler in #8925
- refactor: system metadata by @jrasm91 in #8923
📱 Mobile
🖥️ Web
- fix(web): restore button in asset viewer by @ConnerWithAnE in #8935
New Contributors
- @ConnerWithAnE made their first contribution in #8935
- @devjn made their first contribution in #8594
Full Changelog: https://github.com/immich-app/immich/compare/v1.102.0...
v1.102.0 - 30,000 Stars Release 🌟
v1.102.0
⚠️ Breaking Changes (OPT-IN ONLY)
Caution
For people always pulling the latest compose file, this is a breaking change!
Disregarding the notes will result in (temporary) data loss!
Background
In the past, we've seen many cases where people accidentally deleted their Postgres data by (unintentionally) deleting the docker volume (e.g., docker compose down -v
).
This is unfortunate as there is no way to recover that data (if you don't have a backup, MAKE BACKUPS!).
We have been thinking about mounting the Postgres data to a local folder for a while but always hesitated, as this would break existing instances due to people not reading the change logs carefully. However, there have been too many issues, and we ultimately decided to make that change.
What do I have to do?
Nothing. You should only copy the compose file with every new release if we tell you to do so in the release notes. Generally, we don't recommend making changes to existing instances. If you have never had issues, attempting to migrate the data will put it at (an unnecessary) risk.
I want to migrate my docker volume to a local folder
Unfortunately there isn't a "proper" way to export a docker volume.
The recommended method is to mount the volume and the directory (you want to copy your data to) to an arbitrary container, get a shell inside that container and copy the folder manually.
Caution
Take backups before attempting this. Especially make sure you have a current database dump (pg_dump
)
Warning
Do not use a directory under /mnt
for the postgres location if you are using WSL.
Generally (on all operating systems) we recommend against using a network share for your database location. This is bound to break and cause all sorts of weird issues.
If you would like to opt-in to this change, there is an additional environment variable in the .env
file as well as a modification in your existing docker-compose.yml
file.
docker-compose.yml
file
database:
container_name: immich_postgres
image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- - pgdata:/var/lib/postgresql/data
+ - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
volumes:
- pgdata:
model-cache:
.env
file
[...]
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
+DB_DATA_LOCATION=./postgres
Highlights
Welcome to release version v1.102.0
of Immich. We reached 30,000 stars!!! Thank you so much for your continuous support. We are proud to bring you this release with a focus on QoL improvements and bug fixes across the web, mobile, and server. We hope you enjoy it. Some of the highlighted changes can be found below.
- In-app language settings
- Haptic feedback control
- Enhanced UI/UX on the album list page
- AV1 transcoding
- Choose between WebP and JPEG for thumbnails and previews
- Option to use embedded preview in RAW images
- Option to fill the screen with slideshows view
In-app language settings
You can now keep your phone interface in a different language and have Immich's app in a different language with the new in-app language setting. It can be found in Settings > Languages
. After making the change, the new language will propagate across the app.
Haptic feedback control
We added an option in the mobile app to disable haptic feedback. It can be found under Settings > Preferences > Haptic Feedback
Web album page's UI/UX enhancement
Album Grouping
With this new feature, albums can now be grouped by year or owner (or not grouped at all). This can be very useful to not get lost when having a lot of albums, that even are sometimes similar.
- This works both on "Covers" and "List" views.
- Albums are first grouped, then sorted inside of those groups.
- Group sorting can be either ascending or descending.
Group by
drop-down is located next to theSort by
one. The two buttons on the right areExpand all
andCollapse all
. They are not displayed whenNo grouping
is selected.
- Groups can be collapsed (saved in the local storage).
Collapse.mp4
Other UI Changes
- Album cards now display the month and year of the photos.
- Same month and year:
Jan 2024
- Different months, same year:
Jan - Mar 2024
- Different year:
Sep 2023 - Feb 2024
- Same month and year:
- Album cards now display the title over up to 2 lines. If the title is longer, it is cropped with an ellipsis (no change).
- "Edit Album" modal design has been slightly changed.
Quality of Life
Album List
- The context menu now has 4 options:
Download
,Edit
,Share
andDelete
.
- The context menu can now be displayed by right-clicking on an album card.
- The context menu is now available on the list view (both
Edit
andRemove
buttons have been removed). - The context menu is now available on the "Sharing" page, with only 1 option:
Download
. - The search feature now ignores accents.
Album View
- When one and only one photo is selected, the context menu now displays the option
Set as album cover
.
AV1 transcoding
This release adds support for the next-gen AV1 format using the SVT-AV1 encoder. AV1 promises smaller files at the same quality as the other codecs we support, especially for high resolution videos. Note that client support for AV1 is more limited, so we recommend trying it on one (server-only) video and confirming it plays before transcoding your full library with it.
New image settings
Before this release, all preview images were JPEG, and all thumbnails were WebP. This is now customizable, so you can set them as you like. This also paves the way for adding other formats with minimal change.
There's also a new option to use the embedded preview in RAW images instead of converting the RAW image itself. This is particularly useful if the converted images from a camera don't look quite right or if you have custom-developed previews you'd like to use instead.
Option to fill the screen with slideshows view
We added a new option in the slideshow settings to fill the screen with the slideshow view, this will give you a more immersive viewing experience.


And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
⚠️ Breaking Changes
- mount postgres folder to local directory by default by @danieldietzler in #8443
🗄️ Server
- fix(server): image config not being updated by @mertalev in #8579
- chore(server): better typing for system config key by @mertalev in #8580
- fix(server): x264/x265 params not being set correctly by @mertalev in #8587
- fix(server): hevc tag being set when copying a non-hevc stream by @mertalev in #8582
- feat(server,web): configure image format by @mertalev in #8581
- fix:
npm i
on Windows … by @jellemdekker in #8619 - fix(server): delete thumbnail for readonly asset by @Ynng in #8593
...
v1.101.0
v1.101.0
Highlights
Welcome to release v1.101.0
of Immich. This release includes a new feature on the mobile app and minor enhancements across the server and the web, and we hope you like it.
Enhanced search on the mobile app
We have built a dedicated screen for a better search experience on the mobile app. You can now apply advanced filtering similar to the web's mechanism to find your desired photo.
searchmobiledemo.mp4
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🗄️ Server
- fix(server): add missing file extensions to library files by @etnoy in #8342
- fix(server): map style not being available for shared assets by @danieldietzler in #8341
- refactor(server): move timeline operations to their own controller/service by @danieldietzler in #8325
- refactor(server): extract add/remove assets logic to utility function by @danieldietzler in #8329
- fix: sql generation issues by @jrasm91 in #8361
- fix(server): parameter for all places query by @mertalev in #8346
- feat(server): extensions for MPEG and 3GP by @mmomjian in #8400
- Fix external library path validation #8319 by @pablodre in #8366
- fix(server): penalize null geodata fields when searching places by @mertalev in #8408
- fix(server): sorting memory date by @ZlabiDev in #8432
- refactor(server): decouple generated images from image formats by @mertalev in #8246
- feat: persistent memories by @jrasm91 in #8330
- chore: update openapi by @alextran1502 in #8470
📱 Mobile
- fix(mobile): memories translation by @waclaw66 in #8316
- fix(mobile): update album date range on add/remove by @fyfrey in #8324
- feat(mobile): search enhancement by @alextran1502 in #8392
- fix(mobile): sync all album properties by @fyfrey in #8332
- Localizely: Translations update by @alextran1502 in #8517
- chore(mobile): add log to get file name for corrupted asset by @alextran1502 in #8527
🖥️ Web
- feat(web, a11y): add labels! by @ben-basten in #8354
- fix: map theme auth in shared links by @jrasm91 in #8359
- fix(web): multiple fixes for the webUI by @martabal in #8368
- fix(web): asset description resize by @martabal in #8442
- fix(web): weird Overpass font height by @alextran1502 in #8458
- feat(web): add keyboard shortcut to stack selected photos by @Funk66 in #5983
- feat(web,a11y): standardize base modal by @ben-basten in #8388
- chore(web): fine tuning styling for base modal by @alextran1502 in #8469
- fix(web): do not set $isShowDetail to false when navigating to a person by @seasox in #8472
- fix(web): show download button correctly based on shared link permission by @alextran1502 in #8288
- fix(web): prevent fetching asset info twice by @michelheusschen in #8486
📓 Documentation
- docs: typo on backup script by @mmomjian in #8349
- docs: fix typo by @xethlyx in #8396
- Add docs for Postgres standalone setup by @mmomjian in #8343
- Fix repair page typo by @mmomjian in #8401
- docs: Nginx config update by @mmomjian in #8397
- docs: specify Timezone by @mmomjian in #8403
- docs: document metric env variables, add job metric env by @mertalev in #8406
- docs: Postgres standalone fix by @mmomjian in #8427
- feat(docs): Supported Formats by @mmomjian in #8394
- docs: update FAQ for Docker by @mmomjian in #8418
- docs: update DB_URL_FILE by @mmomjian in #8465
- docs: add some details for getting started as a developer by @benmccann in #8468
- docs: Update environment variable services by @bo0tzz in #8490
- Add notes for facial recogniton models source by @LackesLab in #8522
🔨 Maintenance
- fix(deps): update machine-learning by @renovate in #8280
- chore(deps): update prom/prometheus docker digest to dec2018 by @renovate in #8320
- chore(deps): update dependency black to v24.3.0 [security] by @renovate in #8109
- fix(deps): update typescript-projects by @renovate in #8451
- chore(deps): update node.js to ef3f477 by @renovate in #8449
- fix(deps): update typescript-projects to v10.3.7 by @renovate in #8461
- chore(deps): update node.js to fa5d3cf by @renovate in #8450
- fix(deps): update dependency orjson to v3.10.0 by @renovate in #8473
- fix(deps): update typescript-projects by @renovate in #8471
New Contributors
- @xethlyx made their first contribution in #8396
- @pablodre made their first contribution in #8366
- @ZlabiDev made their first contribution in #8432
- @seasox made their first contribution in #8472
- @LackesLab made their first contribution in #8522
Full Changelog: https://github.com/immich-app/immich/compare/v1.100.0...
v1.100.0
v1.100.0
Highlights
Welcome to release v1.100.0
, not yet v2.0
😛 of Immich. This release includes mostly bug fixes, code refactoring, and nice web QoL improvements. Some of the highlights include:
- Ability to view different album ownership on the album page.
- Better user experience when creating a new album.
- Context menu items now come with associated icons.
- Slideshow control improvement.
- Added job metrics for Prometheus.
- Notable fix: Scroll stickiness on the mobile app.
Album ownership toggle
On the album page on the web, you can now view all albums - i.e., shared or, owned or both - on the same page by using the toggle options.
chrome_E2Gte5jLAw.mp4
Better user experience when creating a new album
The notification on the web now includes a button to go to the album after you add new photos or videos to an album.
chrome_SocaZ52kLV.mp4
Context menu with associated icons
We added icons to the context menu to make the distinction between the options clearer.
Slideshow control improvement
After 10 seconds of inactivity, the cursor and control bar will be hidden, and a button will allow you to return to full screen.
Job metrics
You can now monitor the successful, skipped, and failed jobs for particular job types in Prometheus and the number of active jobs being processed in each queue.
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
What's Changed
🗄️ Server
- chore: organize config, validation, decorators by @jrasm91 in #8118
- chore: move controllers and middleware by @jrasm91 in #8119
- chore: migrate database files by @jrasm91 in #8126
- chore: move apps and test utils by @jrasm91 in #8129
- refactor: infra/domain module by @jrasm91 in #8130
- refactor: infra folder by @jrasm91 in #8138
- refactor: asset v1, app.utils by @jrasm91 in #8152
- refactor: app modules, main.ts by @jrasm91 in #8156
- fix(server): validation events actually throwing an error by @danieldietzler in #8172
- chore(server): consolidate dto files by @jrasm91 in #8201
- refactor: server events by @jrasm91 in #8204
- chore(server): remove getByDate from asset repo by @mertalev in #8211
- refactor(server): new password repo method by @jrasm91 in #8208
- chore(server): change upsert signature for search repo by @mertalev in #8210
- chore(server): remove pre-installed cli by @jrasm91 in #8224
- feat(server): job metrics by @mertalev in #8255
- fix(server): places page not working with partner sharing by @mertalev in #8257
- feat(server): add immich cli to container by @danieldietzler in #8239
- refactor(server): metric repo by @mertalev in #8278
- fix: memory lane assets in ascending order by @jrasm91 in #8309
- chore(server): open-api memory lane number generation by @alextran1502 in #8314
📱 Mobile
- fix(mobile): spacing fixes of #8087 by @waclaw66 in #8163
- chore(mobile): Bump to Flutter 3.19.0 by @martyfuhry in #7167
- feat(mobile): faster image loader by @fyfrey in #8140
- fix(mobile): scroll stickiness by @alextran1502 in #8166
- fix(mobile): android adaptive icon new logo by @eygraber in #8180
- fix(mobile): recently add view show other user assets by @alextran1502 in #8184
🖥️ Web
- fix(web): prevent duplicate time bucket loads by @michelheusschen in #8091
- fix(web): asset-grid padding/margin left fix by @alextran1502 in #8125
- feat(web): add ctrl+a / ctrl+d shortcuts to select / deselect all assets by @Ethan13310 in #8105
- feat(web): keyboard access for search dropdown, combobox fixes by @ben-basten in #8079
- refactor(web): cleanup notification components by @michelheusschen in #8150
- feat(web): rework context menus: add icons and reorder items by @Ethan13310 in #8090
- feat(web): improvements to slideshow by @martabal in #8032
- refactor(web): albums list (2) by @martabal in #8214
- fix(web): default album view by @alextran1502 in #8247
- chore(web): favicon without white bg by @alextran1502 in #8251
- fix(web): Correct minor typo in new version check copy by @drakeapps in #8253
- chore(web): style tab button group and search bar by @alextran1502 in #8292
- feat(web): better UX when creating a new album by @Ethan13310 in #8270
- feat(web) add filter when viewing all people in search box by @samholton in #7997
- feat(web, a11y): focus management for modals and popups by @ben-basten in #8298
⚡ CLI
- feat(cli) CLI when uploading photo.EXT, it detects both photo.EXT.xmp and photo.xmp by @kokulshan in #8186
- refactor(cli): crawl service by @jrasm91 in #8190
- refactor: cli by @jrasm91 in #8199
- chore(cli): rename commands by @jrasm91 in #8200
- chore(cli): prepare release by @jrasm91 in #8296
- feat(cli): better server info output by @jrasm91 in #8307
📓 Documentation
- Update remote-machine-learning.md by @kirilldem in #8038
- fix(docs): Immich quota claim note by @aviv926 in #8151
- chore: consolidate readme files by @alextran1502 in #8171
- chore: update readme screenshot by @natedawg in #8182
- docs: Fix documentation for running as a non-root Docker user by @mmomjian in #8218
- feat(docs): New repair and statistics pages by @aviv926 in #8030
- Update command-line-interface.md by @oregonpillow in #8213
- chore(docs): update _storage-template.md by @digitaljamie in #8154
- feat(docs): Changes to the Administration section. by @aviv926 in #8078
- (docs) Update XMP sidecar docs to include the fact that Immich will look for photo.ext.xmp and photo.xmp by @kokulshan in #8235
- chore(docs): Update docker compose readme with wget download option by @Keshav-Pandey in #8250
- feat(server): dark mode support for star history by @danieldietzler in #8259
- Update README_zh_CN.md to sync with README.md by @indam in #8282
- fix(docs): fix path in readme files by @JordyEGNL in #8289