Oh man, what an annoying perpetual topic. Backing up your own photos… MEGA IMPORTANT and at the same time a MEGA SENSITIVE topic… If you’re like me and have already accumulated a few years with all kinds of memories in the form of photos, then you probably know the following evolution:
Stage 1: In the first few years, there are only a few hundred MB, perhaps GB, that need to be managed. They are stored redundantly here and there, sometimes as a pure backup, sometimes for a frontend like a self-hosted image portal, but already fragmented and without a strict workflow, how the images are made available when and where for which purpose. In addition, one is constantly busy with parties and other conveniences. There is neither the time nor the urgent need for a clean IT solution.
Stage 2: After a few more years, the threshold slowly comes where experimentation and lax handling of data could become dangerous. The risk is already high, and it’s no longer easy to manage the tens of GBs of images. So you decide to at least find a fundamentally sound solution. Even if you already know that there is not enough time because of work and family to create a solution that meets all requirements.
Stage 3: After the solution from stage 2, you postpone the search for an even better solution for a few years, because the previous one got by without any major incidents and contains many features that you like to use. Even if you would like to finally create the final solution -> work and family somehow don’t become less time consuming. So it stays put until it can’t be done anymore….
I am currently between stage two and three. I’ve settled myself and the family into a small ecosystem that works fine, but isn’t ideal. Specifically, we all use Google Photos in the family as the backbone of the image infrastructure. We all use Android devices. From a data protection perspective, this is a disaster. But that’s also the only downside for me. Because on the other hand:
Google Photos is perfectly integrated into the Android/Google ecosystem. Automatic uploads work smoothly, no need to constantly check if the sync has been interrupted due to any issues (like third-party apps being overrun by the battery-saving feature in Android).
- Google Photos takes care of the integrity of my photo files. I can’t accidentally cause my data to be corrupted locally (by bitflips for example) and then pushed to the cloud in a corrupted form because Google Photos performs a one-time, unidirectional sync from client to server. Once synced, I can only manage Photos online.
- I can share photos with family
- Google Photos offers albums, enhancement suggestions, …
- Backups can be pulled every few months via Google Takeout in wonderful ZIP form and stored redundantly.
So far, so good. Now, however, Google announced last year that the free storage portion would soon no longer be available and every photo uploaded would pay into my standard account’s quota (~15 GB). Hmm. Ok. Let’s see what paid plan I would need instead then… musings… oh dear, once 1 TB and once 100 GB in the current budget alone. That’s not so cheap, I thought to myself. But wait!!! What am I looking at? Google Pixel devices are blessed with exceptions to the rule. So roughly skimmed the entry from Google, memorized that the current devices are supported and … done. Problem solved again for now, can go back on the ToDo list 🙂 Now, however, I was surprised by a message from one of the Pixel devices that the memory is soon used up. What?? Wait a minute. Where did it say that Pixel devices are exempt from the quota? Ahh, there. And the new Pixel 6 is … NOT SUPPORTED. ARGH! “Read it right boy, you need to read it right!!!” I thought to myself.
Now all of this is of no use. I do not want to spend so much money for subscriptions, where it is already clear that in the long term it should be a solution away from Google anyway. Since this does not work overnight, I pondered and created another interim solution to give me time for the transition to the final solution. Final in the sense of fulfilling all my requirements at that moment. And that’s exactly why I share my progress with you here. There will be two more blog posts explaining my planning and building of two more solutions dealing with my problem:
Interim solution
Status = in operation, extended test phase
- Install old Google Pixel 2 in server closet: Acts as a “Google Photos” aggregator.
- Any other smartphones: Function as “Google Photos” supplier
The idea is that on the Google Pixel 2, Backup & Sync is enabled for Photos and Videos, which pays into the free storage share, since Pixel 2 (up to Pixel 5) devices are not affected by the quota. All other devices disable Backup & Sync for Photos and Videos. Instead, they push the files to the Pixel 2 via other means, from where it goes to Google Photos. Read the linked blog post for more details. Here is a conceptual diagram:
Final solution
Status = in planning, idea collection
- Self hosted Various mechanisms for integrity preservation built in
- BTrFS, ZFS
- RAID x
- Hash computing
- …
- Onsite and offsite backup
- Zerotier for easy connection of backup instances without port forwarding
- …
- Separation of data integration layer (collect and store files) and data preparation layer (software for albums, sharing, …)
- …