Shifting from Tutorials to Practical Experience

Reading Time: 3 minutes
Since getting the Raspberry Pi devices my shift has moved from following tutorial after tutorial to experimenting with setting up a number of server projects fron Home Assistant to Nextcloud to Photoprism and Immich to name a few. In the process I have instantiated and then pulled down plenty of instances before finally deciding to keep certain instances up and running for longer, to see whether I can use them. I also experimented with CUPS and set up a printer/scanner for remote use.

## Tools That work

Nextcloud, Photoprism, Home Assistant and Pi Hole work well so I can now use them without thinking about them too much. Both Ad Guard and Immich were slightly less successful but this might be due to fatigue, and running two things at once. The issue with Ad Guard is that it seemed to block 192.168.1.1 which I need to be able to access. I also noticed that when I switched things around Windows stopped being able to see local devices.

## Immich Potential

I see a lot of potential in Immich but there is one flaw. If your library is too large it loses the ability to crawl all the files and upload them before timing out. I got to 14,000 images backed up, and the last 4000 are currently in limbo, waiting to recognise that they can be moved from the phone to the Immich server. With Nextcloud and Photoprism I was able to transfer all files from the phone to both services and now I can add the latest images with ease.

## An Experimental Close Call

This morning I had a close call. I plugged in a one terabyte drive to the Pi with Photoprism and Immich. My plan was to mount the external hard drive, move the files from the SD card library to the external drive library and then to change the .env file to read from the external hard drive rather than the local drive. This didn’t work.

After some quick searches and practicing my AI using skills I had set things up as I thought I wanted them and started to copy from one location to the other. I wanted to check on progress a few minutes later but noticed that I was copying between two partitions rather than between two drives. I aborted the copy. No data was lost.

That’s why you experiment in a context where it doesn’t matter, and why you don’t assume that data is safe until it is backed up off site once, and locally twice.

In the worst case scenario I would have lost my Photoprism and Immich instances.

## The Postponed Experiment

Before the setback described above my idea was to see whether the Android App would allow me to backup photos from Google Photos to Immich. It can’t. It only sees what is on the phone locally, not online. For the second part of the experiment I wanted to copy images from Google Takeout to Immich using Immich Go.

If Immich detects duplicates it will mark them as duplicates and throw them away. The reason for which I want to experiment with the tool is that I have eight hundred one gig files to get through, and to do this manually will take more than five minutes. I also need at least a terabyte of space free on another drive, so that when the files are unzipped and added to immich there is enough space for the task to complete successfully.

I want to experiment with the Uploads folder that I noticed in Immich, as well as Immich go.

## The Concern

My concern with unzipped Google Photos files is that they will have lost exif and other data so Immich will import them as being created tomorrow or the day after rather than the day they were actually created, along with exif data for location data, camera used, and more.

Immich Go is meant to read the image file and the relevant JSON file to ensure that the relevant metadata is attached to the relevant image. iPhoto and Google Photos tend to strip this data to make migrations more difficult.

## And Finally

Tutorials are great for building a good foundation but it’s by playing with practical examples that we learn to think about things in the right way. We consolidate what we learn both through repetition, as I did with Nextcloud, or by finding the right packages for docker and a specific OS, before changing OS and getting Docker to work on that instance. It’s about encountering an error and knowing how to fix it.

My next challenge will be to install Immich, Nextcloud and Photoprism on a single system.