Here it is; my homelab, my server rack, my data center, my precious.

The homelab rack sits in my home office, just left of me as I type this text. Because of that I’ve been focused on keeping the noise as low as possible; for that reason I’ve built the computers myself instead of buying second-hand rack servers. I’ve tried, but they sound like turbo engines.


I like Linux, so my servers are Linux, my desktop is Windows. I run all my services virtualized with KVM, and back up the images and configurations to my NAS every night. So if anything breaks or I have to take a server down for maintenance, it’s easy to move the guest OSes to another machine. For that reason I keep identical network settings, bridges and such on the two hypervisors.

I will expand and keep this page up to date as the homelab project moves forward, feel free to ask me anything in the comment section, or wherever really.

Top to bottom

  • Fiber modem and Synology NAS DS416play.
  • 120mm fan plate, to cool the Unifi switch and network equipment at the back.
  • Unifi USG router and Unifi US-8-60W switch (accessible from back).
  • Unifi US-16-150W switch.
  • Cable management unit from Navepoint.
  • Power distribution unit; BlueWalker PW PDU RC-16A.
  • Automatic power transfer switch; BlueWalker PW ATS.
  • Desktop computer.
  • KVM hypervisor #2.
  • KVM hypervisor #1.
  • UPS; PowerWalker VI 1500 RT HID.


Hypervisor #1

Ubuntu 16.04, KVM hypervisor.

  • CPU: Intel Core i7-7700K, Quad Core, 4.2GHz
  • Motherboard: ASUS Z170-P
  • Memory: Corsair Vengeance LPX DDR4 3000MHz, 32GB
  • Storage: Samsung 850 EVO 250GB 2.5” SSD
  • Network: Onboard + Intel Pro/1000 Dual
  • Case: I&S EYE-4808BK, 4U

Hypervisor #2

Ubuntu 16.04, KVM hypervisor.

  • CPU: Intel Core2, Quad Core, 2.4GHz
  • Motherboard: ASUS P5K
  • Memory: HP PC2-6400 DDR2 SDRAM, 8GB
  • Storage: Samsung 850 EVO 250GB 2.5” SSD
  • Network: Onboard + Intel Pro/1000 Dual
  • Case: I&S EYE-4808BK, 4U


Windows 10 professional.

  • CPU: Intel Core i7-950, Quad Core, 3.06Ghz
  • Motherboard: ASUS P6T Deluxe V2
  • Memory: Corsair XMS3 DDR3 1600MHz, 12GB
  • Storage: Samsung 850 EVO 250GB 2.5” SSD
  • Case: I&S EYE-4808BK, 4U



  • Unifi controller
  • CCTV server
  • Home Assistant
  • Munin
  • MQTT broker
  • Zabbix
  • Plex Media Server
  • Gitea
  • Gollum Wiki
  • Duplicacy backup to B2
  • Graylog2
  • Reverse proxy
  • Web server


  • Ansible
  • Grafana + InfluxDB


The internet fiber comes into the office and goes to a media converter, which again is connected to the modem and them to the USG router. The homelab has two switches, a 16 port and 8 port, connected with multi-mode 1Gbit fiber. There is another 8 port switch in the office which is also connected to the 16 port via multi-mode 1Gbit fiber. I’m just using fiber here to save ports, and because it’s fun. All network connections (apart from the fiber) from the server rack goes through a 12 port patch panel on the wall behind the rack.

Both hypervisors have an additional dual network card installed; they use their onboard NIC for the OS and use a dedicated NIC for the VMs. The network traffic is split into multiple bridges based on VLAN tags. Here is what the /etc/network/interfaces looks like:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp5s0
iface enp5s0 inet dhcp

# Dedicated bridge NIC
auto br0
iface br0 inet manual
        bridge_ports enp6s0f0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

# DMZ VLAN bridge
auto br_dmz
iface br_dmz inet manual
        bridge_ports enp6s0f0.90
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

As you can see the br_dmz bridge is traffic tagged with VLAN ID 90. The two bridges does not have IP addresses, only the virtual networks that use the bridges gets IPs.

I will explain in more details how everything is set up and wired in the future, in the meantime; feel free to ask in the comment section if you have any questions.


The homelab has two power inputs going to the automatic power transfer switch, the primary goes though the UPS; the secondary does not. The automatic transfer switch allows the power sources to be switched without any interruptions or downtime. With the secondary power source bypassing the UPS; it is possible to take the UPS down for maintenance or testing without affecting the system. Ideally the primary and secondary power sources should be on different breakers, I am working to make that happen :)

The automatic transfer switch, power distributor and UPS are all capable or communicating over USB or serial. So my plan is to use a Raspberry Pi as a dedicated power controller. That was I can do things like turn off non-essential equipment if the UPS batteries are running low. Or switch to the secondary power source if the system is running on battery power while the secondary power source is live. Like if the primary source breaker fails.

No Linux libraries exists for the automatic transfer switch and power distributor, yet, but the manufacturer, BlueWalker, is supplying me with the specifications I need to make my own. I’ll publish it to Github and write about it as soon as I have something worth sharing.


I am currently doing big changes to the ventilation system in my office. I’m taking lots of photos and documenting along the way, will publish a blog post about it once it’s finished. Stay tuned!