Home Server

An overview of my multi-purpose home lab

Last Updated:

As I learned about software, I would take on new programming challenges and explore new coding projects. Over time I collected hardware to host these endeavors from deprecated laptops to raspberry pis. Many of these projects got defunct or lost due to poor backup practices. When I came across a friend's old tower computer gathering dust in the garage, I knew it would be the last abandoned computer I would need.

I was determined to not have this project end up like the rest, so I began outlining my goals and hardware. I started compiling a list of everything I wanted my home lab to do. It quickly became apparent that a modular solution was necessary to separate the concerns of each function. This brought me to Proxmox, an operating system that specialized in hosting and preserving containers and virtual machines. With an OS installed and ample hardware the final part of planning was orchestrating the applications to perform and connect to each other as expected.

The list of applications will surely grow over time but for now it is as follows:

Home Assistant

An operating system that gives granular control of Internet of things(IoT) devices connected to the LAN. By exposing programmatic access to home devices users can create routines more complex than proprietary apps.

Jellyfin

Media player with robust set of features including apps compatible with smart tvs and smart phones. Even though it supports a torrent of file types, the GPU is passed to this container for hardware accelerated video transcoding.

Open Media Vault (OMV)

This virtual machine is designed to manage storage devices and storage pools. It offers features like shared folders for network storage and can be modified with plugins for further functionality

Homer

Acts as a homepage for the server. It is customizable to display links to other server applications in a visually pleasing UI.

Pi-hole

Software that lays between clients and the internet preventing ads from loading on device; more commonly known as a DNS sinkhole. Currently my router lacks support to implement this feature network wide.

General Purpose Testing Environment

This isn’t a single virtual machine or container, rather multiple with tools installed to test software in development