What is a Homelab and why you should have one?
Technically, a homelab is a lab at home, or, in other words, a domestic infrastructure used for experimentation and learning. The difficulty to truly define what a homelab is comes from the fact that there are as many homelabs as homelabers, to serve as many purposes as one can imagine:
- experimenting with networking or system administration
- leveraging storage solutions to replace Google Drive, Box or the infamous copy on this external hard drive once in a while
- replacing popular cloud tools and app with self-hosted alternatives
- serving music, movies and other multimedia content to an entire home
- automating home with a focus on privacy
- learning professional skills using a pseudo-corporate environment
In general, all these use cases share a couple of common goals: privacy and control. The privacy and control come from the fact that everything in your homelab runs on hardware that is physically located on your premises and for which you have a full access. In addition, the softwares that homelabs run are usually Free and Open-Source Softwares (FOSS) which remains the best guarantee when it comes to data collection and usage - and thus, privacy.
So in fact, a homelab does not have to be some expensive and highly specialized hardware, mounted in dozen of rack units, consumming hundreds of kilowatts per hour. A homelab can be as simple as a Raspberry Pi, or maybe an old re-purposed laptop, or a newly bought mini-PC that will be stand next to the TV and serves as a Home Theater PC (HTPC), or maybe all of these working together to offer different type of services!
What does it take to start?
Define your goals and expected maturity.
The most important at first is to set up goals to achieve in terms of functionalities to offer to the users and level of maturity.
By maturity, I mean the stability and reliability of the service: can the service breaks every now and then for an obscure reason or does the service need to be available 100% of the time to actually be worth it?
In my case, my homelab hosts several critical services:
- the entire home automation, which includes turning off and on the lights, fans, most home appliances but also the heating system,
- my company data and multiple services to help me with daily job.
These services need to be as reliable as any commercial offering.
On the other end of the spectrum, I run several services related to MLOps or experimenting with Large Language Models (LLMs) that could break in 15 minutes without any particular impact on anyone's life. This is just my playground!
Finally, some services are in between, such as the media players: no one will die from not being able to play a movie tonight, but it is still nice to have!
Build incrementally or per sub-function.
Of course, no one has to know perfectly all the different functionalities at first. A homelab can and, maybe even, should be built incrementally with the needs. Actually, it is very likely that one will start with a development environment, to learn, experiment and break, before migrating progressively towards a more stable and production-ready environment. There is not a single path to a homelab. One might even argue that a homelab is the path, literally.
You have an old laptop? Use it as a server for anything. Your services are stable enough and your users want more stability? Upgrade to a better hardware, maybe with uninterruptible power supply (UPC).
You have an old Rapberry Pi? Use it for Home Assistant and a couple of other services like a DNS server. You start to feel the hardware limitation with all your automations and devices in place? Scale to a mini PC.
Another strategy that might be more costly as an initial investment is to plan per sub-function rather than adding hardware from here and there. I personally identify three large sub-functions for any homelab:
- network: what sort of network infrastrure do you need?
- storage: how much and what sort of storage do you need? what is your backup and redundancy strategy?
- compute: how much compute power do you need to run your services and applications?
Because the network is transversal, I would suggest to pay a particular attention to this sub-function at first. Changing a backbone infrastructure can become costly, especially if it implies to re-wire an entire house! On the other hand, for most people, a gigabyte or 2.5Gb internet might be more than enough and the focus should be on the actually router and switches.
There are some exceptions, such as as off-site storage for a proper data backup strategy for instance. ↩︎
The cost of a homelab: hardware, energy and time
The last question to answer is how much does it cost to have a homelab?. Again, this may vary from homelaber to homelaber because some would throw an unreasonable amount of money in what is their main hobby, while some are on a tight budget and do not want to spend more than they would on a commercial alternative.
There are several aspects to take into account:
- the initial investment
- the running cost, both in terms of time and electricity
It is easy to estimate the initial investment cost prior spending anything. On the other hand, estimating the running cost might be slightly more difficult as the overall price will depends on the consumption under idle and load, the usage schedule and the price of electricity where the homelab resides. In addition, the load curve of power supplies at low load - which is the main regime for a homelab - are almost never communicated by the manufacturers. In fact, the efficiency certifications focuses on high load and might be misleading for a homelaber. Chosing the right hardware to keep a balance between the compute power and low consumption is a topic by itself which unfortunately is one of the first to face when building a homelab.
I would also recommend to compute the cost marginally per service. For instance, Google Drive and Box Personal Pro are respectively 25 EUR/year and 108 EUR/year where I am located. Because I need beyond the capability of the free offer, I would anyway pay for one of these services. Since I am using my own service hosted in my homelab, I can say that I marginally save 25 to 108 EUR/year. This single service allows me to justify the energy consumption of my homelab. With a cost of 13.97 cents per kWh at the moment I write this, and about 40W for my storage node, the total annual cost of this particular service is roughly 45 EUR - privacy incuded -.
In the end, once combined and compared to the commercial alternatives, the cost of running a homelab can be vastly compensated by the marginal savings.
Finally, a factor that is vastly overlooked is time. How much time do I need to build and maintain a homelab? Regardless of how much you plan to be involved, the answer is: more than that. Running experimental services to learn by breaking things will obviously lead to spending a lot time fix things. Conversely, reaching a maturity level close to a commercial offering for critical services will require a tremendous amount of time ahead. Even with a homelab designed and implemented near professionally, issues will arise and when they come, it means solving them. This can sometimes be daunting or frustrating, especially when the something is critical like turning on the heater, and was working perfectly 10min ago.
Get a homelab!
Homelabs are great in the end. They can be simple or complex depending on your needs. There are always things to learn on the way, whether we build a service with high availability for professional purposes or a small experiment with old hardware.
Even with a high cost of electricity, they can help to save money on the long run when they are used to replace commercial applications. Otherwise, like any hobby, they require a variable investment in cash and time!