In this article, I will provide an introduction about how to set up a Homelab and start self-hosting services. But, let’s start from the beginning:
What is a Homelab?
Strictly speaking, a Homelab is a test environment where you can learn and experiment with new technologies.
It can be something as simple as some temporary virtual machines running on your PC, or as complex as those seen on Reddit. Sometimes it is used to prepare for certification, sometimes to host and expose services externally.
In summary: a Homelab is whatever you choose it to be, and in this case I’m going to use the term to refer to all the systems I use “productively” including:
On this basis, we are ready to answer the following question:
Why is it worth to set up a Homelab?
Privacy and control of your data: reducing dependence on third-party services will put your data under your control as much as possible, and to the extent that you feel comfortable with. It is not necessary (nor a good idea in my opinion) to self-host absolutely everything (for example, email has higher security and availability requirements than I am willing to assume). However, services such as photo storage or home automation servers are perfect candidates. Where to draw the line is a matter of personal choice.
Resilience, security, and sustainability for home automation: consumer home automation is a fascinating world, but at the same time a rather “sinister” one. In its lighter side, we can find situations such as not being able to turn off the lights at home if the internet has gone down in your area or due to a global issue with a CDN, but there are also more serious cases such as:
The lack of privacy resulting from providing a torrent of data about your habits at home (camera recordings, electricity consumption data, etc.)
The general lack of security and support for consumer IoT devices
Make a Homelab strictly necessary for me if you are interested in home automation and want to implement it in a sustainable way.
Potential cost savings: self-hosting services will allow you to cancel many subscriptions to online services and, depending on the price and consumption of your equipment, this can translate into savings.
Ability to experiment and keep up to date: it is common for enterprise products to offer free versions for enthusiasts, so the knowledge and concepts acquired can often be directly transposed or applied to the work environment.
What to consider when planning for a Homelab?
So far so good. But like everything else in life, if you want fruits you must climb the tree first, and this case is no different. Before deciding whether to start down this path, I recommend that you take the following points into consideration:
Electricity: In my case, a NAS with two HDDs, a small virtualization server, a UPS, and the network equipment mean a constant consumption of about 60W. According to the price of electricity in Spain, this is approximately €10 per month.
Maintenance: the “set and forget” concept applies only to a certain extent. A Homelab that hosts services consumed by several people (family, friends) will likely require weekly maintenance and updates, for example:
Upgrading the operating systems for the Hypervisor, the NAS, and the virtual machines
Upgrading applications and services
Upgrading Docker containers
Replacement of hard disks and other end-of-life components
Component upgrades (RAM, SSD, etc.)
Time: it will be necessary to investigate new technologies and interesting services and also identify and fix problems (e.g. why something has stopped working after an upgrade) etc.
Backup: having sovereignty over your data requires understanding and implementing an excellent backup strategy. This may involve using a cloud service (such as Proton Drive -referral link-) to store them, or having to include a NAS in a second location if this is an option, incurring additional costs.
Availability: making something work is one thing, guaranteeing over 99% availability as is standard in the online services industry is whole different beaast. The cost required to achieve these values grows exponentially and, therefore, you have to assume that your self-hosted services will not always be available due to unforeseen day-to-day events. To give an example, these are the availability incidents I have had during the last year:
2 ISP issues: approximately 2 days without access to external services.
Building renovation: approximately 3 days without access to external services
Reverting upgrades that affect operations: 1 day without access to all services
Changing the server fan because it was noisy: 1 day without access to all services
Improvement of infrastructure (Homelab V1 to Homelab V2): 1 day no access to all services
If after all these things, you are still interested in setting up a Homelab: Congratulations and good luck! Below you will find all available articles in teh blog to support you in this journey: