v1.102.0 - 30,000 Stars Release 🌟 #8930
Replies: 21 comments 64 replies
-
So to be clear, if I just Update Stack and don't make any changes to the docker-compose or env files, I should have no issues with the change breaking my instance, correct? The "opt-in" process occurs when/if I make changes to the docker-compose and env files, correct? Sorry - a bit confused on this release. |
Beta Was this translation helpful? Give feedback.
-
Uh...another one breaking change. |
Beta Was this translation helpful? Give feedback.
-
The migration was actually easy to do, I think the release notes make it sound almost impossible.
Everything was still there. I of course also took a backup just in case. |
Beta Was this translation helpful? Give feedback.
-
Yup, removed |
Beta Was this translation helpful? Give feedback.
-
I did changes in docker-compose.yml. I had to create new account and my library is gone (that's okay). |
Beta Was this translation helpful? Give feedback.
-
machine learning docker keeps restarting after upgrading. anyone else facing this issue |
Beta Was this translation helpful? Give feedback.
-
Thanks to the software engineer for his hard work.
|
Beta Was this translation helpful? Give feedback.
-
Mobile app is logging me out repeatedly and syncing everything again. Server and app are both on version 102.0. |
Beta Was this translation helpful? Give feedback.
-
is there some way to sync an album? i.e, if we select an album in iOS app for backing up, immich should automatically create that album |
Beta Was this translation helpful? Give feedback.
-
Sorry for the noob question, but I am new to docker, and basically a hack… I have been updating Immich with “docker compose pull && docker compose up -d”. Will this opt me in to the breaking changes in 1.102? |
Beta Was this translation helpful? Give feedback.
-
I'm far from being an expert and I'm freaking scared of breaking everything, so please, let me ask you: I'm using portaner. If my compose contained this:
Then the last line should be changed to
And I'll have to add to my ENV
and remove
Am I right ? |
Beta Was this translation helpful? Give feedback.
-
Thank you for the update! This might be a very dumb question, but what is the difference between on the one hand the proposed My question is because I had already made this volume persistent before 102, but through the second option. |
Beta Was this translation helpful? Give feedback.
-
I'm using unraid with docker-compose stack official method. What permissions and user id / group id should I use for the immich appdata folder / immich postgres database directory?
ENV file
Also I set the folder to /mnt/user/appdata/immich/postgres instead of ./postgres , because I didn't understand how docker would know where ./postgres was. |
Beta Was this translation helpful? Give feedback.
-
Wow, I never realized the official docker-compose was not already using the database as a local mount. Mine has been like this for a while. Now here is my 2-cents:
If people are interested, I could take in charge the task of creating a Wiki Page to develop this further (including the data restoration part, not covered above)... I cannot count the number of times I've dealt with backup creation and backup recovery of database and so on. Cheers, |
Beta Was this translation helpful? Give feedback.
-
Mobile app crashes while viewing images after about 30-40 swipes. Seems there is some memory leak because system kills all other apps too. It does only when original image is loaded from device. |
Beta Was this translation helpful? Give feedback.
-
I recently upgraded to v1.102.3 and undertook the steps to remove pgdata and add location etc:
I had already setup immich_db_dumper and had plenty of backups. However when I go to restore the backup, when I start Immich it just brings me to the Admin Registration page "Since you are the first user on the system, you will be assigned as the Admin and are responsible for administrative tasks, and additional users will be created by you." I have restored the backup by undertaking the following:
Can anyone suggest how to restore? |
Beta Was this translation helpful? Give feedback.
-
I'm a bit late to the party here on posting this (as I had a bad illness for a couple weeks), but, I think the "upgrade to local postgres storage" is fairly straightforward. I've seen some posts indicating that, but, some of them lack some detail- so here goes... With the containers running, you can find the existing database location by doing the following:
You can cut and paste the output of this command into your favorite text editor and search for "postgres". You should find something similar to this:
I don't think its necessary to do a docker compose down (correct me if I'm wrong)- just stop the containers. This way you're not going to accidentally delete anything, and you can get a more accurate backup.
To backup, just follow the docs: https://borgbackup.readthedocs.io/en/stable/quickstart.html https://immich.app/docs/guides/template-backup-script You can also do the pgdump in addition to this: The containers will have to be running for the pgdump
At this point you should be ready to copy the database to a new location from the docker volume location to any location of your choosing on your machine. You should use rsync for this as it preserves permissions. You will most likely have to run as root I believe (or sudo). Don't use cp, its just asking for trouble and it will most likely break file permissions on the db files. Use the --dry-run option to test first. Note the trailing slash here on the source path makes a difference, use it!!! Stop the containers again before the database rsync copy
When all looks good, execute the rsync (i.e. remove the dry-run option)
Now you can backup your old docker compose yaml files just to be safe and compare them with the new ones. You can use cp for this :)
Now compare the differences between the files in vscode or your favorite editor. The obvious ones will be the database location. Once you've merged your changes into the new docker compose files, simply run the 2 upgrade commands.
If I've missed something, let me know. So far this is working for me. |
Beta Was this translation helpful? Give feedback.
-
Important: Before proceeding, back up the database. In fact, I can also run it normally this way: docker compose stop
sudo su
cp -r /var/lib/docker/volumes/immich_pgdata/_data/* /home/myuser/immich-app/postgres Then, follow the official instructions to modify the docker compose down Then redeploy. |
Beta Was this translation helpful? Give feedback.
-
My Old immich account got deleted i think after this update as i just updated all at once after v1.99.0 to direct v1.105 so it started at that very point where i have to register a user as admin what should i do help me as i want to connect my old account itself as files are still there but its just the account got new as it didnt asked for login but got new as in it got reset can i get any help here please ASAP. @patrontheo |
Beta Was this translation helpful? Give feedback.
-
I've finally gotten round to moving my DB to a local folder - but now I'm having a permissions issue (I think!). Deploying via Caprover, I now have this message from Immich's Postgres image:- "root" execution of the PostgreSQL server is not permitted.
The server must be started under an unprivileged user ID to prevent
possible system security compromise. See the documentation for
more information on how to properly I'm using the Docker compose script for Immich v1.115, adapted for Caprover captainVersion: 4
services:
$$cap_appname:
caproverExtra:
dockerfileLines:
- FROM ghcr.io/immich-app/immich-server:$$cap_version
- CMD ["start.sh", "immich"]
containerHttpPort: 3001
environment:
UPLOAD_LOCATION: $$cap_app_upload_location
DB_DATA_LOCATION: $$cap_app_db_data_dir
TZ: "Europe/Berlin"
DB_PASSWORD: $$cap_app_db_pass
DB_USERNAME: $$cap_app_db_user
DB_DATABASE_NAME: $$cap_app_db_name
#REDIS_HOSTNAME: srv-captain--$$cap_appname-redis
#IMMICH_MACHINE_LEARNING_URL: http://srv-captain--$$cap_appname-machine-learning:3003
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- $$cap_app_upload_location:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
depends_on:
- $$cap_appname-redis
- $$cap_appname-db
healthcheck:
disable: false
$$cap_appname-machine-learning:
caproverExtra:
notExposeAsWebApp: 'true'
image: ghcr.io/immich-app/immich-machine-learning:$$cap_version
environment:
UPLOAD_LOCATION: $$cap_app_upload_location
DB_DATA_LOCATION: $$cap_app_db_data_dir
TZ: "Europe/Berlin"
DB_PASSWORD: $$cap_app_db_pass
DB_USERNAME: $$cap_app_db_user
DB_DATABASE_NAME: $$cap_app_db_name
volumes:
- model-cache:/cache
healthcheck:
disable: false
$$cap_appname-redis:
caproverExtra:
notExposeAsWebApp: 'true'
image: redis:$$cap_redis_ver
healthcheck:
test: redis-cli ping || exit 1
$$cap_appname-db:
caproverExtra:
notExposeAsWebApp: 'true'
image: docker.io/tensorchord/pgvecto-rs:$$cap_app_db_ver
environment:
POSTGRES_PASSWORD: $$cap_app_db_pass
POSTGRES_USER: $$cap_app_db_user
POSTGRES_DB: $$cap_app_db_name
POSTGRES_INITDB_ARGS: '--data-checksums'
user: $$cap_app_db_user
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- $$cap_app_db_data_dir:/var/lib/postgresql/data
healthcheck:
test: pg_isready --dbname='$$cap_app_db_name' --username='$$cap_app_db_user' || exit 1; Chksum="$$(psql --dbname='$$cap_app_db_name' --username='$$cap_app_db_user' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
volumes:
model-cache:
caproverOneClickApp:
displayName: Immich
description: Open source (MIT License) Google Photos alternative. Backup your phone's photos and videos to your private server.
isOfficial: false
documentation: https://immich.app
instructions:
start: |-
Leave every default value as is for a working and simple installation. You can specify the (full) path to the directory you want to save your media, in that case the directory must exist beforehand. Immich can be accessed via browser and with an app (Immich). If you have big media files (bigger than 500MB) in your phone, update your Nginx configuration to increase your `client_max_body_size`.
end: |-
On your first visit it will ask for email and password for the admin user. Remember to change the default Nginx configuration and increasing the 'client_max_body_size' value if you expect to upload files bigger than 500MB.
variables:
- label: Immich version
id: $$cap_version
description: Check out their valid tags at https://github.com/immich-app/immich/releases
defaultValue: v1.115.0
- label: Immich redis version
id: $$cap_redis_ver
defaultValue: 6.2-alpine@sha256:2d1463258f2764328496376f5d965f20c6a67f66ea2b06dc42af351f75248792
description: Check out their valid tags at https://hub.docker.com/_/redis/tags
- label: Database password
id: $$cap_app_db_pass
description: Password for accessing the database. A random one has been generated for you.
defaultValue: my_github_pwd
- label: Database username
id: $$cap_app_db_user
description: Username to access the database
defaultValue: postgres
- label: Database name
id: $$cap_app_db_name
description: A name for the database used by Immich
defaultValue: immich-yt-db
- label: PostgreSQL database version
id: $$cap_app_db_ver
description: Immich uses PostgreSQL with the pgvecto.rs extension. Check the valid tags at https://hub.docker.com/r/tensorchord/pgvecto-rs/tags
defaultValue: pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
- label: Upload directory
id: $$cap_app_upload_location
description: Full path to the directory where you plan to store all your files. It should be created beforehand. If you want caprover to create it for you just leave the default 'immich-data'
defaultValue: /srv/photos/davey/upl_folder/
- label: Local postgres folder
id: $$cap_app_db_data_dir
description: Full path to the directory where the locally saved postgres data is. This ensures the data is not locked away within Docker.
defaultValue: /srv/photos/davey/davey-db Running Checking the owner of the locally hosted DB folder I want to use with Immich. It currently reads:-
I tried changing the owner with If I run
Is this the problem? Should I assign a new UID to I fear I'm getting out of my depth here. I'd really appreciate some help! |
Beta Was this translation helpful? Give feedback.
-
Is it possible to do this migration to local folder if I'm running immich on docker for windows? If so, can someone pleas help me with thes steps? |
Beta Was this translation helpful? Give feedback.
-
v1.102.0
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 existingdocker-compose.yml
file.docker-compose.yml
file.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
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.
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.Collapse.mp4
Other UI Changes
Jan 2024
Jan - Mar 2024
Sep 2023 - Feb 2024
Quality of Life
Album List
Download
,Edit
,Share
andDelete
.Edit
andRemove
buttons have been removed).Download
.Album View
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.
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
npm i
on Windows … by @jellemdekker in fix:npm i
on Windows … #8619📱 Mobile
🖥️ Web
⚡ CLI
📓 Documentation
🔨 Maintenance
Other changes
New Contributors
npm i
on Windows … #8619Full Changelog: https://github.com/immich-app/immich/compare/v1.101.0...
This discussion was created from the release v1.102.0 - 30,000 Stars Release 🌟.
Beta Was this translation helpful? Give feedback.
All reactions