| @ -0,0 +1,102 @@ | |||||
| Welcome to my descent into homelabbing. | |||||
| With the rising cost of cloud hosting, and my DigitalOcean droplets crashing more frequently due to increased load, I decided to start self hosting more of my public facing personal projects. | |||||
| Most posts that I see on Reddit or Youtube regarding homelabbing tend to show off server racks filled with beefy and expensive enterprise grade equipment. | |||||
| This post aims to share my low-cost approach to homelabbing which uses inexpensive [Raspberry PIs](https://www.raspberrypi.com/). | |||||
| I want to show that you can do really cool stuff while 'saving' money in the long run. | |||||
| Before I started this project, I had two Raspberry PIs haphazardly perched on-top of my stereo. | |||||
| One of the PIs ran [Pi-hole](https://pi-hole.net/) and [Caddy](https://caddyserver.com/), the other PI ran several python websites written using [FastAPI](https://github.com/fastapi/fastapi). | |||||
| To run more stuff locally, I wanted to get another Raspberry Pi to run a firewall on [OpenWRT](https://openwrt.org/) and another Raspberry Pi to run some of my websites in Docker containers. | |||||
| My current arrangement of PIs wasn't very "elegant", so I decided to mount everything on a pegboard. | |||||
|  | |||||
| The most common question I get is: wait a second, is that a computer PSU? | |||||
| Yes, yes it is. | |||||
| I have a literal box full of old computer power supplies and they are very good at providing DC power. | |||||
| I've had bad luck with USB power bricks being flaky, expensive, and under delivering on amps. | |||||
| So, instead of buying a bunch of individual USB power adapters, I just use a single computer PSU that I don't have to worry about overheating or not supplying enough power. | |||||
| I've seen people use Power Over Ethernet (POE) to power Raspberry PI clusters, but that doesn't make sense to me unless you are running the PI in a remote location where you don't want to run a separate cable for power. | |||||
| The Raspberry PI POE Hat costs $24. | |||||
| A POE switch costs $40-80. | |||||
| To power 4 PIs using this method would cost $140 ish. | |||||
| Or, if you used individual USB power bricks, it would cost around $40. | |||||
| Counter point: we just use an old PSU that most people have just laying around collecting dust, all you would need are some USB-C cables to slice onto it. | |||||
| The wiring of a computer PSU is very simple: | |||||
| - Green: when connected to ground (Black) turns the PSU on | |||||
| - Red: provides 5v DC | |||||
| - Yellow: provides 12v DC | |||||
| To start this project, I grabbed an old PSU and wired a switch to turn on the PSU and a LED indicator to show when the PSU was on. | |||||
|  | |||||
| I then wired some of the 5v and 12v cables to a bus bar. | |||||
| When you open up a PSU, you will see that all the cables are soldered to the same place on the board-- each line isn't isolated. | |||||
| The reason that PSUs contain so many output cables is largely to ensure that any single cable doesn't carry too much load and start to melt the wires. | |||||
| The 18-gauge wires of a PSU can handle roughly 14 amps-- meaning that each wire can handle multiple Raspberry PIs safely. | |||||
| The exact number would vary based on use-case and your Raspberry PI version. | |||||
| Theoretically, a PI 5 with peripherals can pull 5 amps, but in practice I've only recorded my PI 5 pulling 1 amp idle and 2 amps under load. | |||||
| To be safe and conservative, I would only run two PIs on a single 18 gauge wire from a PSU. | |||||
|  | |||||
| To my folly, the PSU that I initially chose was sub-par and provided too much voltage. | |||||
| It's important to note that you can't accurately measure the PSU's voltage when its not under load. | |||||
| But even after connecting several things to the 12V and 5v lines, the voltage on the 5v line was 5.72v and the 12v line had 12.6v. | |||||
| The max recommended voltage of a Raspberry PI is 5.25V, exceeding that you can risk damaging the board. | |||||
| So, I scrapped the PSU that was manufactured in 2008 and went with a 'newer' PSU manufactured in 2013; this PSU produced a perfect 5.01 volts. | |||||
| I could have alternatively used voltage diodes or a buck converter to regulate the voltage at 5V. | |||||
| After I figured out the power situation, I went through several iterations of re-arranging my components on a pegboard. | |||||
| To avoid taking my network down for days, I used paper cutouts to test different arrangements. | |||||
| The biggest design consideration was reducing the length that cables needed to be ran, and the turn radius of certain cables -- kinking an ethernet cables can damage/degrade its performance. | |||||
|  | |||||
| I settled on a design where I had my four Raspberry PIs sandwiched between the PSU and my Netgear unmanaged switch. | |||||
| This kept most the Ethernet and power runs short. | |||||
| To mount the Raspberry PIs to the pegboard, I had my friends 3D print a [PI pegboard mount](https://www.printables.com/model/1167388-raspberry-pi-345-pegboard-mount/files). | |||||
| If you don't have access to a 3D printer, many local libraries are starting to offer 3D printing services where you can request something to be printed and they charge you a very low fee based on filament usage. | |||||
|  | |||||
|  | |||||
| Next, I mounted everything to the pegboard and started crimping cables to length. | |||||
| Crimping ethernet is annoying at first but quickly becomes enjoyable. | |||||
|  | |||||
| In the end, everything turned out very tidy. | |||||
| I used zip ties to mount everything except for the raspberry PIs to the pegboard. | |||||
| I used a few twist ties for cable management. | |||||
| If I didn't run USB/HDMI to three of the PIs, the cables running out of the board would have been very minimal. | |||||
| I got a four computer KVM since they have gotten shockingly cheap, and debugging issues is sometimes a pain to do remotely. | |||||
|  | |||||
| Zooming out, we can see everything involved in my home network, excluding the fiber modem which is in a different room and my two UniFi wireless access points. | |||||
|  | |||||
| 1. Open WRT router running on a Raspberry Pi with an ethernet hat | |||||
| 2. Netgear ethernet switch | |||||
| 3. Raspberry Pi running Caddy, Pi-Hole | |||||
| 4. Raspberry Pi running FastAPI services | |||||
| 5. Raspberry Pi running websites on docker | |||||
| 6. VPN Router | |||||
| 7. PSU with bus bar to power devices | |||||
| 8. Netgear router with wifi disabled | |||||
| 9. PEO injectors for UniFi APs | |||||
| 10. UPS to provide backup power to everything except my wifi network | |||||
| 11. KVM Switch | |||||
| 12. TrueNAS Scale running on my old Ryzen desktop | |||||
| **AI disclosure**: This post was **NOT** written nor edited with AI. | |||||
| Any mistakes are mine alone. | |||||