High performance self-hosted photo and video management solution.
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.98.0...
The logo design contest has ended on March 4th, 2024.
We had an internal voting round with the core team members and contributors. The winner is @tyree, with the design below.
We are planning to roll out the new logo in the near future.
Thank you all for your contributions and discussions. We are very happy to have such strong community engagement.
Welcome to release v1.98.0
of Immich. We are pleased to introduce many new features, quality of life improvements and bug fixes in this releaseโsome of the highlights below.
We moved all library settings under the Admin settings to reduce the complexity of setting up external libraries and lay the groundwork for sharing external libraries between users.
Thanks to @michelheusschen's help in solving the technical challenges of combining contextual search results with people filtering, it is now possible to search for "person in red dress" and choose only the people that you would like to see in a red dress.
You can now search for file name and file extension again as free text search. For example, you can search for all Nikon photos with NEF
or nef
, or search for file names such as IMG_1234.JPG
with 123
or 234
as the search query.
You can now see the people detected in a photo/video in the detail sheet on the mobile app.
This setting can be found in the server settings
in the Administration page
. You can now adjust how long until a user gets permanently removed from the server.
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.97.0...v1.98.0
Welcome to release v1.97.0
of Immich. This release contains bug fixes and minor improvements in asset rendering on the mobile app.
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.96.0...v1.97.0
Welcome to release v1.96.0
of Immich. This release adds more enhancements for search, optimizes the mobile app and includes a handful of bug fixes. Some of the key highlights include:
After receiving users' feedback, we make the search filter a little more compact with minor UI/UX changes to make the process of selecting/deselecting the filter's content more intuitive.
We have implemented the lookup-on-type mechanism to quicky search for a location on the map when adding or edding location of the asset. This process happens entirely on your server
https://github.com/immich-app/immich/assets/27055614/7960d897-fc85-44f5-bbb0-03c6d16effa9
We added additional options for the slideshow feature on the web, so you can make it fit your needs when showing of your gallery
We add a blur thumbnail loading step to help the transition from black/white placeholder to the image a more pleasant experience and fix a bug that sometimes the HTTP client would timeout and show the broken icon on the thumbnail.
https://github.com/immich-app/immich/assets/27055614/38c77700-4666-4686-bce2-8229203978d6
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.95.1...
Include the release note from v1.95.0
below for your convenience.
[!WARNING]
โ ๏ธ Breaking Changes โ ๏ธ
pgvecto.rs
to stable version 0.2.0
for enhanced searchdocker-compose.yml
database image from 0.1.11
to 0.2.0
[...]
database:
container_name: immich_postgres
- image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee
+ image: 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
restart: always
[...]
docker compose pull
Bring the stack up with docker compose up
When the server starts up, it will log a message like this:
WARN [DatabaseService] Could not run vector reindexing checks. If the extension was updated, please restart the Postgres instance.
This is normal. Continue to Step 4.
If Immich doesn't have superuser permissions, you'll need to bring up the database and run a few commands manually:
BEGIN;
CREATE SCHEMA IF NOT EXISTS vectors;
ALTER DATABASE immich SET search_path TO "$user", public, vectors;
SET search_path TO "$user", public, vectors;
UPDATE pg_catalog.pg_extension SET extversion = '0.1.11' WHERE extname = 'vectors';
UPDATE pg_catalog.pg_extension SET extrelocatable = true WHERE extname = 'vectors';
ALTER EXTENSION vectors SET SCHEMA vectors;
UPDATE pg_catalog.pg_extension SET extrelocatable = false WHERE extname = 'vectors';
ALTER EXTENSION vectors UPDATE TO '0.2.0';
SELECT pgvectors_upgrade();
COMMIT;
Bring the stack down (or terminate with ctrl + c
) with:
docker compose down
Then bring it back up:
docker compose up
You'll run into a message saying:
[DatabaseRepository] Could not reindex index face_index. Attempting to auto-fix.
This is normal. The server will do some magic and start to work.
OAuth setups using HS256
(mainly Authentik) will need to either (1) update the signing algorithm in Immich or (2) specify a signing key in the provider settings (so that it uses RS256
instead).
Screencast from 02-02-2024 12:05:04 AM.webm
RS256
is generally better than HS256
. RS256
is pretty much the most commonly used algorithm. The client library we use for open-id defaults to RS256
. It's very easy to setup Authentik without specifying a signing key, which will default to use HS256
. The original implementation added a hack/fallback to HS256
in some conditions to try to handle that situation. The current code removes the fallback, and adds a specific Signing Algortithm
setting which can be explicitly set. Alternatively, the issue could be fixed by specifying a signing key in Authentik.
References:
Welcome to version v1.95.0
of Immich. This is one of the longest stretches since the last release of Immich for the past year, we only had 150+ PRs merged since the last release. There are many new improvements and features in this release that we are very excited to introduce to you.
This feature is available on the Web only as of this release
This release adds a highly anticipated feature - advanced search with filters by date, location and more. What's more is that these filters are also compatible with smart search, so you can add text to sort by relevance at the same time.
Results are also no longer capped at 100 - scrolling down will fetch more and more assets.
pgvector
compatibilityAs part of the upgrade to pgvecto.rs 0.2, we've also added pgvector support for environments where pgvecto.rs can't be used. Adding DB_VECTOR_EXTENSION=pgvector
to the .env
file will use pgvector instead (assuming your Postgres instance has pgvector installed). We'd like to give a special shoutout to the pgvecto.rs team for adding a compatibility mode that makes it easier for us to support both extensions.
Please note that the extension cannot be changed after a successful startup (i.e., migrations have run). This means you can't switch to pgvector from an existing instance with pgvecto.rs. It must be a new instance or an instance coming from 1.90.2 or older. Additionally, some features may not work quite as well with pgvector.
If you're upgrading from an old version of Immich, the migrations will take some time - don't worry if the server doesn't start up immediately.
This feature is available on the Web only as of this release
You can now toggle the option to include partners' assets on the map view.
You can now toggle this option only to allow background backup while the device is connected to the WIFI network.
Several users struggle with getting import paths correct with external libraries. This version adds several checks and validations so that the user gets feedback on what went wrong.
New CLI version 2.0.8. This version supports running inside Docker without needing Node.js installed, which helps on some platforms. Under the hood, it has been migrated to the new API version, uses vitest
instead of jest
, and has seen several improvements and bug fixes.
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.95.0...
[!WARNING]
โ ๏ธ Breaking Changes โ ๏ธ
pgvecto.rs
to stable version 0.2.0
for enhanced searchdocker-compose.yml
database image from 0.1.11
to 0.2.0
[...]
database:
container_name: immich_postgres
- image: tensorchord/pgvecto-rs:pg14-v0.1.11@sha256:0335a1a22f8c5dd1b697f14f079934f5152eaaa216c09b61e293be285491f8ee
+ image: 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
restart: always
[...]
docker compose pull
Bring the stack up with docker compose up
When the server starts up, it will log a message like this:
WARN [DatabaseService] Could not run vector reindexing checks. If the extension was updated, please restart the Postgres instance.
This is normal. Continue to Step 4.
If Immich doesn't have superuser permissions, you'll need to bring up the database and run a few commands manually:
BEGIN;
CREATE SCHEMA IF NOT EXISTS vectors;
ALTER DATABASE immich SET search_path TO "$user", public, vectors;
SET search_path TO "$user", public, vectors;
UPDATE pg_catalog.pg_extension SET extversion = '0.1.11' WHERE extname = 'vectors';
UPDATE pg_catalog.pg_extension SET extrelocatable = true WHERE extname = 'vectors';
ALTER EXTENSION vectors SET SCHEMA vectors;
UPDATE pg_catalog.pg_extension SET extrelocatable = false WHERE extname = 'vectors';
ALTER EXTENSION vectors UPDATE TO '0.2.0';
SELECT pgvectors_upgrade();
COMMIT;
Bring the stack down (or terminate with ctrl + c
) with:
docker compose down
Then bring it back up:
docker compose up
You'll run into a message saying:
[DatabaseRepository] Could not reindex index face_index. Attempting to auto-fix.
This is normal. The server will do some magic and start to work.
OAuth setups using HS256
(mainly Authentik) will need to either (1) update the signing algorithm in Immich or (2) specify a signing key in the provider settings (so that it uses RS256
instead).
Screencast from 02-02-2024 12:05:04 AM.webm
RS256
is generally better than HS256
. RS256
is pretty much the most commonly used algorithm. The client library we use for open-id defaults to RS256
. It's very easy to setup Authentik without specifying a signing key, which will default to use HS256
. The original implementation added a hack/fallback to HS256
in some conditions to try to handle that situation. The current code removes the fallback, and adds a specific Signing Algortithm
setting which can be explicitly set. Alternatively, the issue could be fixed by specifying a signing key in Authentik.
References:
Welcome to version v1.95.0
of Immich. This is one of the longest stretches since the last release of Immich for the past year, we only had 150+ PRs merged since the last release. There are many new improvements and features in this release that we are very excited to introduce to you.
This feature is available on the Web only as of this release
This release adds a highly anticipated feature - advanced search with filters by date, location and more. What's more is that these filters are also compatible with smart search, so you can add text to sort by relevance at the same time.
Results are also no longer capped at 100 - scrolling down will fetch more and more assets.
pgvector
compatibilityAs part of the upgrade to pgvecto.rs 0.2, we've also added pgvector support for environments where pgvecto.rs can't be used. Adding DB_VECTOR_EXTENSION=pgvector
to the .env
file will use pgvector instead (assuming your Postgres instance has pgvector installed). We'd like to give a special shoutout to the pgvecto.rs team for adding a compatibility mode that makes it easier for us to support both extensions.
Please note that the extension cannot be changed after a successful startup (i.e., migrations have run). This means you can't switch to pgvector from an existing instance with pgvecto.rs. It must be a new instance or an instance coming from 1.90.2 or older. Additionally, some features may not work quite as well with pgvector.
If you're upgrading from an old version of Immich, the migrations will take some time - don't worry if the server doesn't start up immediately.
This feature is available on the Web only as of this release
You can now toggle the option to include partners' assets on the map view.
You can now toggle this option only to allow background backup while the device is connected to the WIFI network.
Several users struggle with getting import paths correct with external libraries. This version adds several checks and validations so that the user gets feedback on what went wrong.
New CLI version 2.0.8. This version supports running inside Docker without needing Node.js installed, which helps on some platforms. Under the hood, it has been migrated to the new API version, uses vitest
instead of jest
, and has seen several improvements and bug fixes.
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.
getAllAssets
endpoint includes motion part of LivePhotos by @alextran1502 in https://github.com/immich-app/immich/pull/7194
form-data
dependency by @benmccann in https://github.com/immich-app/immich/pull/6876
rollup-plugin-visualizer
and remove lodash
by @benmccann in https://github.com/immich-app/immich/pull/6974
Full Changelog: https://github.com/immich-app/immich/compare/v1.94.1...v1.95.0
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.94.0...
v1.92
starting from this version. Please make sure to have your server and mobile app on the same version to work correctly.docker-compose.yml
content change for hardware acceleration to incorporate hardware acceleration for machine learningGET /asset/assetById/:id
POST /asset/download/info
POST /asset/download/archive
POST /asset/download/:id
POST /asset/restore
POST /asset/trash/empty
POST /asset/trash/restore
Welcome to release v1.94.0
of Immich. This release is packed with bug fixes, quality-of-life improvements, and preparation for migrating to a new search experience. Please find some of the highlights of this release below, and we hope you like it!
External libraries can now automatically import changed files without a full rescan. It will import the file whenever the operating system reports a file change. If your photos are mounted over the network, this does not work, but there is an option to enable polling. Beware, however, that polling can cause high CPU consumption.
You can enable this feature in the Administration page > Settings > Library
Library watching is considered experimental at this stage and is disabled by default. Please report how this feature works for you, especially if you have large external libraries.
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.
generate-open-api.sh
by @benmccann in https://github.com/immich-app/immich/pull/6648
context_length
field by @mertalev in https://github.com/immich-app/immich/pull/6695
Full Changelog: https://github.com/immich-app/immich/compare/v1.93.3...
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.93.2...v1.93.3
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.93.1...