Upcoming Container Consolidation (breaking changes planned for the v1.88.0
release)
#5086
Replies: 24 comments 81 replies
-
So what do we need to do when you release v1.87.0 ? |
Beta Was this translation helpful? Give feedback.
-
I'm guessing users of the Imagegenius Docker image won't be affected? |
Beta Was this translation helpful? Give feedback.
-
Will we have to change reverse proxy to point to 3001 vs 8080? |
Beta Was this translation helpful? Give feedback.
-
Will the Official Helm Chart be Updated too? |
Beta Was this translation helpful? Give feedback.
-
I have been exposing immich via a virtual IP directly on a network interface of my docker host (rather than NAT-ing ports through the docker-internal network) so my immich-proxy:
container_name: immich_proxy
image: ghcr.io/immich-app/immich-proxy:v1.85.0
environment:
<<: *immichwebvars
networks:
immich: {}
qnet-static-eth0-3b751d:
ipv4_address: 192.168.2.102 # External, virtual IP of immich
#ports:
# - 2283:8080
depends_on:
- immich-server
- immich-web
restart: always it's always bothered me a bit that I can't change the port because of this (it's stuck at 8080 because it isn't NAT-ed). immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:v1.88.0
command: [ "start.sh", "immich" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
IMMICH_PORT: 80
<<: *immichwebvars
networks:
immich: {}
qnet-static-eth0-3b751d:
ipv4_address: 192.168.2.102 # External, virtual IP of immich
depends_on:
- redis
- database
- typesense
restart: always until I can add HTTPS later (at which point I will have to add a proxy-container again anyway I guess) |
Beta Was this translation helpful? Give feedback.
-
@alextran1502 will the banner warning of the pending release only appear in the web app, or can it be made to appear in the client app too? |
Beta Was this translation helpful? Give feedback.
-
If my server was initially installed without the name directive, will this be a breaking change if left in the docker-compose.yml? |
Beta Was this translation helpful? Give feedback.
-
Thank you for the heads up! We absolutely love your work! Our app is proposing Immich as a 1 click installer and I was wondering why you decided to release breaking changes as minor semver versions? We have almost 200 apps to keep track of and have manual reviews for major updates but it's easy to miss these kind of announcements and have user installs breaking if we don't pay enough attention |
Beta Was this translation helpful? Give feedback.
-
I've been using Immich with reverse proxy by exposing the proxy container:
where the As the proxy container will be gone, how should i alter my setup? |
Beta Was this translation helpful? Give feedback.
-
Up until now, I've been updating to the latest version of Immich by simply running version: "3.8"
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/upload
- ${LIBRARY_LOCATION}:/usr/src/app/upload/library
- ${THUMBS_LOCATION}:/usr/src/app/upload/thumbs
- ${PROFILE_LOCATION}:/usr/src/app/upload/profile
- ${VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
depends_on:
- redis
- database
- typesense
restart: always
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.yml
# service: hwaccel
command: ["start.sh", "microservices"]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload/upload
- ${LIBRARY_LOCATION}:/usr/src/app/upload/library
- ${THUMBS_LOCATION}:/usr/src/app/upload/thumbs
- ${PROFILE_LOCATION}:/usr/src/app/upload/profile
- ${VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
depends_on:
- redis
- database
- typesense
restart: always
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
- ${LIBRARY_LOCATION}:/usr/src/app/upload/library
- ${UPLOAD_LOCATION}:/usr/src/app/upload/upload
- ${THUMBS_LOCATION}:/usr/src/app/upload/thumbs
- ${PROFILE_LOCATION}:/usr/src/app/upload/profile
- ${VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
env_file:
- .env
restart: always
immich-web:
container_name: immich_web
image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
env_file:
- .env
restart: always
typesense:
container_name: immich_typesense
image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
environment:
- TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
- TYPESENSE_DATA_DIR=/data
# remove this to get debug messages
- GLOG_minloglevel=1
volumes:
- ${TYPESENSE_DATA_LOCATION}:/data
restart: always
redis:
container_name: immich_redis
image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
restart: always
database:
container_name: immich_postgres
image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
env_file:
- .env
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- ${POSTGRES_DATA_LOCATION}:/var/lib/postgresql/data
restart: always
immich-proxy:
container_name: immich_proxy
image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
ports:
- 2283:8080
depends_on:
- immich-server
- immich-web
restart: always
volumes:
pgdata:
model-cache:
tsdata: |
Beta Was this translation helpful? Give feedback.
-
Just followed the steps and am now getting "{"message":"Cannot GET /","error":"Not Found","statusCode":404}" when accessing HOST IP:2283 Not sure where I've gone wrong. |
Beta Was this translation helpful? Give feedback.
-
Why don't you make it version 2.0 ? It more obvious from semantic versioning point of view that this breaks the installation |
Beta Was this translation helpful? Give feedback.
-
I like this! When I was installing it for the 1st time I was very confused of amount of containers that it needed. |
Beta Was this translation helpful? Give feedback.
-
Are the TLDR steps required for unRAID users clicking "Update Stack" or will the update stack pull the updated docker yaml file? |
Beta Was this translation helpful? Give feedback.
-
Heads up, the ports will need to wrapped in quotes to avoid a YAML parsing error.
|
Beta Was this translation helpful? Give feedback.
-
So, what's the idiots guide to updating this in Portainer? |
Beta Was this translation helpful? Give feedback.
-
Just updated to 1.88 without any issues 👍 |
Beta Was this translation helpful? Give feedback.
-
Such a seamless update ♥ |
Beta Was this translation helpful? Give feedback.
-
I was able to migrate everything following the instructions for docker compose without issues |
Beta Was this translation helpful? Give feedback.
-
Unfortunately, I cannot get it to work. I am using Portainer and adapted my docker-compose according to the instructions above (i.e. add ports to server and remove web and proxy). It now looks like this:
I left everything in stack.env untouched, as it worked with previous versions. Portainer shows me that the proxy and web container are not running anymore and that the server container now exposes 2283:8080. However, opening Immich using the 2283 port in a browser does not work. I cannot access the webui nor connect using the app. Can anyone help me with this? |
Beta Was this translation helpful? Give feedback.
-
Done update following simple instrunction in TLDR. |
Beta Was this translation helpful? Give feedback.
-
I just want to thank you for making this very easy to follow guide! I updated today without any problems. |
Beta Was this translation helpful? Give feedback.
-
Just tried to launch Immich and got the notice. Came over here via the link, followed the (very simple) instructions and was back up and running inside five minutes. Kudos, folks! Excellent work! |
Beta Was this translation helpful? Give feedback.
-
Interesting, following the guide to the letter (i hope) and I end up with error on the postgres database..
this leads to:
thats strange - since it looks like everybody is using the same postgresql image... - i modified the line to be exactly as in upper yml config file:
any ideas? should I modify he db image and add pgvector? thanks a lot for any hints..:) |
Beta Was this translation helpful? Give feedback.
-
Hello, Immich Fans!
The following only applies to upcoming version 1.88.0, please ensure you only make these changes when updating to that specific version!
With an effort to reduce complexity, we have worked on simplifying the deployment and inter-container communication within Immich.
We have reduced the total services from 8 containers down to 6 containers. Namely,
immich-proxy
andimmich-web
have been removed. @jrasm91 had done an outstanding job (#5069) of switching the web rendering method from server-side rendering to client-side rendering, eliminating the need for a specialized web server (previouslyimmich-web
container). Any web server can now host the web's output.Since
immich-server
has an embedded web server (expressjs) and we have decided to use that to also host the web application. With these changes theimmich-proxy
container has become unnecessary and has been removed from the defaultdocker-compose.yml
file.With those changes, the new
docker-compose.yml
file will have the following content.TLDR
Basically, the steps are:
Note
docker compose down --remove-orphans
docker-compose.yml
file2.1. Remove
immich-proxy
service2.2. Remove
immich-web
service2.3. Expose port
2283:3001
in theimmich-server
servicedocker compose pull
docker compose up -d
Use with Reverse Proxy
All requests will now need to be forwarded to
ip:2283
(external port) orimmich-server:3001
(internal port). If you were previously routing requests to both web/server and stripping the api prefix, all of that can be replaced with a blanked forward to the immich-server container (no api stripping required).Gotcha
Warning
There is a new
name: immich
directive at the top of thedocker-compose.yml
to group the containers belonging to immich under one namespace (#4906).Please do not include this change in your current setup if you don't have it already.
Release v1.87 Warning
We will add a banner in the app for the admin user in the next release,
v1.87.0
, to notify you of this upcoming change so you can prepare for the update and avoid downtime when upgrading.Note
This change will take effect starting version
v1.88.0
Cheers!
Immich Team
Beta Was this translation helpful? Give feedback.
All reactions