The cheap photo cloud

Posted on Nov 12, 2024

I get it, cloud services are convenient. For a lot of situations, I’d say there is no alternative either: it’s cheaper to use them, they are reliable enough. Sometimes though, they can be expensive, but in my case it’s not about money, rather about a slight obsession about making my things more private that has triggered me to start building a little cloud of my own for hosting photos. The reality however is that I am cheap, really cheap. I don’t like spending money, I never found a way to enjoy spending money. I also hate waste: throwing things out when they can still be useful is kind of my thing.

All of those things together, made me build a little solution for storing my photos, built with the following requirements:

  • photos must be accessible from everywhere.
  • it must be cheap to build and operate.
  • it must not primarely rely on cloud services.
  • it should be possible to survive failures.

Let’s see how I did that.

The hardware

I built the whole setup on hardware I received as gift: I only bought the ethernet cables for a total of less than 10 euros. So what’s the other hardware:

  • a reused dirt cheap network switch from 15+ years ago that originally my father bought: it doesn’t allow the best speeds, but it has been good enough for my usage. It’s most likely the first thing I will be upgrading should I want to improve the setup.
  • a Synology NAS, gently donated by my friend Daniel. It’s not the fastest, but I managed to keep it up to date and it’s working fine since.
  • a Raspberry pi 3 that originally belonged to my friend Marco (who passed in 2018, his wife gently gave it to me).

The software

What isn’t hardware is software, so let’s see how I used the hardware:

  • I rely on the Synology to host my photos. I use the official apps from Synology to serve the photos, they have been good enough for me and they don’t leave me much to maintain.
  • To connect from the outside I use tailscale that I have configured on my phone and on the NAS. It’s great.
  • I don’t need the NAS to be always on. It’s actually off by default and when turned on it turns off by itself in the evening, because I really never use it during the night.
  • I built a little application that I host on the Raspberry pi that allows me to turn the NAS on when it is needed. The functionality is simple: it serves an endpoint inside the LAN, which is accessible via Tailscale. When hit, the server will in turn send a magic packet to trigger the Wake on LAN functionality of the NAS.
  • The whole data is backed up to one of the big clouds, encrypted, to serve as backup outside of the apartment boundary so that, if everything goes bananas, I can still access the data.

Conclusion

The hardware above costed me zero. The maintainance is very easy, I just need to run upgrades from time to time. There’s not a lot of stuff to upgrade, it consumes very little energy, it’s fast enough. In the future, I will be investing in making sure that I can survive failures of the Raspberry pi a bit better, given that that part can potentially break and it was configured mostly manually… but for now it’s enough. Enough is the key. Also, no AI.