Files
homelab/presentations/devops_days_self_hosting_presentation.md
ducoterra dc108a791e Add devops days presentation, software_pi service, and update software_toolbx
- 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
2026-09-19 12:22:09 -04:00

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