- Add presentations/devops_days_self_hosting_presentation.md - Add active/software_pi/ service directory - Update active/software_toolbx/Containerfile - Update retired/kubernetes_userspace submodule LLM-Generated: true
174 lines
7.1 KiB
Markdown
174 lines
7.1 KiB
Markdown
# An Opinionated Guide to Home Labbing: from Hardware to Software
|
|
|
|
## Abstract
|
|
|
|
Between increasingly required subscriptions, privacy terms changing overnight,
|
|
and the difficulty of downloading your own data, it often feels like we rent our
|
|
digital lives rather than own them. We'll walk you through hardware selection,
|
|
the tools you'll need, the operating systems you'll install, and the software
|
|
you might want to support for your homelab. We'll share our experience with our
|
|
own variety of hardware, which ranges from tiny Raspberry Pis to mid-size laptop
|
|
motherboards to overkill Threadripper servers. We'll talk about the operating
|
|
systems we use and which ones have found the most stability and longevity in our
|
|
deployments while comparing them to other homelab operating systems. We'll cover
|
|
common homelab use-cases like media servers, Git servers, network storage, and
|
|
local AI tooling. We'll also talk about safety and maintenance so you can weigh
|
|
the choice of cutting the cloud cord properly. By the end of this talk you'll have a
|
|
starting point for your own homelab journey, and maybe even a grocery list.
|
|
|
|
Alex Oladele is a senior software engineer at Red Hat, working on Ansible Galaxy
|
|
as part of the Ansible Automation Platform. He is a member of Black Python Devs
|
|
and speaks at conferences about compassionate culture, Python, and practical
|
|
engineering skills. He is passionate about mentoring and creating safe,
|
|
inclusive spaces in tech. Outside of work, he builds silly side projects and
|
|
runs a homelab he is very proud of
|
|
|
|
Reese is DIY technology enthusiast with a passion for projects that make things
|
|
easy. He's been working in development since 2017 with experience in risk,
|
|
scripting automation, full stack web development, container infrastructure, amd
|
|
homelab server hardware. He has a passion for mentoring, but even more of a
|
|
passion for sharing the new tech he found last week with anyone who will listen.
|
|
Currently, he leads the agentic vulnerability management team at Hungtington
|
|
Bank.
|
|
|
|
## Structure
|
|
|
|
"I'm lazy, I don't want my family to kill me, and it works"
|
|
|
|
1. I want this in my house
|
|
2. I want to connect outside my house
|
|
3. I want my friends to connect
|
|
4. I don't want this to go down
|
|
5. I want to recover if there's an error
|
|
6. My server died, what now?
|
|
|
|
## Thoughts
|
|
|
|
Give 2 ideas per section. First for "I can't let this break my family will kill
|
|
me". Second for "I have an understanding partner who is my cat and won't care."
|
|
|
|
## Story driven presentation
|
|
|
|
I have decided to make a strong home server. Where do I even start?
|
|
|
|
Overarching theme:
|
|
|
|
- This is about privacy, control, and stability
|
|
- This is not about saving money
|
|
- This is not about keeping up with the bleeding edge of the industry
|
|
- (Both of these things might happen though, and that's great when it does)
|
|
|
|
1. Hardware: you find a box (old laptop, rpi) you're set.
|
|
|
|
- Reese
|
|
- Framework 13 motherboard for experiments, QA, Forgejo/Gitea runners, `experimental.reeseapps.com`
|
|
- Raspberry pi for home assistant
|
|
- Threadripper 3000 series with a bunch of disks for main apps
|
|
- framework desktop for local AI
|
|
- Alex
|
|
- "Gaming PC Foundation": 5950x + ddr4 64GB ram (before memory shortage)
|
|
- Framework motherboard
|
|
- Raspberry pi cluster
|
|
|
|
2. I'm a little familiar with linux but what do I install on that hardware?
|
|
|
|
- Alex: Truenas, Raspberry Pi OS
|
|
- Reese: Address the proxmox shaped elephant in the room, Fedora, Alma Linux, cloud init
|
|
|
|
3. What does your homelab maintenance toolbox look like? What toolkit do you
|
|
open to work on your homelab? What do you bring to the table to start
|
|
tinkering?
|
|
|
|
- Reese: btop, podman, uv, yarn, pi.dev, borg backup, distrobox (talk about misconceptions like bash history preservation)
|
|
- AI in the homelab, safety, security, privacy
|
|
- Discuss the progression: chat bots -> harnesses -> agentic integration
|
|
- Alex: truenas catalog, ansible, opencode
|
|
- Discuss security in your tooling like setting wait periods before yarn installing
|
|
- mention uv acquisition
|
|
- Building custom apps with AI
|
|
|
|
4. So you want to launch some containers
|
|
|
|
- We dislike docker compose
|
|
- Truenas apps
|
|
- quadlets + podman
|
|
- kubernetes (k3s) and its downsides
|
|
|
|
5. When to use VMs
|
|
|
|
- An extra layer of isolation
|
|
- Easier networking
|
|
- Simpler to prevent resource exhaustion
|
|
- Talk about "right-sizing": Every VM gets 2GB ram and 2cpu cores to start. On a 32GB system, assuming 4GB for the host, that creates 14 VM "slots".
|
|
- Alma Linux 10 takes up about 450MB at boot with nothing installed
|
|
- Double the memory when resource exhaustion happens
|
|
|
|
6. I want to install a new app while I'm at friend's house
|
|
- Truenas web portal (app page, both official and community) + tailscale
|
|
- VPN and I need access to my computer
|
|
|
|
7. I want to check my server status on my phone (updates, disks, memory pressure, error logs, services running)
|
|
- Truenas web interface
|
|
- Cockpit web interface
|
|
|
|
8. I want to add more storage
|
|
- Truenas ZFS storage pools
|
|
- BTRFS pools
|
|
|
|
9. I want to install a new alpha app without much support
|
|
- Truenas custom docker compose images
|
|
- Fedora clone and run (in a VM for style)
|
|
|
|
10. I want to backup my photos
|
|
- Google Photos: don't use git, images aren't meant for git
|
|
- **Immich, with backups (tell stories about losing my image data)**
|
|
|
|
11. I want a local copy of my code
|
|
- Github
|
|
- Gitea/Gitlab (talk about that transition)
|
|
- Forgejo
|
|
|
|
12. I want private document editing
|
|
- Google drive, Obsidian (forces use of markdown as my standard)
|
|
- VSCode + pandoc (commit markdown files as your documents)
|
|
- Nextcloud (Collabora)
|
|
|
|
13. I want a local, offline LLMs
|
|
- llama.cpp is great, but has a very high learning curve
|
|
- Ollama has pitfalls
|
|
- You don't know which model you're downloading
|
|
- Model inference is not optimized
|
|
|
|
14. I want to watch media I own
|
|
- Plex - I know that ruffles some jimmies. Give example: add letterbox support into Plex.
|
|
- Jellyfin if you're cheap
|
|
|
|
15. I want to know when something goes wrong
|
|
- Uptime Kuma!
|
|
- NTFY
|
|
- N8N
|
|
- Truenas sending emails if there's an error
|
|
- Fedora requires a custom solution
|
|
|
|
16. I want "reasonable availability"
|
|
- Truenas hits 90%+ availability. Updates take it down for reboot (5-10
|
|
minutes). Disk failure requires full shutdown, disk swap, and rebuild.
|
|
This could be half a day.
|
|
- Fedora hits 90%+ availability. Updates take it down for reboot (<1 min).
|
|
Disk failures can be ignored by rebalancing. Disk failures still require
|
|
full shutdown and resilver. This can take half a day.
|
|
|
|
17. I want to automate my house
|
|
- Home Assistant (raspberry pi or green)
|
|
|
|
18. I want backups of all my data
|
|
- No backups is an option
|
|
- Local weekly backups to usb drives via Truenas data replication
|
|
- Borg backup via CLI or Pika.
|
|
- Full disk backups, app directory backups, hybrid model
|
|
- Backblaze and S3 integration for Truenas
|
|
- 3 copies of your data, 2 different media, 1 off site.
|
|
|
|
1. I want a private VPN
|
|
- Tailscale, moved from wifiman, also moved from pivpn
|
|
- unifi wireguard server, rawdog wireguard on a pi |