aboutsummaryrefslogtreecommitdiff
path: root/content/blog/2020-05-03-homelab.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/blog/2020-05-03-homelab.md')
-rw-r--r--content/blog/2020-05-03-homelab.md166
1 files changed, 166 insertions, 0 deletions
diff --git a/content/blog/2020-05-03-homelab.md b/content/blog/2020-05-03-homelab.md
new file mode 100644
index 0000000..d02e9e8
--- /dev/null
+++ b/content/blog/2020-05-03-homelab.md
@@ -0,0 +1,166 @@
++++
+date = 2020-05-03
+title = "An Inside Look at My Home Lab"
+description = ""
+draft = false
++++
+
+# What is a Homelab?
+
+Starting as a developer, I have largely stayed away from hardware-based
+hobbies (other than building a gaming desktop). However, as the
+quarantine for COVID-19 stretches out further and further, I found
+myself bored and in search of new hobbies. After spending the last few
+months browsing the [r/homelab](https://www.reddit.com/r/homelab/)
+subreddit, I decided it was time to jump in and try things out for
+myself.
+
+Since I am a beginner and just recently graduated from college,
+everything I\'ve done so far in my homelab is fairly low-budget.
+
+# Hardware
+
+![HomeLab
+Diagram](https://img.cleberg.net/blog/20200503-homelab/homelab-min.png)
+
+### Raspberry Pi 4
+
+Luckily, I had actually purchased a [Raspberry Pi
+4](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/) before
+the quarantine started so that I could try to keep Plex Media Center
+running, even while my desktop computer was turned off. I started here,
+using the Pi to hold Plex and Pi-hole until I grew tired with the slow
+performance.
+
+Here are the specifications for the Pi 4:
+
+- Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
+- 4GB LPDDR4-3200 SDRAM
+- Gigabit Ethernet
+- H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)
+- 64 GB MicroSD Card
+
+## Dell Optiplex 5040
+
+Since I wasn\'t happy with the Pi as my main server, I turned to
+Craigslist. I know a lot of other homelabbers use Ebay, but I can\'t
+seem to ever trust it enough to purchase items on there. So I used
+Craigslist and found a Dell Optiplex 5040 desktop computer on sale for
+\$90. While this computer might be underpowered, it was one of the few
+computers under \$100 that was available during quarantine.
+
+Here are the specifications for the Dell Optiplex 5040:
+
+- Intel Core i3 6100
+- 8GB RAM DDR3
+- Intel HD Graphics
+- Gigabit Ethernet
+- 500GB Hard Drive
+
+While this hardware would be awful for a work computer or a gaming rig,
+it turned out to be wonderful for my server purposes. The only
+limitation I have found so far is the CPU. The i3-6100 only has enough
+power for a single 4k video transcode at a time. I haven\'t tested more
+than three 1080p streams at a time, but the maximum amount of streams
+I\'ve ever actually used is two.
+
+## WD easystore 10TB & 8TB
+
+Application storage and temporary files are stored on the internal hard
+drive of the server, but all media files (movies, tv, games, books, etc)
+are stored externally on my WD easystore hard drive. Creating auto-boot
+configurations in the `/etc/fstab` file on my server allows
+the hard drives to automatically mount whenever I need to restart my
+server.
+
+> Update: In March 2022, I shucked the hard drives out of their external
+> cases, put some Kapton tape on the third power pin to prevent power
+> shutdowns, and stuck them inside my server tower using internal SATA
+> cables.
+
+## Netgear Unmanaged Switch
+
+To manage all the ethernet cords used by my homelab, my desktop, and my
+living room media center, I purchased an 8-port gigabit ethernet switch
+for \$50 at my local computer store. This is probably much more than I
+should have spent on an unmanaged switch, but I am comfortable with the
+choice.
+
+## TP-Link Managed Switch
+
+Since I use the unmanaged switch to group all living room devices
+together, I use the managed switch to configure VLANs and secure my
+network.
+
+## Arris TM1602A Modem & Sagecom Fast 5280 Router
+
+My default modem and router, provided by my ISP, are fairly standard.
+The Arris modem supports DOCSIS 3.0, which is something that I
+definitely wanted as a minimum. The Sagecom router is also standard, no
+fancy bells or whistles. However, it does support DHCP and DHCPv6, which
+is something you can use to route all household traffic through a
+pi-hole or firewall.
+
+## TP-Link EAP
+
+In order to gain better control over the network, I use my own wireless
+access point instead of the one included in the Sagecom router above.
+Now I can control and organize all of my ethernet connections through
+the VLANs on the managed switch and wireless connections through the
+VLANS on the EAP.
+
+## Generic Printer
+
+The last piece to my homelab is a standard wireless printer. Nothing
+special here.
+
+# Software
+
+## Ubuntu Server 20.04
+
+While the 20.04 version of Ubuntu was just released, I always like to
+experiment with new features (and I don\'t mind breaking my system - it
+just gives me more experience learning how to fix things). So, I have
+Ubuntu Server 20.04 installed on the Dell Optiplex server and Ubuntu
+Server 19.10 installed on the Raspberry Pi. Once I find an acceptable
+use for the Pi, I will most likely switch the operating system.
+
+## Docker
+
+I am *very* new to Docker, but I have had a lot of fun playing with it
+so far. Docker is used to create containers that can hold all the
+contents of a system without interfering with other software on the same
+system. So far, I have successfully installed pi-hole, GitLab, Gogs, and
+Nextcloud in containers. However, I opted to delete all of those so that
+I can reconfigure them more professionally at a later time.
+
+## Plex Media Server
+
+Plex is a media center software that allows you to organize your movies,
+TV shows, music, photos, and videos automatically. It will even download
+metadata for you so that you can easily browse these collections.
+
+## Pi-hole
+
+Pi-hole is an alternative ad-blocker that runs at the DNS level,
+allowing you to block traffic when it hits your network, so that you can
+reject any traffic you deem to be bad. Pi-hole uses blacklists and
+whitelists to decide which traffic block and, luckily, there are a lot
+of pre-made lists out there on Reddit, GitHub, etc.
+
+## Nextcloud
+
+While I had trouble with the Docker version of Nextcloud, I was very
+successful when setting up the snap version. Using this, I was able to
+map Nextcloud to a subdomain of a domain I own in Namecheap.
+Additionally, Nextcloud has an integration with Let\'s Encrypt that
+allows me to issue certificates automatically to any new domain I
+authorize.
+
+## Webmin
+
+To monitor my servers, and the processes running on them, I use the
+Webmin dashboard. This was fairly painless to set up, and I currently
+access it straight through the server\'s IP address. In the future, I
+will be looking to configure Webmin to use a custom domain just like
+Nextcloud.