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:
- saltierpoop (VM) — Media stack + unmanic
- infra-services (VM) — All Docker services, apps, databases
- haos (VM) — Home Assistant OS
- nfs-monitoring (LXC) — NFS bridge for Synology mounts
- ai-workbench (VM) — Ollama + AI projects (started on demand)
Estimated savings: ~70 GB RAM, ~350 GB disk.