Over the last year I’ve been slowly weaning myself off big tech platforms in a bid to take back control of my data.
I strongly suspect that the damage for the most part has already been done with both Apple and Google having syphoned snippets of information on me over the many years I had been using their services but if my actions mean that data is no longer added, my dataset loses value then I’m happy.
The latest step I’ve taken has been to buy a NAS in a bid to create my own private cloud and to start self-hosting the services I use in order to keep my data in my own hands.
My first failed attempt at buying a NAS
My initial stab at setting up a NAS was to buy a QNAP TS-251D, a couple of 4TB Seagate IronWolf NAS drives and 8GB of RAM for it. The main attraction of the QNAP was the price and because of the extra memory the ability to run virtual machines / containers.
We also collect the content you create, upload, or receive from others when using our services. This includes things like messages you write, photos and videos you save, the contacts you enter, and the event messages pushed to browsers and mobile apps.
Although I returned the NAS enclosure I decided to keep the drives and RAM I’d bought as most NAS enclosures use the same type of RAM and I could also put the drives in my desktop machine if I was unable to find another NAS.
My second failed attempt at buying a NAS
After returning the QNAP I had to make a decision on either purchasing another off-the-shelf NAS solution or to try and build my own using an old Intel NUC I had laying around, installing True NAS on it and buying a RAID enclosure for the drives I had.
Ultimately I came to the conclusion that I’m too much of a novice to really understand what I’m doing by rolling my own (a principle that’s served me well in the Linux world too) and for now at least I’d be better off sticking with an off-the-shelf solution while I take my first steps into self-hosting.
With that decision made, my life took a very uninteresting turn as I started reading the privacy policies of the different off-the-shelf NAS vendors I could find so I could identify a potential replacement to the QNAP.
I was really impressed by the Synology line of NASs and while they lacked access to as much memory as the QNAP (6GB instead of 8GB) I decided that the DS220+ model had a good trade off between price and the features I wanted.
Getting hold of a DS220+ seemed to be impossible though. After finally finding a website that actually listed the model as available the order was delayed multiple times and in the end I realised that they didn’t actually have the stock they claimed, so I cancelled the order and looked for a different model.
Third times a charm
It took me over a month from the point where I’d decided on the DS220+ model, placing the order and then cancelling the order, to getting my money refunded which meant by the time I was looking for an alternate Synology model I had saved up a little more money.
The DS720+ model was at the top range of that new budget so I decided to purchase that. Compared to the DS220+ it has a 4-core CPU instead of a 2-Core & can use up to two M.2 drives as a SSD cache and, most importantly it was readily available.
The 4-core CPU in the DS720+ model also means that it handles virtualisation better than the DS220+ model but I do think the 6GB of RAM that both models support is a bit of a bottle neck when running multiple services.
My first impressions of the Synology hardware was that it was better designed than the QNAP with the drive trays that can be locked in independence of each other and the RAM being more accessible than the QNAP. I’m also a fan of matte black things so the enclosure also wins aesthetically.
Simarly the set up process for the Synology was a vast improvement over the QNAP, privacy policies were presented up-front and there were only three services that were suggested to me instead of the multitude I had with the QNAP.
So now I finally have a NAS I can use what am I doing with it?
Content storage and streaming
The biggest draw of a NAS for me as someone looking to replace the big tech cloud services with my own self-hosted one has been being able to backup and store my phone’s images and videos.
I had been using NextCloud running on a Raspberry Pi in my living room to do this previously but the iOS client wasn’t great when handling the initial transfer of the 50-ish GB library I have so I decided with the new NAS I’d use the Synology Photos service as that has a set of apps that make it easy to do the initial load and to add new content as I create it.
For dealing with the inital library upload Synology Photos app has an option to keep the app running but with the phone’s screen turned off in order to let you just leave it to do it’s job. I found that this wasn’t perfect though as after 2,000 or so images it would freeze and I had to restart the process.
It took about a day to complete the initial library upload (still quicker than the NextCloud app) but that library upload didn’t conserve any of the albums that I had sorted the content into so I needed to take another 6 hours or so to redo this which was annoying but luckily my Johnny Decimal set up made this easy enough to do.
Once I’d sorted my photo library out the next step was to migrate all the different video files I’ve got scattered over various hard drives from when I used to rip my DVDs to play them on my PlayStation without having to swap disks or home movies from the early 2000s that were recorded on a video camera and left on an old PCs HDD.
The VideoStation app does an amazing job at sorting these collections and if you sign up for an API key for The Movie Database then it’ll automatically grab the information on the film and it’s poster which has been really useful.
In order to enjoy those videos I’ve installed the VideoStation app on my Apple TV (which is another thing I need to find an alternative for) and I’ve not had any problems with it playing files so I’m really happy with it.
Being able to backup, manage and stream my content works fine in the home as everything points to local network IP of the NAS but eventually I’ll need to access those files while I’m on the go.
There’s two potential solutions to this; sign up for the Synology quickconnect service or install a VPN server on the NAS that allows you to connect to that VPN from outside the network and once connected access the NAS in the same manner as you would on the home network.
I chose the VPN approach as while quickconnect doesn’t collect as much data as its QNAP alternative I’d rather not expose my NAS to the internet so openly. The VPN approach means that I can expose the VPN server via a non-standard port and use a higher level of security than just a username and password.
In order to ensure uninterrupted external access I needed to ensure that the NAS’s IP on the internal network wouldn’t change as the port forwarding rules for exposing the VPN server externally require a static IP. To do this I added an entry into my router’s DHCP table to always assign the same IP address to the NAS’s Mac address.
The final step was to install the OpenVPN app on my devices that I was looking to connect to the VPN with and ensure those devices had the files needed to initiate the connection.
Running all the containers
I’ve always loved Docker and it’s ability to simplify complex systems into a single Docker Compose file so was really excited to get started with running Docker on the NAS.
The Docker app works similar to Docker Desktop in the sense that it allows you to search for container images via Dockerhub, shows you running containers and lets you set up new containers.
The Docker app also creates a Docker folder in the filesystem where you can map a container’s filesystem to which is useful if you want to keep data files stored on the NAS.
After following a set of tutorials I was able to get NextCloud running and I’m now looking at replacing some of my SaaS hosted development tools like Github, Figma and Jira with self-hosted alternatives like Gitea, Penpot and Tiaga.
I’ve been warned by more sysadmin minded friends that a 2 disk RAID setup doesn’t mean my data is safe and that I still need to make and test backups of the NAS over time.
At the moment I’m still trying to decide on a long term solution for this but for now I’m using HyperBackup to backup files to an external USB drive that I have in a format that allows me to just copy the files back onto a replacement NAS should this one fail.
I’m really happy with the Synology DS720+ and feel like it’s a good first step into the world of self-hosting. My journey so far has had me stumble into that first step but I think I’ve got my foot firmly planted on the ground now.
While everything has mostly been easy to figure out, one resource that’s really helped me has been the Marius Hosting blog as that has loads of articles on setting up different services via Docker as well as useful tips on how to get the most out of the NAS.