Skip to content

> STATUS: SNAPSHOT — frozen inventory from 2026-05-17. Reality has moved on; consult CHANGELOG.md + services/* for current state.

# Scrubbing List — /opt/stacks (2026-05-17)

Read-only audit of unused/stale data. Nothing here has been deleted — review the labels and run the commands yourself. Root FS was 165G/200G used (83%); `/var/lib/docker` is 86G of `/opt/stacks`'s 99G.

No stopped/exited/`*_old` containers; no unused custom networks (already clean).

## 1. Docker reclaimable

Target | Size | Label | Command
--- | --- | --- | ---
Build cache (268 entries, old comfyui CPU→Arc rebuilds, 0 in use) | ~20.85 GB | SAFE | `docker builder prune -af`
4× dangling `<none>` mcp-gateway rebuild images (1.59 GB ea) | ~6.36 GB | SAFE | `docker image prune`
2 old dangling images (756 MB + 113 MB) | ~0.87 GB | SAFE | (same `docker image prune`)
~265 anon volumes; one `54bcf7…` = 8.69 GB unidentified, rest ~0B | ~9 GB | REVIEW | inspect `54bcf7…` then `docker volume prune`
Named dangling vols: `n8n_n8n_storage` 128M, `ai_mcpo-data` 84M, `paperless-ngx_pgdata` 26M, `metamcp_postgres_data` 18M, `daytona*_db_data` 15M×2, `librechat_pgdata2` 13M, `arcane_arcane-data` 12M, `ai_redis_data` 7.6M | ~0.3 GB | REVIEW | `docker volume rm <name>` per-item after confirming the stack is retired

In-use, DO NOT REMOVE: `comfyui-comfyui` (6.45G), `clusterzx/paperless-ai` (8.59G).

## 2. Migrated/abandoned local data dirs (compose now points to UNAS)

Path | Size | Label | Note
--- | --- | --- | ---
`arr-stack/media` | 55 G | REVIEW | No container mounts it; arr → `/mnt/pve/unas/media`. Audiobooks/ebooks have recent mtimes (rsync residue) — parity-check vs UNAS before `rm -rf`
`ai/data` (old postgres) | 195 M | SAFE | Not mounted, not referenced
`ai/postgres_data` (incl 38M pg_wal) | 120 M | REVIEW | Not mounted/referenced but recent mtime
`ai/meili_data_v1.35.1` | 19 M | SAFE | Old Meili, not mounted
`qdrant/qdrant_storage` | 7 M | SAFE | qdrant migrated to UNAS (fresh start)
`daytona/db_data` | 14 M | REVIEW | No mount; daytona uses named volumes
`n8n/data` | empty | SAFE | `rmdir`

Active local, KEEP: `immich/postgres` (814M), `ai/lobehub/data` (25M), `shared-db/wal-g` (27M, RO mount), arr-stack configs, `ai/litellm-config`, `ai/searxng`.

## 3. Migration / scratch artifacts

Path | Label | Note
--- | --- | ---
`ai/docker` (0 B), `ai/bucket.config.json` (empty dir) | SAFE | junk
`scripts/traefik-*.sh` | SAFE | Traefik abandoned for Zoraxy
`scripts/{migrate_*,test_adguard_api,zoraxy_csrf,zoraxy_test,configure_zoraxy_*}.py` | REVIEW | one-shot done; confirm no rerun need
`scripts/zoraxy_sync.py` | KEEP | ongoing proxy tooling
`scripts/.venv` (29M), `scripts/.kilo` (30M) | REVIEW | regenerable caches
`/tmp/{flux_*,pw_ui,add_*,fix_*}.* , /tmp/*.png , /tmp/*.log` | SAFE | ~1.8M scratch (this session)

## Bottom line

- Safe-only reclaim: ~29–30 GB (build cache + dangling images dominate).
- With review: +~64 GB (55G stale `arr-stack/media` after UNAS parity check, ~9G anon vols).
- Highest-value, zero-risk action: `docker builder prune -af` → ~20.85 GB now.
- Biggest overall prize: verify+remove `arr-stack/media` (55 G) — parity-check vs `/mnt/pve/unas/media` first.