High performance self-hosted photo and video management solution.
AGPL-3.0 License
Bot releases are visible (Hide)
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:
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.
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.
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.
When entering the backup screen and running foreground backup, the screen will now stay on and automatically darken after 30 seconds.
Immich now supports a set of newer models with very competitive performance. See #11468 for details and visualizations.
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.
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
Full Changelog: https://github.com/immich-app/immich/compare/v1.111.0...v1.112.0
Published by github-actions[bot] 3 months ago
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:
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 |
---|---|
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
Full Changelog: https://github.com/immich-app/immich/compare/v1.110.0...
Published by github-actions[bot] 3 months ago
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.
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
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!
As mentioned in our follow-up announcement about the wording changes for the purchase mechanism, we made changes to the following items:
licensed
or unlicensed
word will now be called "The-Words-Which-Must-Not-Be-Named" in Immich's world 😂"The-Words-Which-Must-Not-Be-Named"
indication with a Buy button.User Settings > Purchase Settings
"The-Words-Which-Must-Not-Be-Named"
badge with a supporter badge.Give it a hover for extra shininess!
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.
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.
https://github.com/immich-app/immich/assets/66518086/c36d548f-a473-4f0c-93ab-23e51cce6f58
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.
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app.
Cheers! 🍻
Full Changelog: https://github.com/immich-app/immich/compare/v1.109.2...v1.110.0
Published by github-actions[bot] 3 months ago
Full Changelog: https://github.com/immich-app/immich/compare/v1.109.1...
Published by github-actions[bot] 3 months ago
Full Changelog: https://github.com/immich-app/immich/compare/v1.109.0...v1.109.1
Published by github-actions[bot] 3 months ago
[!IMPORTANT]
Read our announcement about supporting Immich by buying a license here
Welcome to version v1.109.0
of Immich. This release introduces an additional way for you to support Immich financially as well as bug fixes for various issues. Some of the highlights in this release include:
With the announcement of Immich's licensing, you can now purchase a license to support Immich and open-source software.
In the web app, there is an information box that shows if you are a licensed or unlicensed user. You can click on the box to navigate to the purchase page or to enter the license key directly.
Unlicensed | Licensed |
---|---|
To help with future support, we are happy to introduce a "proxy" mechanism to help us navigate you to the exact location on your instance without knowing your instance URL.
The website prompts for your instance URL on the first visit and stores it client-side. It automatically redirects on subsequent visits, making it convenient to link to specific pages in self-hosted instances.
Below are some of the example use cases:
If you find the project helpful, you can support Immich by purchasing a license at https://buy.immich.app.
Cheers! 🍻
Immich team
Full Changelog: https://github.com/immich-app/immich/compare/v1.108.0...v1.109.0
Published by github-actions[bot] 4 months ago
[!CAUTION]
This release includes a security update for Node.js. While we don't think these CVEs affect Immich, we strongly recommend you update. For more details, see https://nodejs.org/en/blog/vulnerability/july-2024-security-releases.
Welcome to release v1.108.0
of Immich. This release focuses on bug fixes and improvements across the app. We added a fun section of things we learned when working on Immich. You can take a look here at the Cursed Knowledge page. Some of the highlights in this release include:
Full Changelog: https://github.com/immich-app/immich/compare/v1.107.2...
Published by github-actions[bot] 4 months ago
There is no mobile release for this version
people
page on the webFull Changelog: https://github.com/immich-app/immich/compare/v1.107.1...
Published by github-actions[bot] 4 months ago
There are no changes on the server. This release is mainly for the mobile app - feel free not to pulling the new images
After receiving feedback from the community about changing the timeline display's default behavior, we have decided to revert to the previous behavior. We will work on a proper implementation where you can select which album will be displayed on the timeline by default and decouple it from the album selected for backup.
I apologize for the inconvenience this change has caused and we will have a community discussion before such changes in the future.
Include the v1.107.0
release note below for your convenience.
Welcome to version v1.107.0
of Immich. This release includes many bug fixes, new translations from many new languages, and enhancements to the recent new features in the last release, as well as a change in the default timeline display on the mobile app. Check out some of the highlights below:
Thank you all for your feedback! The deduplication UI now has two bulk actions that apply to all duplicate groups: deduplicating assets automatically and keeping all duplicates. This makes managing thousands of duplication groups much more efficient.
Additionally, you can now view the duplicates in fullscreen mode, making it easier to decide which asset to keep. We also added the status for favorite photos to the card as well.
Thanks to @matejkramny, you can now add custom headers to all the requests from the mobile app. This mechanism will help many users who use Cloudflare's Zero Trust Service
You can access this setting from the app Settings > Advanced > Custom proxy headers
Due to a change in how recognition data is indexed, facial recognition is now more likely to recognize a face as a particular person. This means more assets will have complete facial recognition and the initial clustering will produce fewer duplicate people. Facial recognition is also faster as part of this change.
Clicking the Missing button for Facial Recognition from the job panel will make this change apply to existing assets. (This is also run periodically, so it will soon take effect even without explicitly running facial recognition.)
Full Changelog: https://github.com/immich-app/immich/compare/v1.107.0...
Published by github-actions[bot] 4 months ago
Welcome to version v1.107.0
of Immich. This release includes many bug fixes, new translations from many new languages, and enhancements to the recent new features in the last release, as well as a change in the default timeline display on the mobile app. Check out some of the highlights below:
Thank you all for your feedback! The deduplication UI now has two bulk actions that apply to all duplicate groups: deduplicating assets automatically and keeping all duplicates. This makes managing thousands of duplication groups much more efficient.
Additionally, you can now view the duplicates in fullscreen mode, making it easier to decide which asset to keep. We also added the status for favorite photos to the card as well.
Starting from this release, all local assets will be displayed on the main timeline. This is the first step in refactoring the upload mechanism, simplifying the logic, and introducing similar behaviors to a default gallery app on your phone.
With this change, you can now view, manage, and select a certain group of photos you want to upload to Immich directly from the timeline without the need to select them first on the backup page. The album selection for backup can be used for mass backup selection like before.
Thanks to @matejkramny, you can now add custom headers to all the requests from the mobile app. This mechanism will help many users who use Cloudflare's Zero Trust Service
You can access this setting from the app Settings > Advanced > Custom proxy headers
Due to a change in how recognition data is indexed, facial recognition is now more likely to recognize a face as a particular person. This means more assets will have complete facial recognition and the initial clustering will produce fewer duplicate people. Facial recognition is also faster as part of this change.
Clicking the Missing button for Facial Recognition from the job panel will make this change apply to existing assets. (This is also run periodically, so it will soon take effect even without explicitly running facial recognition.)
/places
entries sometimes not ordered alphabetically by @mertalev in https://github.com/immich-app/immich/pull/10514
Full Changelog: https://github.com/immich-app/immich/compare/v1.106.4...v1.107.0
Published by github-actions[bot] 4 months ago
This release addresses the following bugs:
Include the previous release note below for your convenience.
[!WARNING]
1. Underlying API changes
Please ensure your mobile app and server are on the same version. Otherwise, you won't be able to access the app.
We advise you to wait for the mobile app to be reviewed and released from the app stores before updating your instance to avoid disrupting your users.
2. Environment variables
SERVER_PORT
,MICROSERVICES_PORT
, andMACHINE_LEARNING_PORT
were renamed toIMMICH_PORT
HOST
andMACHINE_LEARNING_HOST
were renamed toIMMICH_HOST
3. Removal of the
immich-microservices
containerThe microservices container/process can now be deployed within the immich-server container itself and is done so by default.
Please refer to our documentation for a detailed explanation of this change and a way to keep microservices as a separate container.
Please edit your
docker-compose.yml
file with the following changes. If you use hardware acceleration previously inimmich-microservices
, you can move theextends
block's content to theimmich-server
service to keep the same functionality.When you bring the container up, please make sure to include the
--remove-orphans
flag, so that theimmich-microservices
container is removed properly. So the full command will bedocker compose up -d --remove-orphans
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
- immich-microservices:
- container_name: immich_microservices
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
- # file: hwaccel.transcoding.yml
- # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
- command: ['start.sh', 'microservices']
- volumes:
- - ${UPLOAD_LOCATION}:/usr/src/app/upload
- - /etc/localtime:/etc/localtime:ro
- env_file:
- - .env
- depends_on:
- - redis
- - database
- restart: always
Welcome to release v1.106.0
of Immich. Woooh, this release is packed with many new features, improvements, and bug fixes. This is one of the longest release stretches we have ever done, with over 230 closed PRs over a month. I hope you enjoy this release as much as we do, and we have more brewing on the horizon; let's go over some of the highlights of the release below:
immich-microservices
containerimmich-microservices
container"microservices be gone" - Zack
Actually, it is still there but in a true microservices manner where we spawn it in a separate process. Woohoo, one more container down to simplify the official setup of Immich!
This change is one of many pieces of upcoming work to change how we handle jobs. Microservices were always a patch for the problem that we couldn't run background tasks within the main server, which would introduce contention for the API itself. Using workers, we can now have these within the same container, separated into different V8 engines. Moving forward, we will be looking to split out "microservices" into actual microservices such as transcoding, thumbnails, etc., allowing such things as distributing transcoding alone to another instance.
The immich-server
container contains multiple workers:
api
: responds to API requests for data and files for the web and mobile app.microservices
: handles most other work, such as thumbnail generation and video encoding, in the form of jobs. Simply put, a job is a request to process data in the background.If you prefer to throttle or distribute the workers, you can use the environment variables to specify which container should pick up which tasks.
For example, for a simple setup with one container for the Web/API and one for all other microservices, you can do the following:
Copy the entire immich-server
block as a new service and make the following changes to the copy:
- immich-server:
- container_name: immich_server
...
- ports:
- - 2283:3001
+ immich-microservices:
+ container_name: immich_microservices
Once you have two copies of the immich-server service, make the following changes to each one. This will allow one container only to serve the web UI and API and the other one to handle all other tasks.
services:
immich-server:
...
+ environment:
+ IMMICH_WORKERS_INCLUDE: 'api'
immich-microservices:
...
+ environment:
+ IMMICH_WORKERS_EXCLUDE: 'api'
This release adds the much-anticipated ability to detect duplicate assets that aren't exactly identical, whether because of a difference in resolution, compression or metadata. To give you control over which asset(s) to keep, the assets aren't deduplicated immediately. Instead, there's a new Duplicates page where you can review duplicates to keep or trash them. An asset with the largest file size is selected by default.
https://github.com/immich-app/immich/assets/27055614/70c7a997-96e5-43ba-8d03-03c30559189c
To get started, you can run the new duplicate detection job on all assets. You won't need to do this for new assets, as they'll be automatically processed.
The Duplicates page is under a new Utilities section in the sidebar. Stay tuned for other features that will go into this section!
Until now, hardware acceleration for most backends only applied to encoding; decoding and tone-mapping were still done on the CPU. There's now an opt-in hardware decoding toggle that allows you to accelerate the full transcoding process for NVENC, QSV, and RKMPP. Some testing showed a 10x speed improvement compared to accelerated encoding alone (results are subject to your hardware and the video itself, of course).
Keep in mind that hardware and video compatibility becomes more relevant with this setting, which is why it's currently opt-in.
Special thanks to Jellyfin's @nyanmisaka for their helpful tips and suggestions for this feature!
Immich now tries to find a descriptive video thumbnail instead of simply using the first frame. No more black images for thumbnails!
Before:
After:
This change won't apply retroactively to existing videos. To update video thumbnails, you can either select them and choose Refresh Thumbnails from the overflow menu or re-run thumbnail generation on all assets through the job panel to update all of them.
Two new event types have been added for which email notifications can be sent out:
Also, users can now control their notification settings for each event. Notification preferences can be viewed on the web account settings page.
We have added translation for Immich on the web. You can help us translate the web to your native language by accessing our Weblate project here.
You can change the app to your language from the Account Settings > App Settings > Language
Full Changelog: https://github.com/immich-app/immich/compare/v1.106.3...v1.106.4
Published by github-actions[bot] 5 months ago
This release addresses the following issues:
Include the previous release note below for your convenience.
[!WARNING]
1. Underlying API changes
Please ensure your mobile app and server are on the same version. Otherwise, you won't be able to access the app.
We advise you to wait for the mobile app to be reviewed and released from the app stores before updating your instance to avoid disrupting your users.
2. Environment variables
SERVER_PORT
,MICROSERVICES_PORT
, andMACHINE_LEARNING_PORT
were renamed toIMMICH_PORT
HOST
andMACHINE_LEARNING_HOST
were renamed toIMMICH_HOST
3. Removal of the
immich-microservices
containerThe microservices container/process can now be deployed within the immich-server container itself and is done so by default.
Please refer to our documentation for a detailed explanation of this change and a way to keep microservices as a separate container.
Please edit your
docker-compose.yml
file with the following changes. If you use hardware acceleration previously inimmich-microservices
, you can move theextends
block's content to theimmich-server
service to keep the same functionality.When you bring the container up, please make sure to include the
--remove-orphans
flag, so that theimmich-microservices
container is removed properly. So the full command will bedocker compose up -d --remove-orphans
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
- immich-microservices:
- container_name: immich_microservices
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
- # file: hwaccel.transcoding.yml
- # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
- command: ['start.sh', 'microservices']
- volumes:
- - ${UPLOAD_LOCATION}:/usr/src/app/upload
- - /etc/localtime:/etc/localtime:ro
- env_file:
- - .env
- depends_on:
- - redis
- - database
- restart: always
Welcome to release v1.106.0
of Immich. Woooh, this release is packed with many new features, improvements, and bug fixes. This is one of the longest release stretches we have ever done, with over 230 closed PRs over a month. I hope you enjoy this release as much as we do, and we have more brewing on the horizon; let's go over some of the highlights of the release below:
immich-microservices
containerimmich-microservices
container"microservices be gone" - Zack
Actually, it is still there but in a true microservices manner where we spawn it in a separate process. Woohoo, one more container down to simplify the official setup of Immich!
This change is one of many pieces of upcoming work to change how we handle jobs. Microservices were always a patch for the problem that we couldn't run background tasks within the main server, which would introduce contention for the API itself. Using workers, we can now have these within the same container, separated into different V8 engines. Moving forward, we will be looking to split out "microservices" into actual microservices such as transcoding, thumbnails, etc., allowing such things as distributing transcoding alone to another instance.
The immich-server
container contains multiple workers:
api
: responds to API requests for data and files for the web and mobile app.microservices
: handles most other work, such as thumbnail generation and video encoding, in the form of jobs. Simply put, a job is a request to process data in the background.If you prefer to throttle or distribute the workers, you can use the environment variables to specify which container should pick up which tasks.
For example, for a simple setup with one container for the Web/API and one for all other microservices, you can do the following:
Copy the entire immich-server
block as a new service and make the following changes to the copy:
- immich-server:
- container_name: immich_server
...
- ports:
- - 2283:3001
+ immich-microservices:
+ container_name: immich_microservices
Once you have two copies of the immich-server service, make the following changes to each one. This will allow one container only to serve the web UI and API and the other one to handle all other tasks.
services:
immich-server:
...
+ environment:
+ IMMICH_WORKERS_INCLUDE: 'api'
immich-microservices:
...
+ environment:
+ IMMICH_WORKERS_EXCLUDE: 'api'
This release adds the much-anticipated ability to detect duplicate assets that aren't exactly identical, whether because of a difference in resolution, compression or metadata. To give you control over which asset(s) to keep, the assets aren't deduplicated immediately. Instead, there's a new Duplicates page where you can review duplicates to keep or trash them. An asset with the largest file size is selected by default.
https://github.com/immich-app/immich/assets/27055614/70c7a997-96e5-43ba-8d03-03c30559189c
To get started, you can run the new duplicate detection job on all assets. You won't need to do this for new assets, as they'll be automatically processed.
The Duplicates page is under a new Utilities section in the sidebar. Stay tuned for other features that will go into this section!
Until now, hardware acceleration for most backends only applied to encoding; decoding and tone-mapping were still done on the CPU. There's now an opt-in hardware decoding toggle that allows you to accelerate the full transcoding process for NVENC, QSV, and RKMPP. Some testing showed a 10x speed improvement compared to accelerated encoding alone (results are subject to your hardware and the video itself, of course).
Keep in mind that hardware and video compatibility becomes more relevant with this setting, which is why it's currently opt-in.
Special thanks to Jellyfin's @nyanmisaka for their helpful tips and suggestions for this feature!
Immich now tries to find a descriptive video thumbnail instead of simply using the first frame. No more black images for thumbnails!
Before:
After:
This change won't apply retroactively to existing videos. To update video thumbnails, you can either select them and choose Refresh Thumbnails from the overflow menu or re-run thumbnail generation on all assets through the job panel to update all of them.
Two new event types have been added for which email notifications can be sent out:
Also, users can now control their notification settings for each event. Notification preferences can be viewed on the web account settings page.
We have added translation for Immich on the web. You can help us translate the web to your native language by accessing our Weblate project here.
You can change the app to your language from the Account Settings > App Settings > Language
Full Changelog: https://github.com/immich-app/immich/compare/v1.106.2...
Published by github-actions[bot] 5 months ago
This is a hot fixes release that addresses the following bugs.
Include the previous release note below for your convenience.
[!WARNING]
1. Underlying API changes
Please ensure your mobile app and server are on the same version. Otherwise, you won't be able to access the app.
We advise you to wait for the mobile app to be reviewed and released from the app stores before updating your instance to avoid disrupting your users.
2. Environment variables
SERVER_PORT
,MICROSERVICES_PORT
, andMACHINE_LEARNING_PORT
were renamed toIMMICH_PORT
HOST
andMACHINE_LEARNING_HOST
were renamed toIMMICH_HOST
3. Removal of the
immich-microservices
containerThe microservices container/process can now be deployed within the immich-server container itself and is done so by default.
Please refer to our documentation for a detailed explanation of this change and a way to keep microservices as a separate container.
Please edit your
docker-compose.yml
file with the following changes. If you use hardware acceleration previously inimmich-microservices
, you can move theextends
block's content to theimmich-server
service to keep the same functionality.
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
- immich-microservices:
- container_name: immich_microservices
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
- # file: hwaccel.transcoding.yml
- # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
- command: ['start.sh', 'microservices']
- volumes:
- - ${UPLOAD_LOCATION}:/usr/src/app/upload
- - /etc/localtime:/etc/localtime:ro
- env_file:
- - .env
- depends_on:
- - redis
- - database
- restart: always
Welcome to release v1.106.0
of Immich. Woooh, this release is packed with many new features, improvements, and bug fixes. This is one of the longest release stretches we have ever done, with over 230 closed PRs over a month. I hope you enjoy this release as much as we do, and we have more brewing on the horizon; let's go over some of the highlights of the release below:
immich-microservices
containerimmich-microservices
container"microservices be gone" - Zack
Actually, it is still there but in a true microservices manner where we spawn it in a separate process. Woohoo, one more container down to simplify the official setup of Immich!
This change is one of many pieces of upcoming work to change how we handle jobs. Microservices were always a patch for the problem that we couldn't run background tasks within the main server, which would introduce contention for the API itself. Using workers, we can now have these within the same container, separated into different V8 engines. Moving forward, we will be looking to split out "microservices" into actual microservices such as transcoding, thumbnails, etc., allowing such things as distributing transcoding alone to another instance.
The immich-server
container contains multiple workers:
api
: responds to API requests for data and files for the web and mobile app.microservices
: handles most other work, such as thumbnail generation and video encoding, in the form of jobs. Simply put, a job is a request to process data in the background.If you prefer to throttle or distribute the workers, you can use the environment variables to specify which container should pick up which tasks.
For example, for a simple setup with one container for the Web/API and one for all other microservices, you can do the following:
Copy the entire immich-server
block as a new service and make the following changes to the copy:
- immich-server:
- container_name: immich_server
...
- ports:
- - 2283:3001
+ immich-microservices:
+ container_name: immich_microservices
Once you have two copies of the immich-server service, make the following changes to each one. This will allow one container only to serve the web UI and API and the other one to handle all other tasks.
services:
immich-server:
...
+ environment:
+ IMMICH_WORKERS_INCLUDE: 'api'
immich-microservices:
...
+ environment:
+ IMMICH_WORKERS_EXCLUDE: 'api'
This release adds the much-anticipated ability to detect duplicate assets that aren't exactly identical, whether because of a difference in resolution, compression or metadata. To give you control over which asset(s) to keep, the assets aren't deduplicated immediately. Instead, there's a new Duplicates page where you can review duplicates to keep or trash them. An asset with the largest file size is selected by default.
https://github.com/immich-app/immich/assets/27055614/70c7a997-96e5-43ba-8d03-03c30559189c
To get started, you can run the new duplicate detection job on all assets. You won't need to do this for new assets, as they'll be automatically processed.
The Duplicates page is under a new Utilities section in the sidebar. Stay tuned for other features that will go into this section!
Until now, hardware acceleration for most backends only applied to encoding; decoding and tone-mapping were still done on the CPU. There's now an opt-in hardware decoding toggle that allows you to accelerate the full transcoding process for NVENC, QSV, and RKMPP. Some testing showed a 10x speed improvement compared to accelerated encoding alone (results are subject to your hardware and the video itself, of course).
Keep in mind that hardware and video compatibility becomes more relevant with this setting, which is why it's currently opt-in.
Special thanks to Jellyfin's @nyanmisaka for their helpful tips and suggestions for this feature!
Immich now tries to find a descriptive video thumbnail instead of simply using the first frame. No more black images for thumbnails!
Before:
After:
This change won't apply retroactively to existing videos. To update video thumbnails, you can either select them and choose Refresh Thumbnails from the overflow menu or re-run thumbnail generation on all assets through the job panel to update all of them.
Two new event types have been added for which email notifications can be sent out:
Also, users can now control their notification settings for each event. Notification preferences can be viewed on the web account settings page.
We have added translation for Immich on the web. You can help us translate the web to your native language by accessing our Weblate project here.
You can change the app to your language from the Account Settings > App Settings > Language
And as always, bugs are fixed, and many other improvements also come with this release.
Full Changelog: https://github.com/immich-app/immich/compare/v1.106.1...
Published by github-actions[bot] 5 months ago
Note: We skip v1.106.0
and push straight to v1.106.1
since we discovered and fixed some more bugs while waiting for the v1.106.0
mobile releases to be approved for synchronized publishing across all platforms
[!WARNING]
1. Underlying API changes
Please ensure your mobile app and server are on the same version. Otherwise, you won't be able to access the app.
We advise you to wait for the mobile app to be reviewed and released from the app stores before updating your instance to avoid disrupting your users.
2. Environment variables
SERVER_PORT
,MICROSERVICES_PORT
, andMACHINE_LEARNING_PORT
were renamed toIMMICH_PORT
HOST
andMACHINE_LEARNING_HOST
were renamed toIMMICH_HOST
3. Removal of the
immich-microservices
containerThe microservices container/process can now be deployed within the immich-server container itself and is done so by default.
Please refer to our documentation for a detailed explanation of this change and a way to keep microservices as a separate container.
Please edit your
docker-compose.yml
file with the following changes. If you use hardware acceleration previously inimmich-microservices
, you can move theextends
block's content to theimmich-server
service to keep the same functionality.
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- command: ['start.sh', 'immich']
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
- immich-microservices:
- container_name: immich_microservices
- image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
- # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
- # file: hwaccel.transcoding.yml
- # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
- command: ['start.sh', 'microservices']
- volumes:
- - ${UPLOAD_LOCATION}:/usr/src/app/upload
- - /etc/localtime:/etc/localtime:ro
- env_file:
- - .env
- depends_on:
- - redis
- - database
- restart: always
Welcome to release v1.106.0
of Immich. Woooh, this release is packed with many new features, improvements, and bug fixes. This is one of the longest release stretches we have ever done, with over 230 closed PRs over a month. I hope you enjoy this release as much as we do, and we have more brewing on the horizon; let's go over some of the highlights of the release below:
immich-microservices
containerimmich-microservices
container"microservices be gone" - Zack
Actually, it is still there but in a true microservices manner where we spawn it in a separate process. Woohoo, one more container down to simplify the official setup of Immich!
This change is one of many pieces of upcoming work to change how we handle jobs. Microservices were always a patch for the problem that we couldn't run background tasks within the main server, which would introduce contention for the API itself. Using workers, we can now have these within the same container, separated into different V8 engines. Moving forward, we will be looking to split out "microservices" into actual microservices such as transcoding, thumbnails, etc., allowing such things as distributing transcoding alone to another instance.
The immich-server
container contains multiple workers:
api
: responds to API requests for data and files for the web and mobile app.microservices
: handles most other work, such as thumbnail generation and video encoding, in the form of jobs. Simply put, a job is a request to process data in the background.If you prefer to throttle or distribute the workers, you can use the environment variables to specify which container should pick up which tasks.
For example, for a simple setup with one container for the Web/API and one for all other microservices, you can do the following:
Copy the entire immich-server
block as a new service and make the following changes to the copy:
- immich-server:
- container_name: immich_server
...
- ports:
- - 2283:3001
+ immich-microservices:
+ container_name: immich_microservices
Once you have two copies of the immich-server service, make the following changes to each one. This will allow one container only to serve the web UI and API and the other one to handle all other tasks.
services:
immich-server:
...
+ environment:
+ IMMICH_WORKERS_INCLUDE: 'api'
immich-microservices:
...
+ environment:
+ IMMICH_WORKERS_EXCLUDE: 'api'
This release adds the much-anticipated ability to detect duplicate assets that aren't exactly identical, whether because of a difference in resolution, compression or metadata. To give you control over which asset(s) to keep, the assets aren't deduplicated immediately. Instead, there's a new Duplicates page where you can review duplicates to keep or trash them. An asset with the largest file size is selected by default.
https://github.com/immich-app/immich/assets/27055614/70c7a997-96e5-43ba-8d03-03c30559189c
To get started, you can run the new duplicate detection job on all assets. You won't need to do this for new assets, as they'll be automatically processed.
The Duplicates page is under a new Utilities section in the sidebar. Stay tuned for other features that will go into this section!
Until now, hardware acceleration for most backends only applied to encoding; decoding and tone-mapping were still done on the CPU. There's now an opt-in hardware decoding toggle that allows you to accelerate the full transcoding process for NVENC, QSV, and RKMPP. Some testing showed a 10x speed improvement compared to accelerated encoding alone (results are subject to your hardware and the video itself, of course).
Keep in mind that hardware and video compatibility becomes more relevant with this setting, which is why it's currently opt-in.
Special thanks to Jellyfin's @nyanmisaka for their helpful tips and suggestions for this feature!
Immich now tries to find a descriptive video thumbnail instead of simply using the first frame. No more black images for thumbnails!
Before:
After:
This change won't apply retroactively to existing videos. To update video thumbnails, you can either select them and choose Refresh Thumbnails from the overflow menu or re-run thumbnail generation on all assets through the job panel to update all of them.
Two new event types have been added for which email notifications can be sent out:
Also, users can now control their notification settings for each event. Notification preferences can be viewed on the web account settings page.
We have added translation for Immich on the web. You can help us translate the web to your native language by accessing our Weblate project here.
You can change the app to your language from the Account Settings > App Settings > Language
npm
in README by @roschaefer in https://github.com/immich-app/immich/pull/9566
Full Changelog: https://github.com/immich-app/immich/compare/v1.105.1...
Published by github-actions[bot] 5 months ago
[!Caution]
Please update immediately as this bug can put your data at risk if using external libraries.
As always, please consider supporting the project.
🎉 Cheers! 🎉
And as always, bugs are fixed, and many other improvements also come with this release.
Full Changelog: https://github.com/immich-app/immich/compare/v1.105.0...
Published by github-actions[bot] 5 months ago
[!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.
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:
Full Changelog: https://github.com/immich-app/immich/compare/v1.104.0...v1.105.0
Published by github-actions[bot] 6 months ago
[!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 thedocker-compose.yml
file.
Last week, we had a live stream to answer your questions about Immich joining FUTO. You can watch the VOD here.
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.
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.
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.
getConfig
by @mertalev in https://github.com/immich-app/immich/pull/9377
Full Changelog: https://github.com/immich-app/immich/compare/v1.103.1...v1.104.0
Published by github-actions[bot] 6 months ago
There is no mobile release for this version
Include the v1.103.0
release note for your convenience.
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:
When creating a shared album, you can specify whether the shared users can contribute to it or participate as read-only.
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.
There is now an option to jump to a date from the memory viewer on the mobile app.
You can now select the assets in a certain memory and perform actions like adding to an album, deleting, archiving, favorite, etc.
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 |
---|---|
If you find the project helpful, you can support Immich via the following channels.
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.
Full Changelog: https://github.com/immich-app/immich/compare/v1.103.0...v1.103.1
Published by github-actions[bot] 6 months ago
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:
When creating a shared album, you can specify whether the shared users can contribute to it or participate as read-only.
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.
There is now an option to jump to a date from the memory viewer on the mobile app.
You can now select the assets in a certain memory and perform actions like adding to an album, deleting, archiving, favorite, etc.
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 |
---|---|
If you find the project helpful, you can support Immich via the following channels.
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.
--ignore
getting ignored by @mertalev in https://github.com/immich-app/immich/pull/9071
Full Changelog: https://github.com/immich-app/immich/compare/v1.102.3...v1.103.0
Published by github-actions[bot] 6 months ago
There is no mobile release for this version
3 hotfixes in a day - sorry guys
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
If you find the project helpful, you can support Immich via the following channels.
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.
Full Changelog: https://github.com/immich-app/immich/compare/v1.102.2...