YVMX Homelab

SSD cleanup plan

A staged, reversible cleanup checklist with the HDD explicitly excluded.

Hard boundary

This plan may change only SSD-backed paths and Docker state stored on /. It must not read, move, rename, delete, or rewrite files under /mnt/BackupDrive.

Phase 0: preserve the baseline

docker ps -a > /tmp/homelab-docker-ps-before.txt
docker system df > /tmp/homelab-docker-df-before.txt
df -hT / /mnt/BackupDrive > /tmp/homelab-disk-before.txt

The /tmp snapshots are disposable and do not touch the HDD.

Phase 1: review exact candidates

Current SSD pressure candidates include:

  • Docker images: 23.11G reported reclaimable.
  • Docker volumes: 9.17G reported reclaimable, but volumes are data and require per-volume inspection.
  • Docker build cache: 7.94G reported reclaimable.
  • User caches: approximately 11G under /home/yvm/.t3, 6.4G under /home/yvm/.npm, 3.5G under /home/yvm/.cache, and 2.9G under /home/yvm/.codex.

These numbers are candidates, not permission to delete. Cache directories may be recreated; project data and Docker volumes may not.

Phase 2: safe order

  1. Confirm which stopped containers are historical and remove only named containers.
  2. Prune old build cache during a maintenance window.
  3. Review untagged or unused images by ID and age.
  4. Review each volume with docker volume inspect and an application owner.
  5. Clean user caches only through the owning tool or an exact path.
  6. Re-run the baseline commands and verify all active health checks.

Never use a global docker volume prune as a first move. Never use docker compose down -v for cleanup.

Deferred changes

Port binding, host-service shutdown, Compose consolidation, and moving project directories are intentionally deferred. They can improve the end state, but each one changes availability or data ownership and needs an explicit service-by-service decision.

On this page