A Raspberry Pi 4, top, and Pi 5, bottom.

Immich and an M.2 NVMe Drive on a Pi

Reading Time: 2 minutes

Immich is an easy to install and use app that works well with the Pi5. By default you will have it run on the SD card but yesterday I finally found an NVMe drive at a reasonable price so I swapped the AI kit for a 521 NVMe drive.It was detected with ease so I formatted the hard drive. I then used GRsync to move the photos from the SD card to the NVMe drive. I then modified the .env file to tell it to look on the NVMe drive rather than the SD card.

Since there was an update for Immich I updated the docker image, and in the process it went from using the SD card to using the NVMe drive.

The move was quick and simple. It is is also tidy and at least now there are two points of failure, rather than one. If the SD card fails I still have the photos.

The next step would be to repeat this with a second Pi, a second HAT and a second NVMe drive so that I could mirror my Immich library across two devices in case one fails. My aim would be to have the primary device in one place and the secondary device in another place, and for GRsync or similar to duplicate data from the primary device to the secondary device.

And finally, this is a tidy solution. With Photoprism and Audiobookshelf I have a larger drive attached to a Pi but for that setup I have half a terabyte of audio files, and photos from Photoprism and Immich. I have plenty of storage but it isn’t mobile.
With the new setup I can travel with the Pi, sync to it, and then replicate it to another system, so if one system fails I change the tailscale ip address from device one to device two and it will be seamless, once it works as I want it too.