The cheap photo cloud
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.