Summary

  • Start with Type-2 hypervisors for an easy beginning.
  • Explore personal cloud platforms for and venture into Docker containers.
  • Check out Proxmox when you want to build a home lab specializing in self-hosting services.

If you’re unfamiliar with self-hosting, it’s the act of running services, applications, and platforms on your own hardware without relying on third-party service providers. Whether you’re tired of corporations ruining your favorite apps or simply want to experiment with the FOSS alternatives to popular services, self-hosting is a fun hobby for anyone interested in computing.

However, it’s easy to get intimidated by the sheer number of tools, hypervisors, and virtualization platforms. So, we’ve compiled an easy-to-follow roadmap that’ll help you get a head start on your self-hosting journey.

1 Start with a Type-2 hypervisor

And use it to create simple projects

There’s no need to dive right into server systems when you’re a newcomer to the self-hosting space. Type-2 hypervisors, which can run on top of your PC’s existing OS, provide a simple yet robust solution for beginners. Of course, you’ll have to enable Virtualization/SVM/AMD-V in the BIOS beforehand, but the fact that you don’t have to tweak anything else makes Type-2 hypervisors a safe way to start learning terminal commands, network interfaces, and other essential aspects of self-hosting.

If you’re on Windows 11, you’ve got VMware Workstation Pro and VirtualBox, though I recommend the former because of its superior performance. Once you’ve got the hypervisor up and running, you’re free to experiment with different distros and operating systems. I suggest starting out with a simple OS like LibreELEC, as it’ll give you some insight into accessing systems (or virtual machines, in this case) over the network. Plus, building a movie streaming machine is far more rewarding and engaging than learning Linux distros right off the bat.

A word of advice: remember to change the network interface to Bridged Network on your VMs if you want to access them from the other devices on your local network.

2 Check out personal cloud platforms

Be sure to set them up on Linux distros

Once you’re ready to tackle more advanced services, it’s time to spin up a proper desktop Linux virtual machine. Ubuntu and Debian are the perfect options for beginners, but the journey wouldn’t be any fun if you were to spend all your time learning Linux commands. So, after you’ve installed your preferred distro and updated the repositories, I recommend checking out some self-hosted cloud environments.

CasaOS is my favorite personal cloud, but you can go with Cosmos Cloud if you want something with built-in reverse proxy measures. But the real fun begins once you install apps in these cloud environments. From Syncthing and PhotoPrism to Home Assistant and Node-RED, CasaOS and Cosmos Cloud let you set up a plethora of useful self-hosted applications.

👁 Home Assistant running on a TerraMaster NAS
5 reasons Home Assistant is the best addition to every smart home owner's NAS setup

Having trouble managing all your smart home gadgets? You might want to run an instance of Home Assistant on your NAS

If you want a simple way to self-host your own services and don't wish to spend hours tinkering with your PCs, there’s no harm in ending your journey at this stage. But for those willing to go further down the self-hosting rabbit hole, the next level is where the difficulty starts to ramp up.

3 Venture into the world of Docker containers

Use WSL2 if you're on Windows

Unlike virtual machines, which you’ve been running all this time, containers don’t rely on hypervisors. Instead, they run with the aid of container engines (like Docker) and consume far less resources, meaning you can deploy multiple services at once without straining your system. Docker Engine is one of the most popular means to deploy containers, and is fairly easy to install… on Linux distros.

If you don’t have a spare PC where you can install the more optimized Linux distros, there’s no harm in installing it on top of your Windows machine. However, if you’ve neglected learning Linux commands so far, I’d really suggest installing Docker with the help of WSL2 instead of spinning up a Linux-based VM. When you get more familiar with executing commands inside terminals and learn how to edit YAML files, it’s time to proceed to the next level on our roadmap.

4 Build a Proxmox server

It can be a little draining on your wallet, though

Up until this stage, you shouldn’t have incurred any expenses when self-hosting your favorite services. However, if you want to join the ranks of home lab enthusiasts, you’ll need access to a spare PC, preferably one with plenty of CPU cores and large amounts of memory. That’s because this is the part where you can finally transition from Type-2 hypervisors to their bare-metal Type-1 counterparts, which run directly on top of your PC’s hardware rather than a pre-existing operating system.

Had I written this article in 2023, you could’ve chosen between the open-source Proxmox or VMware’s industry-grade ESXi. Unfortunately, the latter is inaccessible for free if you’re a new user, meaning you’ll have to go with Proxmox. XCP-ng is a decent alternative, but having used Proxmox for many months, it’s hands-down the best free-to-use virtualization platform.

Plus, it’s really easy to get up to speed with Proxmox. We also have plenty of guides covering Proxmox here on XDA, ranging from beginner's guides to troubleshooting tutorials, which you can use as a reference if you run into trouble. For 90% of readers, Proxmox will provide all the features you’ll ever need to self-host your favorite services. But if it's a challenge you seek, feel free to up the ante by diving into the world of Ansible-powered automation.

5 Tinker with Ansible

Admittedly somewhat overkill for self-hosting common services

Let me preface this section by adding that learning something as complex as Ansible may not be worth it for the average home lab owner. However, if you want to gain some industry experience for your DevOps journey, Ansible is the perfect companion to Proxmox.

For starters, Ansible can automate the creation, deployment, and backup processes for your virtual machines and containers. Besides setting up rules to automatically enable features like SSH and VNC, you can even configure Ansible to install packages without any human intervention. Combine Ansible with a high-availability Proxmox cluster, and you’ve got a robust home lab that can not only run all your favorite self-hosted apps but can also serve as an experimentation hub for your coding needs.

Despite sounding difficult, self-hosting is a fun experience

Although the technical jargon and terminal commands can sound formidable when you’re just starting out, self-hosting is a lot simpler than it may appear. If you keep at it, you’ll soon find yourself having fun when building (and more importantly, breaking) entire containers inside virtualized environments. Just remember that this hobby is really addictive, and you may eventually end up with several server-grade rigs running multiple services, half of which you’ll probably never use.