I started building HomeLab and I don't regret it. It's all good, it's all Open Source.
What is Home Lab?
A brief description:
A Home Lab (Linux) a home test environment or set of servers used for learning, development, experimentation and running own services. It usually contains one or more computers, servers, or virtual machines running Linux operating systems.
That would be the definition.
What is a Home Lab?
✅ Learning and practicing – Testing of administrator skills, server management, networks, automation (Ansible, Terraform, Docker, Kubernetes).
✅ Development – Running websites, APIs, databases or other software.
✅ Independent services – Operate your own Nextcloud, Plex, Home Assistant, VPN or even email server.
✅ Safety tests – Use as a pentesting lab with Kali Linux or other forensic tools.
What kind of hardware do you need?
- Old PC or laptop – Perfect for a basic Linux server.
- Mini PC (e.g. Intel NUC, Raspberry Pi) – Low-consumption solutions.
- Used servers (e.g. Dell PowerEdge, HP ProLiant) – More power and RAM.
- NAS (e.g. Synology, TrueNAS) Data storage and media servers.
Software and tools
Automation: Ansible and Terraform
Virtualization: Proxmox, VMware ESXi, VirtualBox
Containerisation: Docker, Podman, Kubernetes
Network management: pfSense, WireGuard, Pi-hole
How did I do it?
So now that we know what Home Lab is, I'll tell you how I started it. I run several servers related to my work, but I also wanted to have a ‘own’ server where I could experiment to my liking. The problem was that I did not have the right ‘iron’ for it. I wanted a machine that wasn't a used laptop or a high-performance resource-demand machine because it was going to be at home, but I didn't want to have a big electricity bill or worry about when the laptop would overheat ⁇
Of course, it speaks for the laptop, the battery, because there are quite a lot of power outages around here, so you could avoid the outage from the server's point of view. I also have Raspberry. Two of 'em. But for what I wanted to use, I felt the resources of my raspberries were scarce. But still, I wanted a dedicated machine. So I got a lenovo M910q mini PC with 16GB of RAM and an i5 processor.
Some places told me Linux wasn't going to run on it, but I didn't believe them. Linux runs on everything. So when the machine arrived, of course, with a pre-installed Windows operating system, the first thing I did was to install Linux on it. My choice was the latest Ubuntu LTS. Not the server, but the desktop.
I wanted you to have a GUI, not just a terminal access. I thought this would be good for testing resource usage as well.
The system is installed without error and everything works.
Casa Os
After that, I installed a system that I had been looking out for myself for a long time. It is also an Open Source. This is Casa Os.
What's ingenious about it is that the installation is simple. Actually, you can install it from 1 command:
However, here the installation has already been done from another machine. I simply entered SSH on this machine and gave the order.
Although I use the terminal on a regular (daily) level, I am now using a new device. As you can see from my writings, I love to try new things. For this purpose, I used an app called XPipe. This is a Cross-Platform app, which actually helps you to enter SSH on a given server only once. I can save the credentials and next time I only have to click on one and reach the terminal of the given machine. Actually, I use it for convenience.
So I installed Casa Os and from now on I reached the web GUI interface at the IP address of the machine.
The op-system is located ‘upstream’ of Ubutntu. It has its own App library, where a lot of software is available. First I installed Portainer and I was pleasantly surprised to see the containers of the installed software inside Portainer.
Of course, everything can be changed from container settings to ports. By the way, the system helps to automatically allocate ports so that there is no jamming.
The rest is basically child's play. There are many tools in the App library. All of them are containerized on the server, so you can install them, try them out, delete them along with the data, your server will not be littered.
The default apps I run on it are: Home Assistant, Code Server, Gitea, NextCloud, Jellyfin, Komga Uptime Kuma, Portainer.
Of course, you can also expand your storage space, for example, if you want to store your favorite movies, music, comics, books in one place. That's why I added a drive from my desktop. This was also useful because it allows me to access the storage space from the home network, from any machine, and even to set it up as if it were a ‘real’ drive in the machine I am working on. So it's a super-small experiment to build a home lab.
I recommend everyone to try it if you have an unused, expendable machine at home.
You can find more information here: https://casaos.zimaspace.com/
