From dc108a791ea1f9e39feba5b8f1b8894698e28afd Mon Sep 17 00:00:00 2001 From: ducoterra Date: Sat, 19 Sep 2026 12:22:03 -0400 Subject: [PATCH] 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 --- active/software_pi/pi.md | 52 ++++++ active/software_toolbx/Containerfile | 8 +- .../devops_days_self_hosting_presentation.md | 174 ++++++++++++++++++ 3 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 active/software_pi/pi.md create mode 100644 presentations/devops_days_self_hosting_presentation.md diff --git a/active/software_pi/pi.md b/active/software_pi/pi.md new file mode 100644 index 0000000..561617a --- /dev/null +++ b/active/software_pi/pi.md @@ -0,0 +1,52 @@ +# Pi AI Harness + +## Prereqs + +I would recommend using `pass` to store your api key. This is installed with `dnf install pass` on Fedora systems. + +After installing pass, update your `~/.gnupg/gpg-agent.conf` to set the timeout to max so automated processes can use the values in your password store: + +```conf +default-cache-ttl 2147483647 +max-cache-ttl 2147483647 +``` + +Then add a `pass.sh` to you `~/.bashrc.d` that looks like + +```bash +pass unlock +``` + +That way every time you log in your pass keyring is unlocked for your session so automations can use it. + +## Setup + +This is my ~/.pi/agent/models.json + +```json +{ + "providers": { + "reeseapps-aipi": { + "baseUrl": "https://aipi.reeseapps.com/v1", + "api": "openai-completions", + "apiKey": "!pass aipi/dev-token", + "models": [ + { + "id": "juggernaut", + "input": ["text", "image"], + "reasoning": true, + "contextWindow": 262144, + "maxTokens": 128000 + }, + { + "id": "turbo", + "input": ["text", "image"], + "reasoning": true, + "contextWindow": 262144, + "maxTokens": 128000 + } + ] + } + } +} +``` diff --git a/active/software_toolbx/Containerfile b/active/software_toolbx/Containerfile index 5e545a6..c4f05e1 100644 --- a/active/software_toolbx/Containerfile +++ b/active/software_toolbx/Containerfile @@ -30,4 +30,10 @@ p7zip \ make \ gcc \ codium \ -pass +pass \ +stress-ng \ +fuse \ +bind-utils \ +nmap \ +poppler \ +nodejs24 \ No newline at end of file diff --git a/presentations/devops_days_self_hosting_presentation.md b/presentations/devops_days_self_hosting_presentation.md new file mode 100644 index 0000000..b30e7ee --- /dev/null +++ b/presentations/devops_days_self_hosting_presentation.md @@ -0,0 +1,174 @@ +# 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 \ No newline at end of file