Immich and External Libraries

Over two or three years I have been playing with Immich. In that time I have exported my photos from two or three phones multiple times. The reason for me importing photos multiple times is that every so often I update immich and something breaks. It is at this point that I reimport libraries yet again.

From One Pi to Another

This morning I swapped from one Pi to another because the other Pi has an NVMe drive attached to it. The logic is that I can use the SD card as the primary drive, and the NVMe drive as the backup drive.

I was considering using an external drive. If I do this then I need to make space for that drive, and it will have to run permanently. If I use the m2 hat, it has its usual footprint, and I have a primary and backup drive. Every so often I can use Rsync to backup to a third drive.

MyCloud to Replace Google Photos

For offsite backup I use Swisscom’s MyCloud, and Infomaniak’s KSuite. If you’re curious about why I use both, the short answer is legacy. I was playing with MyCloud until it became paying. In the case of Ksuite it’s because I’m on the 6TB plan, so I’m relaxed about using them as an offsite backup.

Importing External Libraries with Immich

For instructions you can use the Immich instructions. The relevance of getting the import of external libraries to work, within Immich is that, in my experience, every few updates something breaks and you are stuck with having to reimport your library if you do not have a work flow to import the old library to a new container.

My aim this morning was to get that workflow in place, so that in the near future I backup the photos to a Pi with an Immich Docker container. This will then be backed up to an NVMe drive, and then to an external hard drive.

There are two aims. The first is to be sure to have two local backups that are updated at least daily, and a third backup that is weekly. If immich fails, for any reason, then I want to be able to rebuild the library without having to sync from a phone yet again. This usually takes hours, especially when you have tens of thousands of photos. When I trust that my self-hosted solution can be relied upon, then I can minimise my reliance on cloud solutions such as iCloud, MyCloud, and Google Photos.

For a while exporting from Google Photos to Kdrive was very fast, but they have recently made exporting from Google to Infomaniak more complicated, which is why dumping Google Photos is interesting. With MyCloud and iCloud I don’t want to upgrade to more than 260 Gb because I don’t trust them to make it possible for me to retrieve my data.

With Kdrive the work flow to backup photos from my phones to Kdrive is simple, and from Kdrive to a local drive is also straight forward. With Kdrive I have an offsite backup that can very easily revert to being an onsite backup.

Immich as Primary Photo App

I used PhotoPrism and Immich in parallel and although I prefer Photoprism because it’s European, Immich seems to have been more dependable over time. I find myself automatically using Immich more. It has an iOS and android app.

Photoprism worked great, for an extended period of time but eventually it lost track of where photos were kept and I stopped experimenting with the app, temporarily.

If today’s experiment goes well then when Immich breaks next recovery will be a matter of minutes, rather than hours.

And Finally

Self-hosting an app like Immich is a fun learning experience. It allows you to learn new skills, including ensuring uptime, and resiliance. Over two years Immich has been dependable although three or four times the app broke so I started again. My aim, with this morning’s experiment, and going forward, is to ensure that the service has reliable uptime and resilience.