I
Immich2w ago
RNab

Immich Charts - Separate pvc for Thumbnails ?

Hi, I'm currently running immich in k3s, with storage on my NAS. It has both HDD and NVME SSD, and I'd like to split the storage in 2 to speed up the loading of thumbnails. So the pcitures would stay on the HDD and the thumbnails would move to NVME. I know that I need to specify Env Variable to separate the storage if I were to use Immich with Docker, but how can I do it in the current chart ? Especially the part about having 2 persistent volume which I can't see whether it is supported or no Thank you
27 Replies
Immich
Immich2w ago
:wave: Hey @RNab, 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. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time). 2. :ballot_box_with_check: read applicable release notes. 3. :ballot_box_with_check: reviewed the FAQs for known issues. 4. :ballot_box_with_check: reviewed Github for known issues. 5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy). 6. :ballot_box_with_check: 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. Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
bo0tzz
bo0tzz2w ago
The chart doesn't explicitly support it, but you can still do it, you just need to define the volumes manually
RNab
RNabOP2w ago
So I’d do the environment variable and then the separate volume and “that’s it” ?
bo0tzz
bo0tzz2w ago
What env var do you mean? I don't think you need any
RNab
RNabOP2w ago
To separate library from thumbnails ? https://immich.app/docs/guides/custom-locations/ I thought I would need to add that one : ’’’ THUMB_LOCATION=/custom/path/immich/thumbs ’’’ +
bo0tzz
bo0tzz2w ago
Those are only used in the compose file to make things more readable
RNab
RNabOP2w ago
Ok. Sorry I’m missing something then How do I specify that library/uploads goes to pvc1 while thumbnails goes to pvc2 ?
bo0tzz
bo0tzz2w ago
By mounting those pvcs on the right paths
RNab
RNabOP2w ago
Ah ! Yeah ok seems obvious now that you say it And the right paths are the one provided on the link above right ? Is there conflict from the fact that thumbs is inside upload ? I’ll try to work on my yaml later and share back here for confirmation.
bo0tzz
bo0tzz2w ago
yep, nope
RNab
RNabOP2w ago
For the record, adding this to the server: seems to have been enough for me : server: ... persistence: pv-thumbnails: enabled: true name: immich-thumbnails type: pvc existingClaim: pvc-immich-thumbnails mountPath: /usr/src/app/upload/thumbs
RNab
RNabOP2w ago
Well actually... all my images on the web app are now showing an error :
No description
bo0tzz
bo0tzz2w ago
You need to move the files across I'm surprised it even started up without you doing that
RNab
RNabOP2w ago
I moved all the thumbs across indeed But not the upload folder or library folder Btw, when I click on the image on the webApp, it does not show either.
bo0tzz
bo0tzz2w ago
If you exec into the pod, what do you see? oh, hm
Volumes cannot mount within other volumes
From the kube docs
RNab
RNabOP2w ago
Ah
RNab
RNabOP2w ago
Ok so we can't do that then ? Well i think something's still unclear New photos have been uploaded mewnahile by my phone They are showing up on the web app And their corresponding thumbnails appears in the right folder
bo0tzz
bo0tzz2w ago
Files are missing, so Immich should not be starting up at all unless you've done something to bypass the checks What env vars do you have set?
RNab
RNabOP2w ago
I have no env or no check to bypass env: REDIS_HOSTNAME: '{{ printf "%s-redis-master" .Release.Name }}' DB_HOSTNAME: pg-immich-rw.immich.svc.cluster.local DB_USERNAME: immich DB_DATABASE_NAME: immich DB_PASSWORD: valueFrom: secretKeyRef: name: immich-postgres-user key: password # -- You should provide your own secret outside of this helm-chart and use postgresql.global.postgresql.auth.existingSecret to provide credentials to the postgresql instance # DB_PASSWORD: "{{ .Values.postgresql.global.postgresql.auth.password }}" IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' TZ: "Europe/London" Which files are missing ? If I ls into /usr/src/app/upload/ then library upload (on HDD) or thumbs (on NVME), I see the correct files in there Ah no actually no So then I guess, is there a way to full override the thumbs path so that its not inside the upload folder but instead, in it own separate folder ? something like /usr/src/app/thumbnails ?
bo0tzz
bo0tzz2w ago
There is not
RNab
RNabOP2w ago
Not even using THUMB_LOCATION=/custom/path/immich/thumbs ? In env variable I mean
Zeus
Zeus2w ago
That env var doesn’t exist. When used, it’s only to sinplify mapping of paths into the env
RNab
RNabOP2w ago
So in short : no way to separate cache/thumbs underlying storage from the photos themselves ? How can I safely recover now ? As in : in the intermediate state, some photos were uploaded from my phone and some thumbs were generated. Can I regenerate all thumbs to make sure none are missing ? Can I force re-upload the last few days of pictures form my phone to ensure they are all backed-up ?
MASTERBLASTER
MASTERBLASTER2w ago
You need to avoid nested mounts so you'd either need a separate pvc for each folder in immich's upload dir (upload, profile, library, thumbs, encoded-video) Or to use subpaths, I'd think the chart supports subPaths but I'm not 100% on that https://github.com/immich-app/immich-charts/pull/118
RNab
RNabOP2w ago
Indeed. But doing so can be quite a bit of risk right ? As in if a new folder is created (like the recently reated backup), then it would likely fail to work. If not for that, I would think that this could be a reasonable solution. What do you think ?
MASTERBLASTER
MASTERBLASTER2w ago
IMO it’s not a big risk but if it’s not something you’re comfortable with that’s fine. Subpaths are certainly cleaner so I’d wait for the chart to support that anyways

Did you find this page helpful?