I ran a little experiment for six months. First, instead of using third-parties to serve my online services (email, XMPP, CalDav etc.), I migrated my data to my own VPSes. This latest experiment consisted of hosting all these services on my own physical server, in my home, instead of remote VPSes.
The first step was to update the Internet link at home. My previous link was aimed mostly at domestic users - the ISP didn’t block any of the ports, but I had a dynamic IP address and no SLA. For a small (very small, indeed) fee, it was very easy to upgrade.
Hardware-wise, I needed no upgrades. I have a Dell server sitting idle at home, UPS, network equipment and pretty much everything else for this setup.
This setup would never get close to 99.9% availability, but this wasn’t the goal - anyways, 99% availability (~3.65 outage days per year) is enough for me. The only service which got more attention was email: I kept one VPS as a backup MX server which relayed messages back to my home-server.
The internet link provided by Quickline worked perfectly and even during my apartment move, the link was up immediately as we entered our new home. Their tech support is also great. I really recommend their services.
I also can’t praise enough the FreeBSD and bhyve projects. Good documentation and communities, setting up the server and VMs was exciting (the first time isn’t easy, but you learn a lot in the process and it’s very rewarding).
What didn’t work
I blame this one on being a new parent. The root cause for both outages I had was my son :) He is still young and very curious, so I should have expected the power button to be calling out to him, asking him to press it. The same goes for the UPS emergency shutdown button. All in all, this was the only thing which caught me by surprise.
I really enjoyed and learned with the experience and recommend it to anyone who wants to practice their sysadmin skills. There are some things I would do differently, mainly separate my home Internet link from my server Internet link - but this wasn’t available at the time. Cooling and the power bills are factors one cannot ignore as well.
One of my goals is to publish instructions, step-by-step, on how to achieve this same setup.
Now I’ve moved my services back to a remote server hosted at Hetzner also running bhyve guests. I also decided to do something from my long-standing to-do list: migrate this blog from Wordpress to Pelican.