*******    ***    ******   *******  ******   **  **    ***    *******
  ***     ** **   **   **  **       **   **  ** **    ** **     ***  
  ***    **   **  ******   *******  **   **  ****    **   **    ***  
  ***    *******  **  **   **       **   **  ** **   *******    ***  
***      **   **  **   **  *******  *****    **  **  **   **    *** 

My Home Server

  • Dell PowerEdge R710
    • 2x Intel Xeon X5550 Processors
    • 72GB DDR3 ECC RAM

On this, runs VMWare's ESXi hypervisor, an operating system specifically designed to run virtual machines. Each virtual machine containing its operating system, storage, networking, and running its services. Each virtual machine runs much like if it were its own separate server, but everything combined on the same shared RAM, CPU, and Power Supply means I spend a lot less on hardware, and a lot less on power. 

My Virtual Machines, and their Services

pfSense Router

pfSense is a very feature-rich firewall and routing solution. I use pfSense, installed to a VM, and configured specially with VMware's vSwitches to provide the same role as a consumer router, but with a much-expanded feature set. This allows me to run: 

  • Internal DNS server
    Resolve names like "files.home" to IP addresses, much like how "jaredkat.net" goes to my web server, but everything runs in my home
  • OpenVPN
    A VPN service that allows me not only to encrypt my traffic while I'm on the go and using untrusted networks but also lets me log into my local network as if I were there, giving me full access to the rest of the services on my network
  • Advanced NAT and Firewall rules
    These give me a lot more control over how traffic gets routed into my network from the public internet, letting me host game servers but only to my friends, or blocking regions typically known for generating malicious traffic. 
  • Bandwidth Savings with a Caching Proxy
    This is on my to-do list, and not yet actively implemented, but with internet companies, like Comcast, introducing bandwidth limits - conserving data usage is a great way to make the best of a messy situation

File Server

My file server takes a multi-headed approach. I use Samba shares to provide files over the network as if they were a physical drive I can plug into, as well as NextCloud, a web-based way to access and manage my files, much like Dropbox or Google Drive, allowing me to sync my files to different devices, or share them with friends across the internet. 

Both of these features offer the ability to access my files from any device on the network, or even across the internet using NextCloud or my VPN. 

Similarly, for media streaming of downloaded media or backed up DVD's and CD's, Kodi is a great way to go about it. Akin to running a private version of Netflix, you curate your library of media on the server, and Kodi takes care of grabbing metadata, tracking watch history, allowing you to stop a show on one device and pick up on another. With the power of a cable tuner card, you could easily record Live TV for playback later, on any device. Some neat features. 

The file server also serves as a place to keep backups of files that live on my local machine, and some backups for things running on other servers out in the world. 

Development Machine

While I've got servers out in the datacenter, those are meant to be running good, secure code, stuff that I'm not afraid of someone poking at with a stick. Projects that are underway and in progress don't quite fit those criteria. Running those projects from a server hidden behind my home's firewall offers me the sort of security that nothing else quite can. Running development code out on the internet, well, it's on the internet, and accessible. While there are some security measures to be taken online, nothing quite beats not letting any traffic through at the firewall and using the physical connection to the server as security. 

Not to mention, spinning up a VM, or another Apache VirtualHost costs nothing when I own the hardware. Cloud providers or web hosting services would cost me real money for each project I want to spin up. 

Gitlab

Git is an excellent protocol, allowing for version control for projects, it makes reverting my mistakes a breeze, and for the times I do collaborate, it smooths over a lot of the frustrations of who broke what. I wish I could say I use GitHub for everything in the spirit of Open Source and sharing data, but it does turn out I'm a bit self-conscious of a good bit of my code, but the projects that can shine, can always be imported over to Github in a breeze. 

Game Servers

I like to have some fun with friends, and I like to not pay for little goofy ventures. Mostly I run Minecraft servers and a few Steam game servers (From CounterStrike to Unturned). Merely having the freedom to take a couple minutes to spin something up for me and friends to have fun with, without having to be nickel and dimed for everything, is a very freeing experience. 

Kali

Working with computers for the "Good Side" can take some inspiration from understanding the threats of the "Dark Side". I'm interested in Cybersecurity and like to keep myself in the know about how different exploits work. This understanding, in turn, allows me to better defend against such actors in situations that aren't as playful as messing with a couple of VM's

AuxPC

Interesting "Hacked-Together" solution for needing to give computer access to a guest. Installed a video card and USB controller into the machine, enabling PCI device passthrough to a virtual machine, and now a virtual machine inside of VMWare can be hooked into a physical monitor, keyboard, and mouse. Not often used, but makes good efficient use of hardware. 

About JaredKat:
JaredKat's Goals and Achevements
Some information about the technologies I use and employ in my daily life. Some insights and tips for anyone else who may be curious