diff --git a/README.md b/README.md index 8cae4d5..8f252b9 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ For slides rendered to PDF or presentation notes for offline reading, download t - Git - [101](git101/index.md), [150](git150/index.md), [201](https://github.com/jmunixusers/git-201) (External), [301](git301/index.md), [401](git401/index.md) - [groff](groff/index.md) - Homelabbing - [Part 1 (Theory)](homelab.md), [Part 2 (Demo)](homelab-2.md) + - [2026 Update](homelab-2026/index.md) - [Homelab Storage](homelab-storage/index.md) - [How to build a VM](BuildAVM/index.md) - [Intel Pin](https://github.com/lam2mo/uug-pin) (External) diff --git a/homelab-2026/casaos.png b/homelab-2026/casaos.png new file mode 100644 index 0000000..1e58018 Binary files /dev/null and b/homelab-2026/casaos.png differ diff --git a/homelab-2026/index.md b/homelab-2026/index.md new file mode 100644 index 0000000..ad54d90 --- /dev/null +++ b/homelab-2026/index.md @@ -0,0 +1,215 @@ +--- +marp: true +theme: default +class: invert +footer: Connor Sample - https://tabulate.tech +--- + +# Homelabbing: 2026 Edition + +--- + + + +## What is homelabbing? + +--- + +## Why would you want to self-host? + +- Learn & Experiment + - Security? + - Networking? +- Privacy & Control +- Cost Savings (debatable) + +--- + + + +## Great! But I don't have any hardware... + +- This is slightly more difficult in the big '26 +- Old desktops/laptops + - Ebay + - Goodwill + - Facebook Marketplace - Massanutten Tech +- Cheap SBC + - Raspberry Pi + - OrangePi Zero 4 + - RockPro64 + - ODROID-H4 +- VPS +- ESP-32 (ESPHome) + +--- + +## Challenges of Homelabbing + +- Security & Maintenance + - Storage Redundancy +- Network Configuration +- Learning Curve - lots of new concepts + +--- + +## RAID + +![bg contain RAID Diagram](./raid.png) + +--- + +## ZFS + +- Similar modes to RAID - different names +- Auto-fixing corruption with checksums +- CoW - safer from power loss +- Instant snapshots +- Typically more performant (compression + caching) + +--- + +## Services + +- Immich +- Wakapi +- Home Assistant +- Streaming + - Jellyfin + - Plex + - \*arr suite +- Dawarich +- Game Servers + +--- + +## Homelab Interfaces + +- CasaOS +- Proxmox +- TrueNAS +- Portainer +- NixOS... + +--- + +![bg CasaOS](./casaos.png) + +--- + +![bg contain Proxmox](./proxmox.png) + +--- + +![bg contain TrueNAS](./truenas.png) + +--- + +![bg Portainer](./portainer.png) + +--- + +## NixOS + + + +--- + +## Why NixOS for Homelabbing? + +- Declarative Infrastructure: Entire OS & services configured in code, you can forget all your commands +- GitOps Ready: Keep your whole homelab state versioned in Git +- Fearless Experimentation: Try new software without polluting your host OS with nix-shell + +--- + +## What Makes NixOS Better & Easier? + +- Instant Rollbacks: Reboot into a working state in < 10 seconds if an update breaks +- Reproducible: Spin up a second server using the exact same config +- No Config Drift: What's in the config is what's running—nothing more, nothing less + +--- + + + +## Example nix module + +```nix +{ fleetSettings, ... }: { + virtualisation.oci-containers = { + backend = "podman"; + containers = { + + # Original Hypermind + hypermind = { + image = "ghcr.io/lklynet/hypermind:latest"; + # use host networking for Hyperswarm DHT to find peers + extraOptions = [ "--network=host" ]; + environment = { + PORT = toString fleetSettings.sequoia.ports.hypermind; + ENABLE_CHAT = "true"; + ENABLE_MAP = "true"; + }; + }; + + # Hypermind Swarm + hypermind-swarm = { + image = "ghcr.io/lklynet/hypermind-swarm:latest"; + extraOptions = [ "--network=host" ]; + environment = { + PORT = toString fleetSettings.sequoia.ports.hyperswarm; + }; + }; + }; + }; +} +``` + +--- + + + +## Exposing Your Services to the Internet + + + +- Tailscale +- Reverse Proxy + +--- + + + +## Reverse Proxy Options + +- Game Servers (Playit or Oracle) +- Web Services (Cloudflare Tunnel¹ or Oracle) + - Cloudflare: Need Domain + - Oracle: Can use domain, may need credit card to get access + - More complex to set up (wireguard setup for web, manual NAT with iptables for game servers) + - Need a tutorial to navigate the Oracle Cloud UI + - Wireguard + +--- + + + +## How to get started + +- Define your goals (what and why do you want to host?) + - +- Start with the hardware you have (or buy some very cheap, used hardware) +- Learn as you go (break things and learn to fix them) + +--- + +## Questions? diff --git a/homelab-2026/portainer.png b/homelab-2026/portainer.png new file mode 100644 index 0000000..b23e56a Binary files /dev/null and b/homelab-2026/portainer.png differ diff --git a/homelab-2026/proxmox.png b/homelab-2026/proxmox.png new file mode 100644 index 0000000..a06dbb9 Binary files /dev/null and b/homelab-2026/proxmox.png differ diff --git a/homelab-2026/raid.png b/homelab-2026/raid.png new file mode 100644 index 0000000..353b2f3 Binary files /dev/null and b/homelab-2026/raid.png differ diff --git a/homelab-2026/reverse-proxy.png b/homelab-2026/reverse-proxy.png new file mode 100644 index 0000000..1fe90e0 Binary files /dev/null and b/homelab-2026/reverse-proxy.png differ diff --git a/homelab-2026/truenas.png b/homelab-2026/truenas.png new file mode 100644 index 0000000..8766df7 Binary files /dev/null and b/homelab-2026/truenas.png differ