Setting up a Home Server

After using various cloud services for the last couple of years I decided to set up a home server. The main reason for this is to have more control and limit the cost. For a long time I was using the basic 2€/month subscription from Microsoft that gives you about 100Gb of storage. I switched to Google One for the same price because of the better Photos App. But I began to hit the 100Gb limit and did not want to upgrade. Though Google offers a 3€/month subscription for 200Gb I decided to set up a home server instead. Besides the pricing I also wanted a different experience for serving videos, since the previews generated by Google Photos are not always usable and were often just showing a black image of the first couple of frames of the video.

Hardware

I went with the Raspberry Pi 5 with 8Gb of Ram and active cooling. I ordered a separate PCI-Express HAT and a 500Gb NVMe SSD. Finally everything is contained in an aluminum case. The total cost was around 200€. Initially I did not order a power supply, because I thought I could use an existing one. Turns out the Pi 5 is very picky when it comes to power supplies. It won’t boot from USB unless you supply it with enough power. Furthermore it would underclock the CPU if it does not get enough power, sometimes it would even crash when under heavy load. So I ordered the official power supply for another 15€.

My experience with new power supply has been very positive. The Pi 5 is now running at full speed, the performance is quite impressive and I have not experienced any more crashes. The active cooling is not running when the CPU is not under load, so it is very quiet. If I had to choose again I would probably go with a mini PC (e.g. the Beelink N100), because they are only marginally more expensive, do not need to be assembled by hand and offer more performance (though the power cosumption would be a bit higher).

I also purchsed an external Sonoff Zigbee USB bridge to connect my zigbee devices. The PI 5 also acts as a wifi access point for my IoT devices. I have a couple of smart plugs that do not work with the existing 2.4GHz wifi provided by my router.

Software

I decided to go with Docker Compose for the software setup. I have been using Docker for a couple of years now and I am very happy with it. Here are the services that are currently running:

I am thinking about installing gramps to store my family tree though I find the web interface a tad dry to use.

Backup

I backup my home directory to an external HDD that I attached via USB 3.0 to the Pi 5. I use rsync for this. I have a cron job that runs once a week. I should probably pick an additional location for the backup (maybe AWS S3?).

Website

My website will continue to be hosted on github static pages. I have also been using the github actions to build the website. I have been thinking about self hosting it, but there is no real benefit to it right now. Until microsoft decides to shut down github or goes of the rails with it I will stick with github for now.

Email

I will stick with fastmail for email. I have been using it for a couple of years now and I am very happy with it. I have also been using the calendar and contacts feature. I have been thinking about self hosting it, but I am not sure if it is worth the hassle. Email is such a fragile technology and I would not want to miss an important email because of a misconfiguration or my IP being on a black list somewhere.

Password Manager

I will stick with bitwarden for my password manager. It would be an ideal candidate for self hosting. But I am not sure my home setup is reliable enough for this. Further I want to support the development of the client software (even if it is only 10$/year).