The first step in my home server rebuild was to choose and install a base OS on which I could then run multiple virtual machines.
If you’re planning to devote a device to Home Assistant you won’t need to worry about that. The easiest way to get started is to get a Raspberry Pi or similar and install the Home Assistant OS on it. If you just want to play with Home Assistant before committing to it, you could also run it as a virtual machine on your PC, using something like VirtualBox or VMWare desktop – plan to switch to a dedicated device, though, because if you have any interest at all in home automation you’ll want to run Home Assistant 24×7.
My old server was running CentOS 7 as the base OS. But CentOS has changed…
CentOS was the fully open source version of Redhat Linux, compiled from the same sources but without the Redhat branding and without the need to buy a Redhat licence. I used it because I’m familiar with Redhat.
Given that the current release is Redhat 8, the obvious answer would be to use Centos 8 for my new server build. That is, until an announcement made towards the end of last year.
Instead of tracking Redhat builds and being, basically, identical to Redhat, CentOS will instead be an upstream version of Redhat. CentOS 8 is being replaced by CentOS Stream, described as a “continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development, positioned as a midstream between Fedora Linux and RHEL.”
Some are saying that this basically makes CentOS a beta version of Redhat and therefore not really suited to production deployments. If you’re interested in the minutiae of the Redhat ecosystem, this article is worth a read and argues that nothing critical has changed and that, if anything, CentOS will be stronger for the change.
Even with that post in mind, I still felt a little reluctant to switch to CentOS Stream. I just prefer the idea of a fully supported and stable operating system for my base OS, and there was enough doubt in my mind about CentOS Stream to rule it out.
I considered switching to the LTS (Long Term Support) version of Ubuntu. I even installed it in a VM on my PC to try it out, but I wasn’t keen. I can’t put my finger on why, but I just prefer the Redhat way of doing things. That’s probably just familiarity, I know – I’ve been using Redhat for years, both at work and home, and I’m familiar with the way it works. The differences in Ubuntu are relatively minor – a different package management system, some changes to file locations – but enough to make me prefer Redhat.
Another option was to run a bare metal hypervisor. I looked at Proxmox, which is basically a Linux distribution designed purely to run virtual machines and containers. I even considered the free versions of ESX and Hyper-V. In the end I decided to use a full Linux OS, with KVM based virtual machines running on top of the host, in case I needed to run anything that performed better with direct access to the hardware.
That’s when I discovered that Redhat offers a no-cost option, allowing you to run up to 16 nodes. It is designed for “personal servers, home labs, and small open source communities” and can be used by an individual developer for “demos, prototyping, QA, small production uses, and cloud access.”
A personal server for small production use describes my use case perfectly.
The only drawback is that you need to register your machines with Redhat in order to get access to the official repositories for updates, and the subscription has to be renewed every year. On the other hand, the registration gives you access to the Redhat portal where you can track which updates are available for your systems.
Redhat is a very conservative distribution, and can lag behind Ubuntu with regard to versions of software, but that’s because it prioritises stability. If I need something more recent I always have the option of running it in a virtual machine or container on top of the base OS. It’s also worth bearing in mind that it doesn’t officially support Docker. Redhat’s alternative to Docker is Podman, which is mostly compatible but does have some important differences, so if you’re planning to make extensive use of Docker it might be easier to choose a distribution that officially supports it.
Next time I’ll look at installing Redhat and preparing to run virtual machines.in Home Automation