Releases: immich-app/immich
v1.44.0
Highlights
This release focuses on bug fixes, chore tasks, and minor improvements to the quality of the app.
Please help me welcome @martyfuhry, he has been working on improving the mobile side a lot. We are happy to have him contribute to the project.
As always, please consider supporting the project.
🎉 Cheer! 🎉
Support
If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsors
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
Mobile
- feat(mobile) reused HTTP client for uploading assets by @alextran1502 in #1487
- fix(mobile): top padding missing from drag handle in add to album bottom sheet by @martyfuhry in #1462
- fix(mobile): Generate 1 splash screen on Android by @martyfuhry in #1443
- fix(mobile): Improve the gallery to improve scale, double tap, and swipe gesture detection by @martyfuhry in #1502
- fix(mobile): Uses clamping scroll physics on android by @martyfuhry in #1503
- fix(mobile): Fix back button closing the app from multiselection in Android by @martyfuhry in #1477
- fix(mobile) add and delete operation asset in album viewer doesn't update count in album list by @alextran1502 in #1474
- chore(mobile): Build and sign APK in GitHub Action by @alextran1502 in #1471
- chore(mobile): Update share_file to latest version and migrate to using cross platform shareXFile by @martyfuhry in #1476
- chore(mobile): Adaptive launcher icon for Android by @spiralham in #1457
Web
- feat(web): More localisation by @Mortein in #1441
- fix(web) long album name break styling for shared album card by @alextran1502 in #1473
Server
- refactor(server): move asset upload job to domain by @jrasm91 in #1434
- refactor(server): asset service - upload asset by @jrasm91 in #1438
- refactor(server): device info by @jrasm91 in #1490
- refactor(server): auth guard by @jrasm91 in #1472
- fix(server): re-enable Redis unix socket support by @zoodyy in #1494
- fix(server): Cannot remove album with shared links by @alextran1502 in #1479
- chore(server): cookie changes to SameSite=Lax by @samip5 in #1467
Other
- fix(CI): fix mobile build artifact with proper signing by @alextran1502 in #1504
- fix(ci): pump script reset minor and patch based on major and minor pump by @alextran1502 in #1515
- chore(ci): inherit secrets in prepare release workflow by @alextran1502 in #1514
- chore(docs): Update .gitignore and openapi version by @alextran1502 in #1461
- chore(docs): add instructions to install from the CA template by @hydazz in #1475
- chore(deps): bump actions/checkout from 2 to 3 by @dependabot in #1481
- chore(deps): bump actions/upload-artifact from 1 to 3 by @dependabot in #1482
- chore(deps): bump docker/setup-buildx-action from 2.2.1 to 2.3.0 by @dependabot in #1483
- feat(build): Include apk in prepare-release flow by @bo0tzz in #1496
- chore(deps): bump docker/setup-buildx-action from 2.3.0 to 2.4.0 by @dependabot in #1493
- chore(deps): bump docker/build-push-action from 3.3.0 to 4.0.0 by @dependabot in #1492
- chore: editorconfig by @jrasm91 in #1505
New Contributors
- @spiralham made their first contribution in #1457
Full Changelog: v1.43.1...v1.44.0
v1.43.1
Hotfix
- Incorrect validation return value skipping API checking for CLI
- Incorrect custom port value used in microservices
What's Changed
- fix(mobile): Pump ios version and fix static code test by @alextran1502 in #1451
- chore(build): pump ios fastfile by @jrasm91 in #1450
- docs: Update links to deployment files by @bo0tzz in #1405
- fix(mobile): removed unused album_list file by @martyfuhry in #1455
- fix(server): auth strategies by @jrasm91 in #1459
- fix(server): microservices port by @jrasm91 in #1460
Full Changelog: v1.43.0...v1.43.1
v1.43.0
V1.43.0
Breaking Changes
You will need to update both the server and the mobile app to version v1.43.0 to have the app works correctly.
Highlights
Hello all, welcome to release v1.43.0 of Immich. This release also marked the first birthday of Immich, which was officially born on Jan 23rd, 2022 on GitLab. I am very happy to see that the project has grown so much in the past year. I would like to thank all the contributors and users for their support and contributions. I hope that you will continue to support the project in the future.
This release is a big one, it contains a lot of new features and improvements.
1. Auto-discovery URL on the mobile app
With the new auto-discovery endpoint on the web, now when you put in https://immich.your-domain.com
the form will automatically add in /api
when making the request to the server.
2. Change of the token authentication mechanism
This change will mitigate the issue of mobile app users getting logged out after 30 days, and also enable management logged-in instances in the upcoming release. So you can log out remote instance from your admin console.
3. Additional options to public shared link
The public shared link now come with the Show metadata
and Allow download
options.
Please note that the server just prevents showing metadata on the app, if you allow download, the public user still can download the original file and look at the metadata.
We have yet to implement a file-level EXIF stripping mechanism
4. Jobs can now be rerun on all assets
We revamp the job mechanism and add an additional option to re-run the job of generating thumbnails, video encoding, metadata extraction, and object detection on all assets. This paired with the recent fix in incorrect creation time from the EXIF information will help you to fix your instance.
Some of the other notable changes
- Add a favorite page on the web
- Add an additional option for video transcoding, now it is smarter. Any video that is not under the desired codec (h264 as default) will be transcoded.
- File's hash is now computed on uploaded, this fixes the issue with timing out of the request.
- Further clean up the code base for more advanced features.
- We have improved the code base by adding more tests, and additional CI/CD pipelines that will ensure the quality of the application in the future in each release and reduce the number of regression bugs.
As always, please consider supporting the project.
🎉 Cheer! 🎉
Support
If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsors
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): Handle exposure time correctly by @alextran1502 in #1432
- feat(server): add .well-known/immich to reference API endpoint for auto discovery url by @conneryn in #1308
- feat(server): add ability turn off machine learning endpoint by @jrasm91 in #1361
- feat(server): Support webm videos by @samip5 in #1365
- feat(server): search by is favorite by @jrasm91 in #1400
- feat(server): Configurable port by @samip5 in #1386
- feat(server): compute sha1 during upload by @jrasm91 in #1424
- feat(server): move authentication to tokens stored in the database by @zackpollard in #1381
- feat(server): transcoding improvements by @zackpollard in #1370
- chore(server): Making the cookie better by @samip5 in #1366
- chore(server): allow the use of SSL connections to the postgres database. by @monotok in #1256
- chore(server): rename database connection variables by @jrasm91 in #1437
- chore(server): remove deprecated device endpoints by @jrasm91 in #1436
- refactor(server): system config by @jrasm91 in #1353
- refactor(server): job repository by @jrasm91 in #1382
- refactor(server): auth service by @jrasm91 in #1383
- refactor(server): shared links by @jrasm91 in #1385
- refactor(cli): use service instead of typeorm repo by @jrasm91 in #1423
Web
- fix(web): update album information when sliding images by @Zlendy in #1378
- fix(web): dark mode on select album cover page by @jrasm91 in #1404
- feat(web): add Favorites page by @EnochPrime in #1397
- feat(web/server) Add more options to public shared link by @alextran1502 in #1348
- feat(web/server): Add options to rerun job on all assets by @alextran1502 in #1422
Mobile
- fix(mobile): Fix crash at first start related to uninitialized hive key by @matthinc in #1362
- fix(mobile): Fix integration tests by @matthinc in #1384
- fix(mobile) invalid creation time on local asset show 1970 as year by @alextran1502 in #1391
- fix(mobile): Home page app bar icons don't conform to theme change by @alextran1502 in #1409
- fix(mobile): Fix endless 'Building timeline' loop after changing the number of assets per row by @matthinc in #1445
- feat(mobile): Add integration tests by @matthinc in #1359
- feat(mobile): show current upload asset by @alextran1502 in #1399
- feat(mobile): Add to album from asset detail view by @martyfuhry in #1413
- feat(mobile): Add multi selected assets to album by @martyfuhry in #1446
- chore(mobile): add login integration tests and reorganize CI definitions by @matthinc in #1417
- chore(mobile): Run dart analyze in CI by @matthinc in #1425
Documentation
- docs: Clarify CLI-in-docker instructions by @bo0tzz in #1395
- docs: Add kubernetes deployment documentation by @bo0tzz in #1418
- docs: Update funding method by @alextran1502 in #1420
- docs: Corrected button layout direction on small screens by @jrasm91 in #1433
- docs: Split features into new administration category by @bo0tzz in #1440
- docs: Update all-in-one.md by @hydazz in #1379
- docs: Fixed grammatical mistake by @Chipwingg in #1390
CI/CD
- Rebind PUBLIC_* env vars inside web container entrypoint by @bo0tzz in #1363
- feat(ci): Consolidate docker build workflow by @bo0tzz in #1374
- feat(ci): Update the sdk_update workflow to not run on forks by @samip5 in #1375
- chore(deps): bump actions/cache from 2 to 3 by @dependabot in #1392
- chore(deps): bump subosito/flutter-action from 1 to 2 by @dependabot in #1394
- chore(deps): bump actions/setup-java from 2 to 3 by @dependabot in #1393
- build: version pump script by @jrasm91 in #1398
- build: Add workflow for creating draft releases by @bo0tzz in #1402
- Localizely: Translations update by @alextran1502 in #1408
- build(docker): Use ghcr.io as build cache instead of gha by @bo0tzz in #1429
- build: Use explicit token in prepare-release flow by @bo0tzz in #1444
New Contributors
- @conneryn made their first contribution in #1308
- @monotok made their first contribution in #1256
- @hydazz made their first contribution in #1379
- @Zlendy made their first contribution in #1378
- @Chipwingg made their first contribution in #1390
- @martyfuhry made their first contribution in #1413
- @EnochPrime made their first con...
v1.42.0_65-dev
v1.42.0_65-dev
Highlight
Individual assets public share
You can now share individual asset or a group of assets with a public user.
Additional feature such as stripping EXIF and option to allow download is in review and will be available in the next release.
Fix issue with incorrect time due to unknown timezone in EXIF data
We are utilizing the exif-vendor library to replace the older library which doesn't take into account the timezone when extracting the timestamp. This would fix the issue with incorrect time displayed on the mobile and the web. There is currently no mechanism to rerun the EXIF extraction on the existing assets. We will be working on this in the future.
With this new library, it also allows us to build the editing EXIF of an asset in the future.
Thanks @samip5 for the contribution of the harden EXIF feature.
Thanks @photostructure for the library.
Thanks @jrasm91, @bo0tzz, @matthinc, @jbaez and @zoodyy for ongoing contribution and supporting the project.
As always, please consider supporting the project.
🎉 Cheer! 🎉
Support
If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor
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
- feat(web): meta tags for share links by @jrasm91 in #1290
- feat(web): Individual assets shared mechanism by @alextran1502 in #1317
- chore(web): clamp modal width to viewport by @jrasm91 in #1297
- fix(web): login error handling by @jrasm91 in #1322
- fix(web): Disable draggable on common usage element to avoid trigger drag-n-drop layer by @alextran1502 in #1330
- fix(web): fix cannot add uploaded asset to a shared album by @alextran1502 in #1338
Server
- feat(cli): list users by @jrasm91 in #1341
- feat(server): Add filetype variable to storage template by @alextran1502 in #1337
- feat(server): Fix exif data parsing by @samip5 in #1326
- chore(server): Update NestJs to V9 by @alextran1502 in #1312
- chore(web,server): run code coverage reports by @jrasm91 in #1313
- chore(server) harden EXIF extraction by @alextran1502 in #1347
- refactor(server): log levels by @jrasm91 in #1318
- refactor(server): use UserService by @jrasm91 in #1309
- refactor(server): api keys by @jrasm91 in #1339
- refactor(server): domain by @jrasm91 in #1298
- refactor(server): reset admin password by @jrasm91 in #1335
- refactor(server): job names by @jrasm91 in #1343
- fix(server): e2e tests by @jbaez in #1321
- fix(database): Set connection timeout by @bo0tzz in #1324
Mobile
- feat(mobile): Rework of the exif sheet by @matthinc in #1213
- feat(mobile): Various minor performance improvements by @matthinc in #1176
Documentation
- community all-in-one guide by @jrasm91 in #1301
- contributing by @jrasm91 in #1311
- watchtower warning by @jrasm91 in #1342
Others
- bump docker/build-push-action from 3.2.0 to 3.3.0 by @dependabot in #1332
- Clean up the actions cache on PR close by @bo0tzz in #1350
New Contributors
Full Changelog: v1.41.1_64-dev...v1.42.0_65-dev
v1.41.1_64-dev
What's Changed
- fix(web) show EXIF info in public shared by @alextran1502 in #1283
- fix(Nginx): Switch to sh by @otbutz in #1282
- fix(Nginx): fix entry point by @otbutz in #1284
- fix(web) add disable property to generated shared link by @alextran1502 in #1287
- fix(server) fix order of assets in the shared album to be the same as the actual album by @alextran1502 in #1293
Full Changelog: v1.41.0_64-dev...v1.41.1_64-dev
v1.41.0_64-dev
v1.41.0_64-dev
Highlight - Public sharing 🎉
Yes, one more time, I am very proud to present the new awaiting feature of Immich - Public Sharing. It is quite similar to Google Photos public shared link, however, with even more features.
Each album can have multiple links; each link can be individually configured based on the permission to upload or the expiration time. You can manage all the links in the shared link page, not just the shared link for the group of assets.
As a public user, he/she can
- View individual assets.
- Download a group of assets.
- Download the whole shared album.
- Upload asset (if allowed) - the asset will belong to the user that shares the link.
We've made this specific page to be mobile friendly so it can be viewed correctly on every screen on the mobile browser, the download and upload feature also works on the mobile browser.
We plan to add the functionality to share individual or group assets in the next release.
Please help us test out this new feature and let me know your thoughts or report bugs that you found.
Besides the abovementioned feature, we have deployed a TON, yes! a TON more of bug fixes and features. Please read the detailed changed log below.
As always, please consider supporting the project.
🎉 Cheer! 🎉
Support
If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor
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
- fix(nginx): define stopsignal by @otbutz in #1207
- feat(server): mobile oauth with custom scheme redirect uri by @jrasm91 in #1204
- fix(docker-build): start main process with exec by @bt90 in #1210
- chore(web): show corresponding ffmpeg argument by @jrasm91 in #1217
- fix(web) Fix incorrect album type (shared/non-shared) in album selection modal by @alextran1502 in #1219
- feat(web) Add drag n drop upload functionality by @klejejs in #1216
- feat(nginx): Enable upstream keepalive by @otbutz in #1206
- feat(nginx): Compress more types by @bt90 in #1211
- Docs: Github -> GitHub by @Emalton in #1221
- fix nginx conf file by @vedhavyas in #1229
- refactor(server): imports and repository tokens by @jrasm91 in #1220
- feat(deployment): Consistent container names by @bt90 in #1232
- fix(web): hide deleted users by @jrasm91 in #1237
- feat(web,server): api keys by @jrasm91 in #1244
- fix(nginx): Fix connection header by @bt90 in #1252
- fix(server): log user delete errors by @jrasm91 in #1255
- feat(web/server) public album sharing by @alextran1502 in #1266
- feat(web): Add search functionality to add photo to album modal by @klejejs in #1273
- chore(web) Add loading indicators to jobs panel by @klejejs in #1272
- chore(web) Add automatic server stats refetching by @klejejs in #1271
- feat(web,server): disable password login by @jrasm91 in #1223
- fix(mobile): omit null values from json requests by @jrasm91 in #1212
New Contributors
- @otbutz made their first contribution in #1207
- @klejejs made their first contribution in #1216
- @Emalton made their first contribution in #1221
- @vedhavyas made their first contribution in #1229
Full Changelog: v1.40.1_63-dev...v1.41.0_64-dev
v1.40.1_63-dev
Hot Fixes
- fix(server) Cannot change first-time password due to
null
value in first and last name payload from the mobile app by @alextran1502 in #1205
What's Changed
- feat(server,web): update email address by @jrasm91 in #1186
- chore(server): fix unit test by @jrasm91 in #1194
- Fixed translations and added missing by @DVerdeV in #1201
- chore(docs) Add link to releases by @PopsicleSnow in #1195
New Contributors
- @DVerdeV made their first contribution in #1201
- @PopsicleSnow made their first contribution in #1195
Full Changelog: v1.40.0_63-dev...v1.40.1_63-dev
v1.40.0_63-dev
v1.40.0_63-dev
This release aims to improve the mobile UX and add a new feature to link/unlink OAuth accounts.
What's Changed
Server/Web
- feat(web,server): link/unlink OAuth account by @jrasm91 in #1154
- feat(web): user profile by @jrasm91 in #1148
- feat(web) using template filename for downloaded file by @alextran1502 in #1164
- feat(server): extend JWTexpiration by @jrasm91 in #1187
- chore(web): linting by @jrasm91 in #1152
- chore(server): increase OAuth timeout by @jrasm91 in #1155
- chore(server) Make user business logic reusable by @jbaez in #1114
- chore(server): drop salt column by @jrasm91 in #1185
- test(server): change password by @jrasm91 in #1177
- fix(server): utf8 original filename by @jrasm91 in #1147
- chore(server) Increase cache-control time by @alextran1502 in #1189
Mobile
- feat(mobile): autofill login form by @EnricoBilla in #1128
- feat(mobile) delete button in detail viewer by @alextran1502 in #1165
- fix(mobile) Disable autocorrection on endpoint URL by @alextran1502 in #1166
- fix(mobile) notification android 13 by @alextran1502 in #1175
- fix(mobile) minor typo by @IdeallyGrey in #1181
Documentation
- Update instructions for Unraid by @MattFaz in #1131
- Refer to the docs by @bt90 in #1136
- Improve TensorFlow docs by @bt90 in #1138
- Refactor pages by @jrasm91 in #1144
- Fix build errors by @jrasm91 in #1156
- FAQs and more pages by @jrasm91 in #1160
- Revamp landing page by @alextran1502 in #1161
Other
- fix(deployment) suppress warning of empty environment variable by @alextran1502 in #1168
New Contributors
- @EnricoBilla made their first contribution in #1128
- @bt90 made their first contribution in #1136
- @IdeallyGrey made their first contribution in #1178
Full Changelog: v1.39.0_61-dev...v1.40.0-dev
v1.39.0_61-dev
Christmas Special Release 🎁
Happy holiday! I am excited to bring you this release, it accomplishes one of the most wanted features since the early day of the application
User-defined storage structure of uploaded files.
We provide an interface on the web so that the admin can build out the structure of the file's layout. The interactive builder template would help you see what the final structure would look like.
Along with that feature, we add a migration mechanism, allowing migrate all your files from the legacy structure of Immich to the new template layout and also allowing migration between template changes. So if the template you set now doesn't work in the future, you can always change to the new one.
The default template layout is YEAR/YEAR-MONTH-DAY/FILENAME.EXT
You can add custom text as well as using the variable we provided for the template.
I hope you enjoy this feature as much as I do, and I hope Immich is one step closer to being a solution to store photos and videos from your mobile device.
🎉 Cheer! 🎉
Support
If you find the project helpful and it helps you in some ways, you can support the project one time or monthly from GitHub Sponsor
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
- fix(mobile) invalid date in EXIF caused the timeline to crash by @alextran1502 in #1095
- chore(mobile) Slovak and Czech language added by @PeterBasista in #1099
- chore() Fix typo and update notification wording by @HcNguyen111 in #1100
- feat(server) user-defined storage structure by @alextran1502 in #1098
- chore(web) update SvelteKit to 1.0.0 by @alextran1502 in #1110
- chore(mobile) Date format change for SK/CZ translation by @PeterBasista in #1113
- feat(web) add user setting page by @alextran1502 in #1115
- chore(server) Add job for storage migration by @alextran1502 in #1117
New Contributors
- @PeterBasista made their first contribution in #1099
- @HcNguyen111 made their first contribution in #1100
Full Changelog: v1.38.2_60-dev...v1.39.0_61-dev
v1.38.2_60-dev
v1.38.2_60-dev
Hot Fixes
- fix(server): Fix error not able to see asset added by shared user in shared album by @matthinc in #1094
Full Changelog: v1.38.1_60-dev...v1.38.2_60-dev