Home lab is requirement, when diferent technologies have to be learned and also tested.
In general more people depend on the “company” labs and bringing them down is not a nice thing. The home IT lab also allows to test “unsupported” and “non-priority” technologies in the “free time” (the time for self improvement).
So I have following salad at home. Yes. It is mixed salad. It was build incrementally and and with home grade equipment. Not all of the below components are for the lab.
This page is hosted with one IP, but the ISP has provided me also another, so I use on IP for normal internet browsing and another for this page hosting. The IPs are provided long ago so they point to a Student Campus, but I am almost 15 km away.
Cable is the preferred connectivity, because it has lower latency than the WiFi, and there is no need to interfere with neighbours. WiFi is simpler to to use, but not all WiFi adapters play nice with Linux (cable adapters play much nicer).
The Linux server is mini PC with modified cooling and extra network adapters as it is used as hypervisor to run from 1 to 5 virtual PCs. The CPU is low end, but as long not all VMs are started at the same time, it is enough. As the RAM is more important, the PC has 64 GB RAM, that is sufficient to run several Linux VMs and several Windows VMs (10, 11, 2016, 2019, etc.)
Anyway the Windows “workstation” is the main PC that is used. RDP from any client in the network enables moving from device to device seamless and closing the applications/documents is avoided.
The ARM microserver is more or less remaining legacy test PC, but it is really stable Olimex single borad battery backed up PC (more info link). It was the previous web server (even dropped it from 2 meters on tile floor and it continued working, without even powering off, when I wanted to move it to another room without powering it off). It is in service in the last 10 years with one battery replacement and ripped off HDMI connector (another of my mistakes), but this does not influence the functionality.
Would I do it differently, if I start from scratch? Yes. 2 mini PCs with Thunderbolt connection between them (or one mini and one normal just for the possibility to add multiple internal network cards) would be enought to play with- enough RAM, fast M.2 storage, Thunderbolt for data transfers between them, normal 1GB ethernet for external data, balancing between the CPUs, etc. May be also small UPS and more port switch (may be with virtual network capabilities).
For example some Intel/Asus NUC or MSI Cubi mini PCs have Thunderbolt and/or two ethernet adapters, so interconnect between them can be insanely fast. Connection to the other PCs can be via ethernet (1Gbps or 2.5Gbps), which is completely sufficient for most tasks, but still much lower than the Thunderbolt. So the 40Gbps connection can be used for data transfers between the 2 PCs and it can theoretically almost reach the M.2 SSD speeds. Having 2 ethernets is not required. I rarely would want to expose all ports and services to the internet. A low end router will greatly limit the exposure and effectively block most of the port scanners and there is almost always the possibility to set up a DMZ that gets fully exposed. Having several separate networks has the advantage that “chatty” apps will not cause intermittent lag.
The network cable salad is easier to set up- dedicated network connections for the VMs, but virtualising the is somewhere in the future plans.
Why not user WSL on Win and PS on Lin? One thing after the other. Can not do it all at once- break one thing at a time and have hot swap backup. Meanwhile I have set up WSL and have even test started some apps with GUI.
The following table is a demo, but it is more for me to be able to check which server is up and which one is down.
Having more isolated servers eases the maintenance- if one machine gets stuck or upgrade is required, then there is no need to reset all.
Server
Status
Windows workstation (lenovodsk)
Linux Server (tivilin)
Linux MicroServer (olimex)
Linux MicroServer (raspberry)
Backup linux server (dy laptop)
virtual web server (this server)
virtual server 1 (lubuntu + MS SQL)
virtual server 2 (win ADc+SQL)
virtual workstation (test win 10)
ups (mode-batV-bat%)
test