Skip to content

Proxmox VM/LXC Consolidation Review

Phase: 9+ (future) | Status: Pending owner review | Date: 2026-05-15

Problem

Proxmox node prox runs 22 VMs and LXCs. 13 are stopped, consuming 48 vCPU, 83.5 GB RAM, and 371 GB disk in allocated (but idle) resources. Most are uni-tasker LXCs that could be consolidated onto existing Docker hosts or retired entirely.

Inventory of stopped instances

VMID Name Type vCPU RAM Disk Role
102 aiproject LXC 6 9 GB 64 GB AI application
103 unmanic LXC 4 4 GB 8 GB Media transcoding
105 k6-loadtest LXC 6 6 GB 12 GB Load testing
106 metrimon VM 6 10 GB 96 GB Monitoring (old)
107 dnsproject VM 4 3 GB 20 GB DNS experiment
109 graylog LXC 2 8 GB 30 GB Log management
110 sqlserver2022 LXC 6 23 GB 60 GB SQL Server
113 mysql LXC 2 1 GB 8 GB MySQL
115 ollama LXC 4 10 GB 35 GB LLM inference
117 caddy LXC 3 2 GB 12 GB Reverse proxy
118 reactive-resume LXC 2 3 GB 8 GB Resume builder
121 penpot VM 2 4 GB 10 GB Design tool
122 netboot.xyz LXC 1 0.5 GB 8 GB PXE boot

Recommendations

Group A: Retire (superseded by running services)

Instance Replaced by Savings
graylog (LXC 109) Loki + Promtail on infra-services 2 vCPU, 8 GB RAM, 30 GB disk
caddy (LXC 117) Traefik on infra-services 3 vCPU, 2 GB RAM, 12 GB disk
metrimon (VM 106) Prometheus + Grafana on infra-services 6 vCPU, 10 GB RAM, 96 GB disk

Action: Back up configs for reference, confirm no unique data, then destroy.

Group B: Dockerize onto infra-services

Instance Docker image Complexity
reactive-resume (LXC 118) amruthpillai/reactive-resume Low (compose + postgres)
penpot (VM 121) penpotapp/frontend + backend Medium (multi-container)
netboot.xyz (LXC 122) ghcr.io/netbootxyz/netbootxyz Low
mysql (LXC 113) mysql:8 or mariadb:11 Low
sqlserver2022 (LXC 110) mcr.microsoft.com/mssql/server Low (needs 2 GB+ RAM)

Action: Create services/<name>/compose.yaml stacks following existing patterns. Each gets Traefik labels and runs behind the reverse proxy.

Group C: Move media workloads to saltierpoop

Unmanic (LXC 103) is a media transcoder. saltierpoop already runs the full media stack (Plex, Sonarr, Radarr) with the same NFS mounts. Run Unmanic as a Docker container there.

Group D: Merge AI workloads

ollama (LXC 115) and aiproject (LXC 102) are complementary. When AI work resumes, create a single "ai-workbench" VM with GPU passthrough and run both workloads in one place.

Group E: Owner decision needed

Instance Question
k6-loadtest (LXC 105) Still doing load testing? k6 is a single Go binary — could install as a tool instead.
dnsproject (VM 107) What was this project? If experiment is done, retire.
influxdb (LXC 111) Currently running. What writes to it? If only legacy data, export and retire.

Projected end state

After full consolidation, prox runs 5 instances instead of 22:

  1. saltierpoop (VM) — Media stack + unmanic
  2. infra-services (VM) — All Docker services, apps, databases
  3. haos (VM) — Home Assistant OS
  4. nfs-monitoring (LXC) — NFS bridge for Synology mounts
  5. ai-workbench (VM) — Ollama + AI projects (started on demand)

Estimated savings: ~70 GB RAM, ~350 GB disk.