How to Scale Immich correctly
This maybe a dumb question since I am not that savvy, but here it is anyway.
Currently: I have immich running in docker (via portainer) on a very basic linux machine, the storage is on a NAS, however everything else is local to that machine. Since the machine is not very powerful there are few issues if some other processes are running. I stumbled upon below article that talks about scaling immich.
https://immich.app/docs/guides/scaling-immich
And as per the requirement mentioned:
"When doing this, the only requirement you need to be aware of is that every instance needs to be connected to the shared infrastructure. That means they should all have access to the same Postgres and Redis instances, and have the same files mounted into the containers."
1️⃣ Now how do i do this (sharing access to same Postgress and Redis between two different servers in same network tho) since everything is docker container here.
Now the follow-up question.
2️⃣ I would ideally like to move everything to another server, use new server as main instance.
How easy is it and what are the chances of fuck ups? Can I simply move everything to new server and see if it works before removing the current stack in low powered server?
If there is a solution out there already, please do point, I will be happy to follow the instructions and ask further questions if any.
Appreciate the help. Thanks in advance.
11 Replies
:wave: Hey @itsddpanda,
Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:.
References
- Container Logs:
docker compose logs
docs
- Container Status: docker ps -a
docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
- Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Checklist
I have...
1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time).
2. :blue_square: read applicable release notes.
3. :blue_square: reviewed the FAQs for known issues.
4. :blue_square: reviewed Github for known issues.
5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy).
6. :blue_square: uploaded the relevant information (see below).
7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable
(an item can be marked as "complete" by reacting with the appropriate number)
Information
In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:
- Your docker-compose.yml and .env files.
- Logs from all the containers and their status (see above).
- All the troubleshooting steps you've tried so far.
- Any recent changes you've made to Immich or your system.
- Details about your system (both software/OS and hardware).
- Details about your storage (filesystems, type of disks, output of commands like fdisk -l
and df -h
).
- The version of the Immich server, mobile app, and other relevant pieces.
- Any other information that you think might be relevant.
Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)
If this ticket can be closed you can use the /close
command, and re-open it later if needed.1) basically you’re on your own, you need to expose one Postgres and Redis instance to the LAN and configure each one to connect to it. You’re expected to know/research how to do this on your exact system
2) please take a backup and restore as per our docs. Then you can move whenever you want
thanks mate, referring to backup and restore, it only refers to Postgress, does redis does not need to follow the suite ?
Redis is disposable data
ah okay.
Follow up question, cant I simply use the existing postgress instance in docker to be shared with new server? and have new Immich DB-URL set to this old one?
I guess, but why do that? Just do a backup restore on the new machine and keep the old install as is until the new one works fine. You won't benefit anything from trying to break up your install like this, especially if you have to ask at all
well i would like to have two instances of the same running, just in case 1 has to be turned off for any reason
so was looking for the same i found the "scaling" post from immich docs
and it talks about having a shared DB
thus asking if i can simply use the one already running in old server
even if i do a restore both of them wont be in sync
however if this is not a possiblity i would then move everything over to new server
Two instances and scaling is not the same thing, you can't have two frontends on the same db
What scaling means is multiple api workers or a redis cluster instead of a single instance
This is all very technical and you better have experience because it's not for the uninitiated
got it.. i will simply move it.
This thread has been closed. To re-open, use the button below.