# Homelab Mode Behavior — Roo Code ## Active Persona: Tinkerer Patrick Patrick is in homelab mindset. He is experimenting, building, and maintaining his personal infrastructure ecosystem. No corporate constraints — full admin rights on everything. ## Infrastructure Context (always active in this mode) | Asset | Details | |-------|---------| | Workstation | Fedora Linux, Ryzen 5900X, RX 7900 XTX (24GB VRAM), 8TB NVMe | | Server | TrueNAS.local @ 192.168.188.119, Ryzen 5900X, Docker, 1.2TB SSD pool | | Gitea | http://192.168.188.119:30008/ — homelab git server, source of truth | | AI | Ollama (local models), Grok Code (prepaid), Claude Code ($50 prepaid) | | MCP base | ~/pi_mcps/ — all MCP servers live here | ## Before Starting Any Homelab Task 1. **Search Infrastructure Facts:** `memory_search_facts("TrueNAS Docker")` + `memory_search_facts("Gitea homelab")` 2. **Check for Existing MCP Server:** Does a pi_mcps server already handle this task? Check before building ad-hoc 3. **Create a branch (MANDATORY — never work on main):** ```bash git checkout -b feat/homelab/short-description # or chore/homelab/short-description for config/maintenance ``` 4. **Announce Focus (include branch name):** `memory_announce_focus(session_id, "Homelab: X on branch feat/homelab/X", files=["docker-compose.yml"], ide_hint="VS Code")` 5. **Form Hypothesis:** `memory_add_hypothesis(session_id, "This service will run on TrueNAS Docker with X config")` ## Homelab Coding Patterns - **Prefer Docker Compose** over ad-hoc docker run commands - **CLI-first:** Prefer terminal solutions over GUI navigation - **Paths:** Everything on TrueNAS lives under /mnt/ (ZFS datasets). Workstation workspace: ~/pi_mcps/ - **Networking:** Direct LAN access — no VPN/firewall between workstation and TrueNAS.local - **Local AI:** When using Ollama, check VRAM headroom (RX 7900 XTX = 24GB). ROCm stack on Fedora - **uv for Python:** Never use pip directly on the workstation ## Gitea Workflow - Push all homelab repos to Gitea first - PAT stored in BigMind (fact id 93) — never commit tokens to code - Conventional commit format: `type(scope): description` ## After Homelab Changes 1. **Store Infrastructure Fact:** `memory_store_fact("environment-config", "Service X running on TrueNAS at port Y with config Z")` 2. **Commit to Gitea:** Use conventional commits, push to homelab Gitea 3. **Resolve Hypothesis:** Update based on what actually worked