Skip to content

Commit

Permalink
Add home lab hardware setup
Browse files Browse the repository at this point in the history
  • Loading branch information
iameskild committed Aug 28, 2024
1 parent 9167e6b commit 0c32f88
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 0 deletions.
96 changes: 96 additions & 0 deletions content/posts/2024-08-27-hl0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
title: "In the beginning, there was hardware"
date: 2024-08-27T22:15:22-07:00
tags:
- Homelab
- Hardware
---

The home lab. Sounds cool, you should get yourself one ;)

Here's how I got started quickly and cheaply.

## Requirements

Besides cost and speed, I have a few other requirements and preferences that should help make simplify the process and hopefully make it more useful long-term.

First, given that I'm writing this on my M1 Macbook - with it's `arm` architecture - it makes sense for me to have a dedicated `x86_64` machine. Second, I want a stable, widely used, Linux OS meant for servers. One that has a package manager with large selection of packages but also plenty of resources online to help me troubleshoot and learn.

The answer, Ubuntu Server. Shocker!

> Basically whenever I have to make a decision between a few options, the rule-of-thumb is to go with the simple, common solution.
Next, I need to decide what software to run on this home lab. For me, the immediate choice is Kubernetes. I want to learn more about how to manage a Kubernetes cluster without relying on one of the cloud providers to do it for me and this would be a fun opportunity to do so.

At first, this "cluster" will consist of one node which means application-specific pods will run on the same node as the control-plane and api server. Definitely not recommended for any serious workload but not a big deal as I get started.

Some might be asking why not just run multiple nodes on a VM layer. I may still do that but the idea of setting up a Kubernetes cluster on "bare-metal" sounds kind of cooool. Add a few more CPU nodes and perhaps a few GPUs and the possibility of running AI workloads is just that much closer.

I'm getting a little ahead of myself.

## Hardware

Now to the hardware.

> Where I can and if the price is right, I'll go with used/refurbished.
Here at the core components that I ended up purchasing:

[Lenovo ThinkCentre M910Q - refurbished](https://www.amazon.com/dp/B08MMQH98H?psc=1&ref=ppx_yo2ov_dt_b_product_details)
- Intel Core i7-6700T
- 32GB RAM
- 1TB NVMe SSD
- Price: $250

It came in great condition and with a keyboard and mouse. A bangin' deal if you ask me.

[Netgear Powerline Adapter Kit - used](https://www.amazon.com/dp/B0778Y6K6N?psc=1&ref=ppx_yo2ov_dt_b_product_details)
- 2 Gigabit Ethernet Ports with Passthrough
- Price $56

This was necessary for me and may not be for you. The modem and router in my apartment are in my roommate's room. So to get ethernet to the home lab, I was able to use these adapters which transmit the ethernet signal over the cooper power cables in the house. This is a cleaner solution than running a long cable through the house.

[TP-Link 8 Port Switch - new, half-off](https://www.amazon.com/dp/B00K4DS5KU?psc=1&ref=ppx_yo2ov_dt_b_product_details)
- Price: $27

Not entirely necessary at this stage but will makes it easy to add additional machines in the future.

That brings the price of hardware to **$333 + taxes/shipping**. Nice!

In the process, I will make a few changes to my home office including reorganzing the office closet. Here are a few additional purchases I made to help organize my things a little better:
- [A new steel-wire shelving unit - Home Depot](https://www.homedepot.com/p/HDX-4-Tier-Steel-Wire-Shelving-Unit-in-Chrome-36-in-W-x-54-in-H-x-14-in-D-31436PS-1/203846480)
- [15ft cat6 cable - Home Depot](https://www.homedepot.com/p/NTW-15-ft-Cat6-Snagless-Shielded-STP-Network-Patch-Cable-Yellow-345-S6-015YL/300457291)
- [Cable tie mounts - Amazon](https://www.amazon.com/dp/B07MH6DGMM?psc=1&ref=ppx_yo2ov_dt_b_product_details)

Luckily I have an old monitor lying around I can used for the initially server setup. Finally with a pair of scissors, a few zip ties and a power strip, I have all that I need to get started.

### Hardware Setup

The setup is straight forward.

Plug in one Powerline Adapter to outlet near the router and then connect it to the router with an ethernet cable.

<p align="center">
<img src="/images/homelab/powerline_adapter.jpg" alt="Powerline Adapter plugged into the outlet directly" width="250">
</p>

Plug in the other Powerline Adapter near the home lab and connect it to the switch (yellow cable). Connect the switch to the home lab (black cable).

<p align="center">
<img src="/images/homelab/hl_setup_0.jpg" alt="" width="650">
</p>

Connect the monitor, keyboard and mouse, then turn on the server.

<p align="center">
<img src="/images/homelab/hl_keyboard.jpg" alt="" width="400">
</p>


That's it for the hardware setup.

## Conclusion

I'm excited to get started with this project. I've been wanting to do this for a while and I'm glad I'm finally getting around to it. In the next post, I'll go over the the initial configuration of the server and Kubernetes setup.

*Looks over both shoulders*.... I just setup a desktop computer in my office closet and called it a home server.
Binary file added static/images/homelab/hl_keyboard.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/homelab/hl_setup_0.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/homelab/powerline_adapter.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0c32f88

Please sign in to comment.