Hello everyone! I have been fascinated by the idea of having a homelab ever since the first time I came across r/Homelab and r/Selfhosted on Reddit. My original “homelab” was just an older decommissioned dell laptop running Proxmox that I stuck in the corner of my dorm room. It was mostly just used for file shares and downloading torrents completely legally (: while I was in college.
As I started to learn more about networks and linux while I was in college this laptop/server became a very strong learning tool. If I liked something I learned in class I would apply it on this “server”. When I learned about /etc/fstab I actually added a second disk to Proxmox without any help from forums. I was so proud of myself. I quickly started to understand networking, linux administration, and security.
I also started to discover the usefulness of a media server. I always had a collection of movies and music. It was very hard to organize and keep track of though. Of course the first media server software I tried was Plex. It was great but I didn’t like how commercialized it was. I discovered Emby/Jellyfin one day while I was on Reddit and figured I would give it a try. Emby was so easy to setup and use. Its also open source. It quickly became my go to media server. Also for the first time I setup a vpn so I could access Emby while I was away from my dorm.
I now had wide open ports facing the internet because of the vpn. I started to discover just how many things were trying to connect to my vpn / hack into my network. This made me think about security. I started to look into ways to mitigate attacks like segmenting my network with vlans, subnetting, and software like fail to ban. Also I discovered just how strong passwords need to be to stop brute force attacks.
The dorm room I was living at also had a regular Comcast modem. I knew the public IP address would change on it. Because of this I knew I needed a dynamic dns name for the vpn. I discovered how dns works as well as many important firewall rules that I would use in the future. I also started messing around with Apache web server. I just wanted to see how hard it was to get a page up on the internet. I discovered it wasn’t very hard.
After I graduated college I moved in with a few friends. My one roommate was also an IT person so I passed the home lab bug onto him. I was offered 2 dell r710 servers and a HP proliant switch from my job. I took both r710s and gave one to my roommate. This was the first time that I had actual enterprise grade hardware to play with.
After we got everything setup and running we put the servers in the basement because they were loud. We also needed to figure out how to separate the networks. I figured that untangle or pf sense would do the job perfectly here. I had a small mini pc that would be perfect for the router/firewall to run on. So we picked two different network schemes and setup untangle. Because of the amount of time put into these servers I also wanted a good backup solution and a way to keep them running in the event of a power outage. The next addition was a ups that I found in the recycle pile at school earlier. I then cut the battery cables and added my own deep cycle marine batteries and a fan to keep the inverter cool. This setup powered these 2 servers for close to 4 hours one night. I also started to pay for google drive storage so I could save backups of these vms somewhere in the cloud.
I knew that I was still missing something and I knew exactly what it was. I wanted to host my own website for career and learning purposes. So I finally bought the domain caseywalt.com. I designed a simple static html portfolio type website with a website design tool. I then setup an Nginx Ubuntu vm and made the website live.
I started looking for a new job around this time as well. I applied for a job at a web hosting company. During the interview I mentioned the website and homelab. The coo who was siting in on the interview had a laptop and visited my website. I did not know that at the time. When I got home I checked my untangle firewall logs. There was an IP address in there from the block of IP addresses that the web hosting company uses. I knew right then and there I got the job! The homelab paid for itself!
With the homelab actually paying off my roommate and I decided to move the servers and organize them a bit. We also lived 5 minutes away from an IKEA. The lack rack always looked really cool and it seemed like a cheap easy way to clean the servers up. So we bought 2 IKEA lack tables and made a lack rack.
This setup lasted about a year before we all decided to move out and get our own places. The house I bought had a space for my server but the server was a little too loud for the new house. I decided to sell the dell r710 and upgrade a smaller dell optiplex 790 tower that I had. I built a network on scratch paper one night while I was at work for the new house. Before I moved into my new house I already had a majority of the new network designed. I used everything I learned so far to design this new network with security, backups, usability, and stability in mind.
The new house has Verizon Fios fiber. Because of this I opted for the cheapest plan and to use my own router so I do not have to pay rental fees. This plan was still better than anything Comcast has and the speeds are actually symmetrical. This also meant that untangle was now in charge of my entire network. The first thing I did was secure untangle because it was now assigned a public IP address for WAN. I also knew that I was in charge of creating all firewall rules with no fallback.
I discovered that nginx works wonderfully as a reverse proxy. So I started looking into how I could use it for my new network. I discovered that I could use it to direct traffic and to secure my websites with ssl certificates without a vpn. I host caseywalt.com and homelab.caseywalt.com using this. The nginx certbot addon also makes getting certs really easy.
I also wanted to focus on a media server for my house. I was not going to pay for Netflix, cable, or anything else as I think that its a waste of money. I did give in and decide to pay 4.99 monthly for the Emby live TV addon though. I trusted Emby already and had no problem supporting a project like Emby. I also bought a hauppauge usb tv tuner. I decided on using Ubuntu and tvheaded as the headend server for Emby live tv. This setup works wonderfully and reliably so far. I also have Emby setup to work through my reverse proxy so I can view and play my media from anywhere including in my car via android auto. I live very close to Pittsburgh and can receive 62 free OTA TV channels using an antenna. Emby also allows me to DVR and record these channels just like you could on anything else. The quality of the channels is also comparable if not better than cable.
I am hoping this new homelab allows me to continue to learn and improve on my skills. I also am relying on it for the basics such as TV and to control and secure my smart home. I hope I don’t have any serious issues pop up but if I do I am sure it will be another good learning tool.