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
: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:The chart doesn't explicitly support it, but you can still do it, you just need to define the volumes manually
So I’d do the environment variable and then the separate volume and “that’s it” ?
What env var do you mean? I don't think you need any
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
’’’
+
Those are only used in the compose file to make things more readable
Ok. Sorry I’m missing something then
How do I specify that library/uploads goes to pvc1 while thumbnails goes to pvc2 ?
By mounting those pvcs on the right paths
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.
yep, nope
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
Well actually... all my images on the web app are now showing an error :

You need to move the files across
I'm surprised it even started up without you doing that
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.
If you exec into the pod, what do you see?
oh, hm
Volumes cannot mount within other volumesFrom the kube docs
Ah
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
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?
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 ?There is not
Not even using THUMB_LOCATION=/custom/path/immich/thumbs ?
In env variable I mean
That env var doesn’t exist. When used, it’s only to sinplify mapping of paths into the env
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 ?
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
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 ?
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