- .13: KDE Plasma 6 (not Niri); RAM 15GB; disk letters corrected (root is /dev/sda2, storage sdb2, data sdc2, ubuntu_storage sdd1); add sda3 swap (81% full) - .13 GPU: GTX 760 dead, no driver bound, software rendering - .27: 4 cores/8 threads, Quadro P620 + HD 630, add swap + NTFS disk - add Resource Pressure on .13 section and must-stay-on list - note dead stacks (airflow 24GB logs, engram container) and caveats
11 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 |
|
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.luaon .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
usersgroup — new folders needsudo 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.
Resource Pressure on .13 (verified 2026-10-05)
.13 is memory-bound, not CPU-bound. Load average is ~0.27 on 12 threads, but the
8.8 GB swap partition is 81% full. Before proposing anything that adds load to .13,
check the swap. Full detail: Obsidian → 300 areas/360 Dev-Ops Network Computers/Resource Use — .13 CPU & RAM.md.
| Consumer | RAM + swap | Notes |
|---|---|---|
| KDE Plasma session (~30 processes) | ~2.4 GB | Software rendering (GPU dead) + 28-day uptime |
| Docker containers (all) | ~3.5 GB RSS | voice_whisper 877 MB is the largest |
litellm + headroom |
~1.05 GB swap | Idle; both fully paged out; redundant with OmniRoute |
| Dead Airflow logs | 24 GB disk | /home/sam/deployment/airflow/logs — nothing depends on it |
Must stay on .13: Pi-hole :53, OmniRoute :20128/20129 (all pi LLM traffic),
Mosquitto :1883 (Home Assistant on .30), the Borg backup target on /mnt/ubuntu_storage_3TB
(.27 pushes daily at 04:00), Caddy :8000 + /var/www.
Corrections applied 2026-10-05: .13 runs KDE Plasma 6, not Niri. .13 disk device
letters were wrong (root is /dev/sda2). Home Assistant is on .30, not .35 (.35 is
sam-ubuntu1, the Caddy/docker app host). Pi-hole primary is .35; .13 is the replica
(confirmed from nebulasync: PRIMARY=http://192.168.20.35, REPLICAS=http://192.168.20.13).
Pi Agent (uniform across machines)
- Binary: nixpkgs
pi-coding-agent0.82.1 inhome.packageson .27/.13/.51 (Nix-managed; npx wrapper + npm-global install removed 2026-08-05). Updates = nixpkgs flake bump + rebuild. - Assets:
~/.agents(git → Giteapi-configon .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. SeeObsidian → 350 AI → Pi Agent Extensions & Skills.mdfor details.