Files
pi-config/skills/system-architect/SKILL.md

7.9 KiB

name, description, compatibility, metadata
name description compatibility metadata
system-architect Sam's NixOS multi-machine infrastructure. Use for any task involving system config, cross-machine deployment, Docker, audio (Snapcast), MQTT (Mosquitto), NixOS flakes, Ubuntu, Sys Config, Nvim, Home Assistant. NixOS 25.11+, Home Manager, flakes
machines network
name ip type os role tech hardware
sam-4screen-desktop 192.168.20.27 Desktop NixOS, Niri Main dev machine. Sync to sam-ubuntu1. Mainly terminal dev work with Nvim, Opencode, Pi dev code.
cpu ram gpu disks
model cores threads
Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz 8 8
total_gb
62.7
i915
nvidia
device size mountpoint
/dev/nvme0n1p2 869G /
device size mountpoint
efivarfs 256K /sys/firmware/efi/efivars
device size mountpoint
/dev/nvme0n1p1 1022M /boot
name type ip os role tech hardware
nixos-desktop Desktop 192.168.20.13 NixOS, Niri NixOS with Niri. Second dev. Web facing. Network scripts. Docker (Mosquitto, N8N, Pi Hole back up with nebulasync from sam-ubuntu1 pihole, pocketbase, speech_piper, voice_bridge), websites at /var/www/, snapcast, gstreamer, librespot, mopidy
cpu ram gpu disks
model cores threads
AMD Ryzen 5 5600 6-Core Processor 12 12
total_gb
15.5
device size mountpoint
/dev/sdb2 907G /
device size mountpoint
efivarfs 128K /sys/firmware/efi/efivars
device size mountpoint
/dev/sdb1 1022M /boot
device size mountpoint
/dev/sdd1 2.7T /mnt/ubuntu_storage_3TB
device size mountpoint
/dev/sda2 1.9T /mnt/data
device size mountpoint
/dev/sdc2 932G /mnt/storage
name type ip os role tech hardware
sam-ubuntu1 virtual machine 192.168.20.35 Ubuntu Ubuntu in Virtual Machine on Proxmox. Docker Machine for home network. Mainly Docker
cpu ram gpu disks
model cores threads
Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz 2 2
total_gb
14.2
device size mountpoint
/dev/sda2 442G /
device size mountpoint
//192.168.20.23/usb_3tb 2.7T /mnt/nfs_usb_3tb
name type ip os role tech
home-assistant virtual machine 192.168.20.30 Home Assistant OS Runs Home Assistant in a virtual machine on Proxmox Hypervisor Home Assistant OS
name type ip os role tech
file-server virtual machine 192.168.20.23 File server on Proxmox Hypervisor File Server
name type ip os role tech
proxmox-backup virtual machine 192.168.20.48 Proxmox Backup Server Runs standard proxmox backup server Proxmox
name type ip os role tech
proxmox hypervisor 192.168.20.28 Proxmox VE Hypervisor hosting all VMs (sam-ubuntu1 .35, file-server .23, home-assistant .30, proxmox-backup .48) Web UI https://192.168.20.28:8006, SSH root@192.168.20.28
name type ip os role tech
skinnyspeakers raspberry pi 192.168.20.24 Raspbian 12 (bookworm) Speaker/audio client, likely Snapcast speaker. Identified 2026-08-29 (was previously unknown .24) SSH sam@192.168.20.24
name type ip os role tech hardware
sam-thinkpad Laptop 192.168.20.51 NixOS, Niri Portable dev laptop. Third pi machine. On-the-go + at home. pi, Neovim, Home Manager. ThinkPad L14 Gen 2 AMD.
cpu ram gpu disks
model cores threads
AMD Ryzen 5 PRO 5650U with Radeon Graphics 6 12
total_gb
14
device size mountpoint
/dev/nvme0n1 238G /
sam-4screen-desktop has ssh keys to sam-ubuntu1 and nixos-desktop
Gitea: Docker on .35 (gitea-server-1 + gitea-db-1) — web .35:3001, SSH .35:2222. pi-config repo: ssh://git@gitea.lab.audasmedia.com.au:2222/sam/pi-config.git
pi: Nix-managed pi-coding-agent 0.82.1 on all three (uniform); pi-tool-display global; pi-lsp-extension per-project
Each machine has its own ~/.agents clone of pi-config — a push from .27 does NOT auto-update .13/.51
DNS: Pi Hole on sam-ubuntu1 in docker
Reverse Proxy: Caddy on sam-ubuntu1 in docker
pihole main: sam-ubuntu1
pihole redundancy: nixos-desktop
Router Main: 192.168.20.1
Router Second: 192.168.20.254
Proxmox VE host: 192.168.20.28 (web UI :8006); PBS: 192.168.20.48 (:8007)
External IP: 144.6.86.11 (NOT 173.231.229.92 — that's InMotion's server)
Website: Audasmedia.com.au redirects to local *.lab.audasmedia.com.au

System Architect

Sam's NixOS multi-machine infrastructure reference.

Machines

Machine IP Type OS Role
sam-4screen-desktop 192.168.20.27 Desktop NixOS + Niri Main dev machine
nixos-desktop 192.168.20.13 Desktop NixOS + Niri Second dev, web facing, Docker services
sam-thinkpad 192.168.20.51 Laptop NixOS + Niri Portable dev laptop
sam-ubuntu1 192.168.20.35 VM Ubuntu Docker host for home network services
home-assistant 192.168.20.30 VM HA OS Home automation
file-server 192.168.20.23 VM - File server
proxmox-backup 192.168.20.48 VM PBS Proxmox backup server
proxmox 192.168.20.28 Host Proxmox VE Hypervisor — hosts all VMs (.23/.30/.35/.48), web UI :8006
skinnyspeakers 192.168.20.24 Pi Raspbian 12 Speaker/audio client (Snapcast?) — identified 2026-08-29

Network

  • DNS: Pi Hole on sam-ubuntu1 (Docker), redundancy on nixos-desktop
  • Reverse Proxy: Caddy on sam-ubuntu1
  • Proxmox VE host: 192.168.20.28 (web UI :8006); PBS: 192.168.20.48 (:8007)
  • Router: 192.168.20.1 (main), 192.168.20.254 (secondary)
  • External IP: 144.6.86.11 (NOT 173.231.229.92 — that's InMotion's server)
  • Website: audasmedia.com.au → *.lab.audasmedia.com.au

Web Deploy Sync (.27 → .13)

  • Manual lsyncd (not a service): config ~/.config/lsyncd/lsyncd.conf.lua on .27 → rsync+ssh to .13 /var/www/<site> (delete = true).
  • Sites: sprinklers (zola/sprinkler/public), sam-developer + sam-devops (home_network/web_sites/*/dist) — see config for the full list.
  • Permissions (.13): web folders use NixOS users group — new folders need sudo chown -R sam:users /var/www/<folder>.
  • Secrets: ~/.config/environment.d/10-secrets.conf (env keys, kept out of the git-tracked Nix store).

Full hardware specs are in the frontmatter metadata.

Pi Agent (uniform across machines)

  • Binary: nixpkgs pi-coding-agent 0.82.1 in home.packages on .27/.13/.51 (Nix-managed; npx wrapper + npm-global install removed 2026-08-05). Updates = nixpkgs flake bump + rebuild.
  • Assets: ~/.agents (git → Gitea pi-config on .35). Each machine has its OWN clone — update each machine's repo individually (git -C ~/.agents pull).
  • Global settings: ~/.pi/agent/settings.json — home.nix-managed on .27/.51; plain file on .13 (chmod 600, keys inline, outside any git repo). Same content: Gitea source (tavily-search, pi-config, pi-tool-display), skills (nixos-workflow), themes, prompts.
  • pi-tool-display: global renderer (0 tools, 0 token cost). pi-lsp-extension: per-project via /config-add ext pi-lsp-extension. See Obsidian → 350 AI → Pi Agent Extensions & Skills.md for details.