This documentation has its origins in a collaboration between students. I had spent quite some time with administrating my own services, ranging from simple webservices to full-blown redundant email hosts. Over the years, we (that is, I and my admin friends) had moved from centralised offers to our own servers for almost everything we use on our daily basis: email, chat, calendars, version control hosting, and more. Being nerds, we of course also self-hosted the underlying infrastructure: the domain name system, virtual servers to save some money on more powerful servers, routing and redundant private links between the systems, monitoring, you name it.

Now at some point, I met a group of students and other people who wanted to learn from me. We decided to start a shared project: with a piece of hardware, I was tasked to set up virtualisation so that each of us would get their own machine. In addition, I would write documentation on how to set the systems up and how they could run their machine efficiently and safely. This is the document you are reading right now.


Some pieces of this document will be very opinion-based. I will try to mark those pieces as such, but in these times, people consider facts as opinion, so there’s that.