Something that’s been on my tech to-do list for a number of years is to set up a self-hosted photo/video storage solution for myself that utilizes my home server, and can be easily backed up to an external storage solution if/as needed. My plans have been for this to initially not be a replacement for something like iCloud Photos, but rather a complimentary solution, archiving photos in case something ever happens to my iCloud Photo library. This weekend, I took the first step in implementing such a solution.

Background Link to heading

First, I should probably back up a little bit. Why do I want something external to iCloud Photos? Don’t I trust Apple? Of course I do, at least to some extent, or I wouldn’t be using their ecosystem! However, I long ago learned that keeping all of my (tech) eggs in one basket is dangerous. There are reasons that can cause an account to be shut down, and numerous news stories over the past few years have chronicled issues with relying on any one tech company as the repository of all of your data.

“But then, Justin, why not move to a self-hosted solution entirely?” That thought has crossed my mind too, but there are two reasons why I don’t think that’s the right option for me at this time. A) I am a very happy user of the Apple ecosystem, and having experimented with keeping all media outside of their system, I don’t really like it. And B) see the paragraph above about all of my eggs in one basket. Something could happen to my server as well, and so parallel pathing seems like the best option currently.

Almost two years ago I set my parents up with a self-hosted backup solution, Synology Photos, and was planning to eventually implement the same for myself. It has worked relatively well for them, but there were a few pain points when outside of their network that I wasn’t fond of, and I also don’t yet have a Synology of my own to install it on. However, I do have a Linux-based home server with plenty of storage on it, and so I started looking through other options. There are a number of great web-based solutions, but not many that include a mobile app, which I strongly preferred. And then I remembered Immich…

Enter Immich Link to heading

I first heard about Immich a few months ago on the Ask Noah Show. At the time, I glanced through the webpage, thought it looked interesting, but didn’t make plans to use it since I don’t have Docker installed on my home server. Or, well… I didn’t have Docker installed. After looking Immich over again, I decided that I would set up Docker and give it a try.

My home server is running Ubuntu 22.04, and so installing Docker was pretty straight forward. I also set up Docker Compose at the same time, and then followed Immich’s documentation to get a local install up and running. A few minutes later, I was ready to try it out.

For the time being, I set Immich up to only be accessible inside my network. Especially since I’m not planning to use it yet as my only photo solution, it didn’t seem necessary to set up external means of access. After install, I logged into the web interface, created the admin account, and glanced through the settings, before moving on to the real test… the mobile experience.

First Impressions Link to heading

I installed the app on my phone, pointed it at my server’s IP address, and held my breath… would it be that easy? The answer was yes, with a caveat. I had to adjust the backup settings, which were trivial, to tell it which of my photo albums to back up. I selected “Recent”, which ends up backing up my entire iCloud Photo library to Immich. Perfect! Or… not. Apparently there are some issues with RW2 images currently, which are the raw files M4/3 camera outputs. Also, it takes a long time to upload 100s of gigabytes of photos (shocker, I know). But, slowly, data began showing up in the web interface, and the face detection included went to work identifying faces for me to label.

My first impressions are that the app could use some UI improvements, but overall it’s slightly easier to make sense of than Synology Photos. The web interface is even better… the overall design is very clean and simple to understand, with most of the complexity hidden behind the Administration panel. The only thing I’m really missing currently is a way to do light photo editing (mostly rotation) on the images.

Conclusion Link to heading

As of the writing of this post, I don’t yet have all of my library backed up, but I do have a large enough sample set to get a feel for how Immich works. Overall, I’m pretty happy with it. It’s not flawless, but that’s the first thing you see when you go to Immich’s website…

The project is under very active development. Expect bugs and changes. Do not use it as the only way to store your photos and videos!

The face identification works well enough, and the experience is at least as good as, if not better than, Synology Photos in my mind, though definitely slightly more complicated to set up for the layperson. For the time being, I expect that I will continue to use it as my means of off-iCloud backup, and will make further decisions if/when when I upgrade my home server.