Home Assistant Add-On Immich

Hi @fabio-garavini, I’m researching to set up Immich in my HA, but I want to use a local HDD to store Immich library, separate from HAOS as the main drive isn’t big enough. I also prefer avoiding a NAS as it’s too complex and more costly for me to set up one.

Following on this post of yours, I understand it’s not currently possible to use a different local drive. Is this correct? Do I understand correctly this is a limitation of the add-on and not Immich itself?

Just asking because if this is the case, I think the add-on from alexbelgium does allow something like that (to be tested), but mentioned here, and docs here. I think that might work for what I need.

Just wanted to confirm this is the case, as I initially preferred using your package as it’s all-in-one and easier for dummies like me. Also maybe you want to check how he managed to enable it, as I think it’d be a useful addition for this add-on.

I would also like to use a different drive for immich storage. I have immich in a proxmox lxc but my NAS for media is shared through a NFS. Normally I mount the NAS path to the lxc but it doesn’t seem to work for the immich lxc from community scripts.

Hi @fabio-garavini , I just instaleld your immich addon and seems to be working fine. In my case i’ll be attempting a maing imich folder in NAS, and usage of external library also in the same NAS. Let’s see how they behave.

Thanks for the effort on making this a seemless setup experience.

One doubt I have is about the machine learning. It mentions: ’ * Machine Learning: TensorFlow-based recognition’ bundled.
but not sure what that means

In the official docs it mentions based on the hardware

Asking because in the ‘default out of the box’ configuration i’m getting a lot of the following errors on an Intel N150 running HAOS baremetal, so I disabled the machine learning feature. It looks like it is missing the ML models in the addon?

[Nest] 279  - 07/27/2025, 12:54:31 AM    WARN [Microservices:MachineLearningRepository] Machine learning request to "http://127.0.0.1:3003" failed: fetch failed
[Nest] 279  - 07/27/2025, 12:54:31 AM   ERROR [Microservices:{"source":"upload","id":"787redacted88f"}] Unable to run job handler (AssetDetectFaces): Error: Machine learning request '{"facial-recognition":{"detection":{"modelName":"buffalo_l","options":{"minScore":0.7}},"recognition":{"modelName":"buffalo_l"}}}' failed for all URLs
[Nest] 279  - 07/27/2025, 12:55:25 AM    WARN [Microservices:MachineLearningRepository] Machine learning request to "http://127.0.0.1:3003" failed: fetch failed
[Nest] 279  - 07/27/2025, 12:55:25 AM   ERROR [Microservices:{"source":"upload","id":"c53redacted27"}] Unable to run job handler (SmartSearch): Error: Machine learning request '{"clip":{"visual":{"modelName":"ViT-B-32__openai"}}}' failed for all URLs

EDIT: Seems like after some hours and a restart of the addon now, at least the face detection/buffalo is working.

[07/27/25 16:45:16] INFO     Loading detection model 'buffalo_l' to memory      
[07/27/25 16:45:16] INFO     Setting execution providers to                     
                             ['CPUExecutionProvider'], in descending order of   
                             preference

At first boot immich takes quite a lot of time to load all ml models, depending on your internet speed so it could be it. Or maybe your cpu isn’t fast enough to keep up, then maybe you should try setting your “smart search” and “face detection” concurrency to 1

No, it’s not impossible to connect an external disk to home assistant and mount it into your immich addon. But it really defeats the ease of use of the immich addon itself, because if you don’t know what you’re doing you could really brick or erase your home assistant instance. It’s not as straight forward as it should be, so in my humble opinion is really just better to buy an old used nas, pop in a pair of spare drives (maybe in raid1) and mount it through the hassio ui.
But as it seems to be a very requested feature, I’ll think about it. Thanks for asking :cowboy_hat_face:

EDIT
So it just occurred to me, that nowadays almost every isp provide a router with at least one usb port that can be used to plug an external hard disk and use it also as a nas. :exploding_head:
I though you might wanna give it a try

1 Like

Have you tried looking at this forum page?

I ended up using the other add-on, and I found a few different ways to mount the drive. Samba NAS add-on is the easiest and reliable so far. udev rule also worked, but more complex.

For anyone interested I’ve put a lot of work into upgrading the Immich addon from my repository

Now you can:

  • customize your immich media library path and easily migrate it to a different place
  • https is enabled by default with a self signed certificate
  • mount external hard disks and nfs/smb shares directly inside the addon
4 Likes

Hello @fabio-garavini
Hello,First of all, I would like to thank you for the great work.I hope you can help me with my problem.When I install your addon, the login through the browser works perfectly, and I can do everything I want.When I install the app on my iPhone, I can’t establish a connection, as it seems to be an HTTPS connection.Is there already a solution for this?Thank you very much and best regards

Yes can use the default self-signed certificate, by disabling the ssl verification on the mobile app, you can find how here it’s a little bit old but should be pretty much the same.
Or if you have a domain or duck dns, use a ssl certificate signed by a verified CA.
Or (NOT RECOMMENDED!) just disable ssl

Fabio,

Great add-on. I have a sudden error that will not let me load the immich UI with HTTPS on the PC. If I turn this off, I can load HTTP on android but not pc still. Here is the log from the immich add-on. Any ideas what I can do to correct this issue?

I tried reinstalling the immich add-on, restarting HAOS completely and still the same error.

Thanks!

    at async Promise.all (index 3)
    at async MetadataService.handleMetadataExtraction (/app/immich/server/dist/services/metadata.service.js:229:9)
    at async JobService.onJobStart (/app/immich/server/dist/services/job.service.js:198:28)
    at async EventRepository.onEvent (/app/immich/server/dist/repositories/event.repository.js:126:13)
    at async /app/immich/server/node_modules/.pnpm/[email protected]/node_modules/bullmq/dist/cjs/classes/worker.js:533:32
e[32m[Nest] 523  - e[39m10/22/2025, 11:04:40 AM e[32m    LOGe[39m e[33m[Microservices:MetadataService]e[39m e[32mWrote motion photo video to /media/immich/encoded-video/e8a321aa-9187-4475-bdf0-12938806cbad/b6/97/b697c581-e10c-4122-89fe-18ee9eae3402-MP.mp4e[39m
e[32m[Nest] 523  - e[39m10/22/2025, 11:04:40 AM e[32m    LOGe[39m e[33m[Microservices:MetadataService]e[39m e[32mWrote motion photo video to /media/immich/encoded-video/e8a321aa-9187-4475-bdf0-12938806cbad/53/2b/532beb1c-4baa-45c3-a6ee-f9830d232fac-MP.mp4e[39m
2025-10-22 11:04:41.399 UTC [578] LOG:  unexpected EOF on client connection with an open transaction
2025-10-22 11:04:41.443 UTC [573] LOG:  could not receive data from client: Connection reset by peer
2025-10-22 11:04:41.443 UTC [573] LOG:  unexpected EOF on client connection with an open transaction
2025-10-22 11:04:41.446 UTC [577] LOG:  could not receive data from client: Connection reset by peer
2025-10-22 11:04:41.447 UTC [577] LOG:  unexpected EOF on client connection with an open transaction
2025-10-22 11:04:41.659 UTC [1397] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.661 UTC [512] FATAL:  terminating connection due to administrator command
e[2;36m[10/22/25 11:04:41]e[0me[2;36m e[0me[34mINFO    e[0m Handling signal: term                              
2025-10-22 11:04:41.664 UTC [1395] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.665 UTC [1398] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.666 UTC [1400] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.667 UTC [511] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.669 UTC [510] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.671 UTC [1393] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.675 UTC [1394] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.680 UTC [1396] FATAL:  terminating connection due to administrator command
2025-10-22 11:04:41.684 UTC [401] LOG:  received smart shutdown request
e[2;36m[10/22/25 11:04:41]e[0me[2;36m e[0me[34mINFO    e[0m Shutting down                                      
2025-10-22 11:04:41.706 UTC [401] LOG:  background worker "logical replication launcher" (PID 449) exited with exit code 1
2025-10-22 11:04:41.718 UTC [441] LOG:  shutting down
2025-10-22 11:04:41.720 UTC [441] LOG:  checkpoint starting: shutdown immediate
e[2;36m[10/22/25 11:04:41]e[0me[2;36m e[0me[34mINFO    e[0m Waiting for connections to close. e[1m(e[0mCTRL+C to force 
e[2;36m                    e[0m         quite[1m)e[0m                                              
2025-10-22 11:04:41.935 UTC [441] LOG:  checkpoint complete: wrote 9775 buffers (14.9%); 0 WAL file(s) added, 0 removed, 6 recycled; write=0.109 s, sync=0.045 s, total=0.218 s; sync files=102, longest=0.008 s, average=0.001 s; distance=88008 kB, estimate=88008 kB; lsn=1/264A1088, redo lsn=1/264A1088
2025-10-22 11:04:41.974 UTC [401] LOG:  database system is shut down
e[2;36m[10/22/25 11:04:41]e[0me[2;36m e[0me[34mINFO    e[0m Waiting for application shutdown.                  
e[2;36m[10/22/25 11:04:42]e[0me[2;36m e[0me[34mINFO    e[0m Application shutdown complete.                     
e[2;36m[10/22/25 11:04:42]e[0me[2;36m e[0me[34mINFO    e[0m Finished server process e[1m[e[0me[1;36m568e[0me[1m]e[0m                      
e[2;36m[10/22/25 11:04:42]e[0me[2;36m e[0me[1;31mERROR   e[0m Worker e[1m(e[0mpie[1;92md:568e[0me[1m)e[0m was sent SIGTERM!                 
e[2;36m[10/22/25 11:04:42]e[0me[2;36m e[0me[34mINFO    e[0m Shutting down: Master                              
[07:05:14] INFO: e[32mScanning system for available storage devices...e[0m
e[34m════════════════════════════════════════════════════════════════════e[0m
e[34m                       LOCAL STORAGE DEVICES                        e[0m
e[34m════════════════════════════════════════════════════════════════════e[0m
e[34mDEVICE   SIZE     MODEL                          PT TABLE   PARTITIONS SERIALe[0m
e[34m────────────────────────────────────────────────────────────────────e[0m
e[34msda      476.9G   Samsung SSD 840 PRO Series     none       0          S1AXNSAF107171Xe[0m
e[34m────────────────────────────────────────────────────────────────────e[0m
e[34m════════════════════════════════════════════════════════════════════e[0m
e[34m                      LIST DISKS PARTITIONS                         e[0m
e[34m════════════════════════════════════════════════════════════════════e[0m
e[34mDEVICE          SIZE    FILESYSTEM  MOUNTED  LABEL                UUIDe[0m
e[34m────────────────────────────────────────────────────────────────────e[0m
e[34msda             476.9G e[0m
e[34m────────────────────────────────────────────────────────────────────e[0m
[07:05:14] INFO: e[32mNo storage mounts configurede[0m
  Loading env variables:
    APPLY_PERMISSIONS=false
    DB_STORAGE_TYPE=SSD
    IMMICH_LOG_LEVEL=log
    IMMICH_MEDIA_LOCATION=/media/immich
    IMMICH_TRUSTED_PROXIES=172.30.32.0/23
    MACHINE_LEARNING_MODEL_TTL=300
    MACHINE_LEARNING_WORKER_TIMEOUT=300
    PGID=0
    PUID=0
    TZ=Etc/UTC
    certfile=fullchain.pem
    keyfile=privkey.pem
    restore_backup=false
    ssl=true
    storage_mounts=[]
Timezone set from Etc/UTC to America/New_York
[migrations] started
[migrations] 00-current-media-library-folder: skipped
[migrations] 01-config-data: skipped
[migrations] done

╔══════════════════════════════════════════════════════════════╗

░██████░███     ░███ ░███     ░███ ░██████  ░██████  ░██     ░██ 
  ░██  ░████   ░████ ░████   ░████   ░██   ░██   ░██ ░██     ░██ 
  ░██  ░██░██ ░██░██ ░██░██ ░██░██   ░██  ░██        ░██     ░██ 
  ░██  ░██ ░████ ░██ ░██ ░████ ░██   ░██  ░██        ░██████████ 
  ░██  ░██  ░██  ░██ ░██  ░██  ░██   ░██  ░██        ░██     ░██ 
  ░██  ░██       ░██ ░██       ░██   ░██   ░██   ░██ ░██     ░██ 
░██████░██       ░██ ░██       ░██ ░██████  ░██████  ░██     ░██ 

  Home Assistant Add-on by Fabio Garavini
  Immich & Machine Learning from Image Genius
  Base image from linuxserver.io
╠══════════════════════════════════════════════════════════════╣
  User/Group ID:
  User UID: 0
  User GID: 0
╚══════════════════════════════════════════════════════════════╝
[11:05:14] INFO: e[32mUsing SSD storagee[0m
[11:05:14] WARNING: e[33mSSL is enabled, but certfile or keyfile is missing. Using self-signed certificate...e[0m
/usr/local/bin/check-ssl.sh: line 18: SSL_CERTFILE: unbound variable
s6-rc: warning: unable to start service init-nginx: command exited 1
**** permissions for /dev/dri/card0 are good ****
**** permissions for /dev/dri/renderD128 are good ****
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
/run/s6/basedir/scripts/rc.init: fatal: stopping the container.

I have get 502 errors from my ngnix proxy if I upgrade past 2.4.1 - anyone else have this problem?

My Immich Add-On will not start when I install the latest release (it will try and then fail).

I have external storage mapped and everything works great with my 2.4.1 install.