Compute disposition review (owner decisions)¶
Status: Consolidation complete (2026-06-25); destroy queue empty Prepared: 2026-06-23 Execution queue: compute decommission queue (all rows done) Sources: prox live scan, whrrr VMM scan, infra-services guest facts, lab audit, inventory YAML
Live Prox guests (2026-06-25)¶
| VMID | Host | Power | Owner decision |
|---|---|---|---|
| 100 | saltierpoop | running | K |
| 109 | graylog | running | K (central syslog) |
| 113 | mysql | stopped | K-s |
| 115 | ollama | stopped | K-s |
| 116 | pulse | running | K |
| 119 | harbor-registry | running | K |
| 120 | octoprint | running | K-s |
| 123 | infra-services | running | K |
| 200 | haos | running | K |
Retired VMIDs include 110 (2026-06-25), 105, 106, 107, 111, 114, 117, 118, 121, 122, 102, 103 —
see queue + inventory status: retired.
How to respond (historical — decisions recorded 2026-06-23)¶
For each row, set Owner decision to one of:
| Code | Meaning |
|---|---|
| K | Keep as-is (instance stays on current HV) |
| K-s | Keep but leave stopped until needed |
| C→ | Consolidate — move workload to target in Consolidate target column |
| R | Retire — destroy instance after backup/verification window |
| D | Defer — need more discovery (in-guest facts, owner interview) |
Reply in chat or edit this file inline, e.g. k6-loadtest: R or fill the
Owner decision column below.
Normal vs notable services: Normal = expected baseline for that instance type. Notable = duplicates, experiments, unknown purpose, or non-standard deployments worth a disposition call.
Patch status legend:
| Label | Meaning |
|---|---|
| Wave N | In Phase 8 coordinated patching (patching_waveN) |
| Unmanaged | Not in ansible patch orchestration — patch age unknown |
| Appliance | Vendor/OS-managed updates only (HAOS, DSM) |
| Retired | Instance gone or decommissioned |
Summary matrix¶
Historical recommendations, not an active queue
This matrix mixes the original 2026-06-23 recommendations with dated close-out notes. “Stopped”, “Keep stopped”, restart and merge proposals are historical, not present power state or authorization. The owner retired aiProject on 2026-06-24; VMID 102 was later reused for PostgreSQL (2026-08-09 inventory record). Any future AI workload needs fresh guest identity, an independently selected target and owner approval; never restart or restore over 102 from this table.
Prox resource pressure (from lab audit): ~95% RAM, ~89% local-lvm — stopping or retiring idle guests frees allocatable vCPU/RAM/disk even when powered off.
| HV | Host | VMID / guest | Type | Power | OS (inventory) | Ansible | Patch status | Age / provenance | Notable services | Agent rec. | Consolidate target | Owner decision |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| prox | saltierpoop | 100 | VM | running | Ubuntu 22.04 | managed (OS) | Wave 0 | Pre-2026 Saltbox | Saltbox media stack (~40 containers) — normal | K | — | K |
| prox | infra-services | 123 | VM | running | Ubuntu 24.04 | managed | Wave 2 (C&C) | Provisioned Phase 4 | traefik, komodo, ara, homepage, adguard, monitoring (13 containers) — normal | K | — | K |
| prox | haos | 200 | VM | running | HAOS | appliance | Appliance | Pre-2026 | Home Assistant — normal | K | — | K |
| prox | influxdb | 111 | LXC | retired | Debian | n/a | Retired | Pre-2026 | InfluxDB — retired 2026-06-24 | R ✓ | Prometheus on infra-services | R (Phase 3 complete) |
| prox | harbor-registry | 119 | LXC | running | Ubuntu | unmanaged | Unmanaged | Pre-2026 | reg.realemail.app — recordurbate-tiktok depends |
K | — | K |
| prox | pulse | 116 | LXC | running | Debian | unmanaged | Unmanaged | Pre-2026 | Unknown — high network I/O; role undocumented | D | — | K |
| prox | k6-loadtest | 105 | LXC | retired | Ubuntu | n/a | Retired | Pre-2026 | k6 load testing — destroyed 2026-06-24 | R ✓ | — | R |
| prox | nfs-monitoring | 114 | LXC | retired | Ubuntu | n/a | Retired | Pre-2026 | NFS bridge — destroyed 2026-06-24 | R ✓ | — | R (backup on infra-backups) |
| prox | octoprint | 120 | LXC | running | Debian | unmanaged | Unmanaged | Pre-2026 | OctoPrint + USB passthrough for 3D printer | K-s | — | K-s (running when printing) |
| prox | metrimon | 106 | VM | stopped | Ubuntu 24.04 | unmanaged | Unmanaged | Pre-2026 | Legacy monitoring VM | R | infra-services (Prometheus/Grafana already live) | R - but everything must migrate |
| prox | dnsproject | 107 | VM | stopped | unknown | unmanaged | Unmanaged | Community script | DNS side project (pre-AdGuard) | D | AdGuard on infra-services OR retire | R - but backup somewhere |
| prox | penpot | 121 | VM | stopped | unknown | unmanaged | Unmanaged | Community script | Penpot design tool | C→ | infra-services Docker stack | R - but backup somewhere |
| prox | aiproject | 102 | LXC | stopped | Ubuntu | unmanaged | Unmanaged | Pre-2026 | AI project workspace | K-s | Merge with ollama later (Phase 9) | R |
| prox | ollama | 115 | LXC | stopped | Ubuntu | unmanaged | Unmanaged | Pre-2026 | Ollama LLM | K-s | Single AI VM with aiproject (Phase 9) | K-s |
| prox | unmanic | 103 | LXC | stopped | Debian | unmanaged | Unmanaged | Pre-2026 | Media transcoder | C→ | saltierpoop Docker (Tdarr already there) | R |
| prox | graylog | 109 | LXC | running | Debian | unmanaged | Unmanaged | Experiment | Central syslog (not SIEM) — live 2026-06-25 | K | LXC 109 operational | K — Graylog remains the central syslog path |
| prox | caddy | 117 | LXC | stopped | Debian | unmanaged | Unmanaged | Experiment | Reverse proxy | R | infra-services Traefik | R - but backup somewhere |
| prox | mysql | 113 | LXC | stopped | Debian | unmanaged | Unmanaged | Experiment | Standalone MySQL | R | saltierpoop MariaDB or infra-services if needed | K-s |
| prox | sqlserver2022 | 110 | LXC | stopped | Ubuntu | unmanaged | Unmanaged | Experiment | SQL Server (23 GB RAM alloc) | R | — (recreate on demand if ever needed) | K-s |
| prox | reactive-resume | 118 | LXC | stopped | Debian | unmanaged | Unmanaged | Experiment | Resume builder app | C→ | infra-services compose OR retire (SaaS) | R - but backup somewhere |
| prox | netboot.xyz | 122 | LXC | stopped | Debian | unmanaged | Unmanaged | Experiment | PXE/iPXE boot server | R | infra-services on-demand container | R |
| prox | blocktopus | 104 | LXC | destroyed | Debian | n/a | Retired | PiHole → AdGuard cutover Jun 2026 | — | R ✓ | — (already destroyed) | R |
| prox | prox | — | bare metal | running | Debian 12 | managed | Wave 1 | Hardware 2024+ | Proxmox VE hypervisor — normal | K | — | K |
| whrrr | recordurbate | VMM | VM | running | Ubuntu | managed | Wave 0 whrrr | Ansible VMM guest | Metrics for recordurbate-tiktok stack on ubuncap | K | — | K, optional Prox migration Phase 9+ |
| whrrr | ubuncap | VMM | VM | running | Ubuntu | managed | Wave 0 whrrr | Ansible VMM guest | Docker: recordurbate-tiktok compose (/mnt/streams/tiktok/) |
K | — | K, s/a |
| whrrr | whrrr | — | NAS/appliance | running | DSM 7.3.2 | managed (OS) | Wave — | RS2421+ | VMM, Plex, Docker, volumes — normal | K | — | K |
Detail cards (historical context, not current instructions)¶
Production — no change expected¶
saltierpoop (VM 100)¶
| Field | Value |
|---|---|
| Resources | 20 vCPU, 30 GB RAM (balloon), 260 GB disk, GPU passthrough |
| Normal services | Saltbox: traefik, authentik, plex, *arr stack, mariadb, etc. |
| Notable | Duplicate legacy prometheus/grafana/loki containers (Saltbox-managed) — awareness only |
| Patch | Wave 0; OS-layer ansible only — do not touch /opt/* |
| Recommendation | Keep — production media stack |
infra-services (VM 123)¶
| Field | Value |
|---|---|
| Resources | 4 vCPU, 8 GB RAM, 30 GB disk |
| Normal services | traefik, komodo (+mongo, periphery), ara, homepage, adguard (+unbound), prometheus, grafana, loki, promtail, alertmanager |
| Patch | Wave 2; last coordinated patch pass live 2026-06-23 |
| Guest facts | infra-services.json (2026-06-23) |
| Recommendation | Keep — canonical infra + monitoring C&C |
haos (VM 200)¶
| Field | Value |
|---|---|
| Resources | 6 GB RAM, 32 GB disk; USB passthrough (Zigbee) |
| Normal services | Home Assistant |
| Patch | Appliance — manual HAOS updates |
| Recommendation | Keep — home automation critical path |
Running — needs owner input¶
influxdb (LXC 111) — retired 2026-06-24¶
See Open items — influxdb resolved below.
pulse (LXC 116) — running¶
| Field | Value |
|---|---|
| Resources | 1 GB RAM, 4 GB disk; IP 192.168.6.199 |
| Notable services | Pulse Monitoring Server v5.1.30 — PVE dashboard; Web UI :9091, WS :7655 |
| Discovery | pulse.json, pulse.md |
| Recommendation | Keep — documents prox/saltierpoop compute health |
k6-loadtest (LXC 105) — running ⚠️¶
| Field | Value |
|---|---|
| Resources | 6 GB RAM, 12 GB disk |
| Notable services | k6 load generator |
| Conflict | Lab audit marked decommission; instance is powered on as of 2026-06-23 scan |
| Recommendation | Retire unless you still run load tests — k6 is a single binary; no dedicated LXC needed |
harbor-registry (LXC 119) — running¶
| Field | Value |
|---|---|
| Resources | 4 GB RAM, 80 GB disk; IP 192.168.6.119 |
| Notable services | Harbor at reg.realemail.app |
| Dependency | recordurbate-tiktok images |
| Ops notes | Proxmox -nameserver 192.168.6.17; operator SSH via sync script (see host doc) |
| Recommendation | Keep until registry moves to infra-services or external |
Stopped — consolidation candidates¶
Superseded pre-retirement proposals. In particular, the aiProject “Keep stopped / Future merged AI VM” row below was not the final decision: aiProject was destroyed 2026-06-24, and PostgreSQL later reused 102. The old AI allocation and recommendation are retained for provenance only. See the completed queue for dated destroy/backup outcomes. Fresh identity and owner approval are required for any future work; these rows cannot authorize a restart or restore.
| Host | VMID | RAM | Disk | Agent rec. | Consolidate target | Rationale |
|---|---|---|---|---|---|---|
| graylog | 109 | 8 GB | 30 GB | Retire | Loki on infra-services | Superseded by Phase 5 stack |
| caddy | 117 | 2 GB | 12 GB | Retire | Traefik on infra-services | Superseded |
| metrimon | 106 | 10 GB | 96 GB | Retired | infra-services monitoring | Destroyed 2026-06-24; duplicate stack |
| mysql | 113 | 1 GB | 8 GB | Retire | saltierpoop MariaDB | Duplicate DB |
| sqlserver2022 | 110 | 23 GB | 60 GB | Retire | — | Largest idle alloc; no known consumers |
| reactive-resume | 118 | 3 GB | 8 GB | Retired | — | Owner 2026-06-24: destroy without backup (SaaS if needed) |
| penpot | 121 | 4 GB | 10 GB | Retired | — | Owner 2026-06-24: destroy without backup |
| netboot.xyz | 122 | 0.5 GB | 8 GB | Retire | On-demand container | Rarely needed |
| unmanic | 103 | 4 GB | 8 GB | Consolidate | saltierpoop Docker | Same media domain as Tdarr |
| dnsproject | 107 | 3 GB | 20 GB | Retired | — | Owner 2026-06-24: vzdump then destroy (pre-AdGuard experiment) |
| aiproject | 102 | 9 GB | 64 GB | Keep stopped | Future merged AI VM | Phase 9 RAG |
| ollama | 115 | 10 GB | 35 GB | Keep stopped | Future merged AI VM | Phase 9 |
nfs-monitoring (LXC 114) — retired 2026-06-24¶
Destroyed after manual rootfs backup on infra-backups. NFS Monitoring Grafana dashboard has no live data source.
octoprint (LXC 120) — running (K-s)¶
| Field | Value |
|---|---|
| Notable | Privileged LXC for USB serial to printer |
| Recommendation | K-s — stop when not printing; graylog-syslog-client role may start for converge |
Whrrr VMM¶
recordurbate / ubuncap¶
| Field | recordurbate | ubuncap |
|---|---|---|
| IP | 192.168.6.98 | 192.168.6.100 |
| VMM guest_id | 2c23e005-2de9-49d2-9872-995e6892209e |
a5dc6c98-5628-4aa9-9601-a668f73983ce |
| Workload | Metrics host for customer-app on ubuncap | recordurbate-tiktok Docker compose |
| Patch | patching_wave0_whrrr (Ansible) |
patching_wave0_whrrr (Ansible) |
| Tailscale | tag:server (Ansible role) |
tag:server (Ansible role) |
| Recommendation | Keep — Ansible-managed VMM guest | Keep — Ansible-managed VMM guest |
Projected savings (historical — pre-2026-06-24 execution)¶
Rough allocated resources recovered if all Retire rows are destroyed and consolidation targets absorb the Consolidate rows:
| Category | Instances | ~RAM | ~Disk |
|---|---|---|---|
| Retire (stopped experiments) | graylog, caddy, metrimon, mysql, sqlserver2022, netboot.xyz, reactive-resume† | ~47 GB | ~224 GB |
| Retire (running surprise) | k6-loadtest | ~6 GB | ~12 GB |
| Consolidate then retire shell | unmanic, penpot, reactive-resume† | ~11 GB | ~26 GB |
† reactive-resume counted once in retire-after-consolidate path.
End-state (achieved 2026-06-25): prox runs 10 instances — see Live Prox guests above.
Discovery gaps (fill before deciding)¶
| Host | Gap | Command / action |
|---|---|---|
| pulse, harbor-registry | pulse documented; harbor discover JSON in repo | Optional refresh via discover-guests.yml |
| dnsproject, k6-loadtest, influxdb, nfs-monitoring | Retired 2026-06-24 | — |
| saltierpoop containers | Not enumerated in repo | Optional: one-shot docker ps artifact (Phase 3.3 plan) |
Owner decisions (2026-06-23)¶
Recorded from matrix Owner decision column. Inventory updated; destroy work tracked in compute decommission queue.
| Host | Decision | Notes |
|---|---|---|
| saltierpoop, infra-services, haos, prox, whrrr | K | Production |
| harbor-registry, pulse | K | pulse: document workload via discover-guests |
| nfs-monitoring, octoprint, ollama, mysql, sqlserver2022 | K-s | Stopped; keep allocated |
| recordurbate, ubuncap | K | Optional Prox migration Phase 9+ |
| k6-loadtest, dnsproject, penpot, aiproject, unmanic, caddy, reactive-resume, netboot.xyz | R | Backup before destroy where noted |
| metrimon | R | Migrate all workloads first |
| graylog | K | Central syslog on LXC 109 |
| influxdb | D → keep for now | Cannot retire until Grafana dashboards migrate |
| blocktopus | R | Already destroyed |
Open items (agent responses)¶
influxdb resolved (Phase 3, 2026-06-24)¶
Retired. LXC 111 destroyed after archive on prox infra-backups/influx-lxc-111-2026-06-24/.
Proxbox Thermals and NFS Monitoring dashboards use Prometheus on infra-services; prox host
Telegraf disabled; Grafana Influx datasources and INFLUXDB_TOKEN removed from the monitoring
stack. See influx-telegraf-producers.md and journal Phase 3.
graylog + SIEM — resolved (Pattern E, 2026-06-23)¶
Decision: Graylog stays central syslog (LXC 109). Loki stays the container ops log store. Wazuh was later removed; it is not the SIEM path.
| Layer | Tool | Runbook |
|---|---|---|
| Central syslog | Graylog LXC 109 | central-syslog-graylog.md |
| Former SIEM | Wazuh retired | wazuh-siem.md |
Inventory: graylog active, role central-syslog. Removed from decommission queue.
Changelog¶
| Date | Change |
|---|---|
| 2026-06-25 | Baseline refresh; live matrix reconciled to 10 Prox guests |
| 2026-06-24 | influxdb LXC 111 retired (Phase 3); Influx → Prometheus complete |
| 2026-06-23 | Owner decisions recorded; inventory status/lifecycle updated |