Homelab

Personal Project - 2020 to Present

Homelabbing is all about learning new IT skills in a consequence free environment. If a server goes down, there are no costs to a company. If a drive fails, there is no important data lost. A homelab is a sandbox environment that allows professionals to experiement at their own pace and in their own ways.

Since the summer of 2020, I became facinated with the concept of homelabbing. I realized the potential for me to gain hands-on experience with the skills that I wasn't being taught in school. As a result of this ongoing project, I have gained highly-valuable and practical knowledge that I hope to bring to the workforce.

What I'm learning

My homelab is running on a hybrid of used enterprise hardware as well as residential equipment. As a result, I have reached a good balance of experience for most situations. All of my VMs are running the latest LTS version of Ubuntu Server. Some things that I have done with my homelab include the following.

  • Plex Server - Plex is a front-end for streaming media. I have ripped my family's homemade movies and stored them on a server so they can be played anywhere at any time
  • AdGuard Home - AdGuard Home is a simple, DNS level, ad and tracker blocker that can be configured to work at the device or network level. Since its deployment on my home network, it has blocked well over 50,000 trackers and ads.
  • Nginx Proxy Manager - Nginx is one of the most popular web servers in the world. Nginx Proxy Manager uses Nginx to create an easy-to-use reverse proxy environment. The application has allowed me to easily connect my internet facing applications to my domain and protect them with SSL. For security reasons, only a select few of my services are available on the internet and are protected with a login and password.
  • Docker - When people think of containerization, they think of Docker. Nearly all of the services running on my homelab are running in their own Docker container. Doing so boosts the services' reliability and makes them easier to manage.
  • Proxmox VE - Proxmox VE is an open source, operating system hypervisor that I use on my servers. Proxmox allows me to have fine control over my virtual machines without being overly complicated or resource heavy.
  • Grafana and Prometheus - Grafana is a tool used to create dashboards for any of your data. Prometheus is a tool used to collect metrics and monitor systems. I use them together to monitor all of the systems running on my network in easy to read dashboards.
  • Wiki.js - In order to get practice with documention and keep all of my important information organized, I have been building out a wiki that contains all of the details I need to re-deploy a service.
  • InfluxDB - InfluxDB is a time-series database that I use as a means of collecting metrics about my services. InfluxDB integrates with my Grafana instance for ease of viewing.
  • Wireguard - Wireguard is a VPN protocol that is a faster alternative to OpenVPN (which I have used in the past). Wireguard allows me to access my resources that are not WAN facing while I am away.

My plans for the future include:

  • Implementing an Active Directory server
  • Setting up an enpoint management utility
  • Purchasing and configuring a Pfsense compatible router
  • Automating backups
  • Proxying internet facing services through Cloudflare
  • And lots more