-
Notifications
You must be signed in to change notification settings - Fork 1
Homelab
As part of my past Flavortown submission, I have integrated my homelab flake into this monorepo of sorts. Discussion of how to set up your own homelab following this flake is available in the Installation and the Implicit Setup pages. This page will go into detail more about what this host does.
A homelab is a way for you to self-host services and things that you'd otherwise need other hosted services for. A homelab allows you to get away from the clutches of corporate greed (wherein this host specifically targets migration from Spotify, Microsoft (Github), and Google) by allowing you to have real control over your own data.
This is a very underpowered device. I've chosen it since I have a few laying around, and I thought it'd be fun to reuse a Daydream prize (which included this kit) towards another Hack Club program (and yes, I do plan on using my Orpheus Picos/Picoducky from Flavortown (which I got from submitting this Homelab project) towards Stardance)
The outer case (which requires the acrylic plates) is available here
Seeing as the device has just half a gig of RAM, it doesn't make sense to run intensive programs or services. This device can't even build itself - you have to use remote deployments to update it. I have intentionally chosen lightweight services and programs for this server to run, and I have offloaded heavier tasks such as development and running Minecraft servers to my more powerful Pi 4B (bundled in this flake under the alecdev host).
The alecdev host in a custom permapi case, running more resource-intensive services
The Pi Zero 2W has an SD card slot. It's convenient for writing an SD image to, but not so great for long-term storage given its limited read/write lifespan. As the Pi Zero 2W has an additional USB port, I've chosen to go for USB storage on this device. The SD card should ONLY be used for storing secrets and maybe a few logs here and there. Everything else must be stored on a storage medium which should be less prone to failure. (seriously - SD cards are really not durable)
I had an old 1.44in Waveshare HAT I originally bought for my Pi 4B (for my previous homelab, running Debian) that I've now repurposed for this Pi. The HAT is the same across all Pi devices so it was just a matter of getting SPI output and GPIO working (which was probably one of the most painful parts - especially given that nixpkgs just dropped prepackaged Pi Zero-flavored kernels and I'm hesitant to pull in nix-hardware for such a small thing - eventually got it working with a simple dtoverlay).
If you are interested in this part of the server the most, you can actually read its C source code here: https://github.com/amazinaxel/homelab
todo
A note about getting AI assistance: Especially with deeper low level config, less intelligent AI models can overcomplicate and bloat the codebase with poor/hacky configuration. If you are going to use AI to modify this flake for you, I highly encourage you to understand the changes its making. AI is a great tool for learning Nix for the first time, but I suggest that you actively learn and understand from what its doing, consult the Nix search and don't be dependent on it.
If it helps to talk to a real person, I am always available to help you with any Nix/NixOS-related questions! (@amazinaxel on Discord)