WholeTech · Disk Space — Warnings & Costs

260702 11:40 UTC · snapshot 2026-07-02
Present storage cost
$25/mo
≈ $304/yr
B2 monthly
$5.33
889 GB @ $6/TB
DO volumes
$20/mo
2×100 GiB block
Reclaimable now
~588.7 MiB
stale webroot dirs
Blind spots
3
2 NAS + other PCs
Warnings and cleanup targets from the live scan, plus present + projected storage costs. All dollar figures are planning estimates. Subscription-only rule still applies — none of this involves API billing. See all sources · per-domain.

Warnings

⚠ Backup volume 60% full — /mnt/wholetech_backup

56.2 GiB of 100 GiB used on the DigitalOcean block-storage volume holding nightly backups. Fine now, but it climbs every night. Set a retention/prune policy before it hits ~85%, or resize the volume (+$10/mo per 100 GiB).

⚠ B2 snapshot bloat — 408,771 objects in walhuswholetech-snapshots

34.8 GiB across 408k tiny objects — by far the most objects of any bucket (68% of all B2 objects, only 4% of bytes). Huge object counts raise Class-C transaction costs and slow every listing. Add a B2 lifecycle rule to keep only the last N days of snapshots and hide/delete older versions.

⚠ 3 storage blind spots — no measurement

Both Synology NAS units and ~11 other Windows machines are invisible to this session — no DSM API creds and no central disk reporting. You could be near-full on a NAS and not know. Wire up Synology DSM (/webapi/ storage endpoint) and a one-line Get-PSDrive reporter on each PC that posts to a JSON on the droplet, so they show real numbers here instead of BLIND SPOT.

Cleanup recommendations

✓ Prune stale webroot dirs — reclaim ~588.7 MiB

20 directories look like backups / archives / dev scratch under /var/www:
  • dev.wholetech.com — 573.2 MiB
  • dev.austen.com — 7.1 MiB
  • dev.staysandalwood.com — 3.6 MiB
  • dev.texascoliving.com — 0.9 MiB
  • lifecycletransitions-com.hoarders.dev.wholetech.com — 0.6 MiB
  • onpointappliance-com.redesigns.wholetech.com — 0.6 MiB
  • hillrepair.com.bak.260513-pre-identity — 0.3 MiB
  • hillrepair.com.bak.260512 — 0.3 MiB
  • hillcountryrepair.com.bak.260513-pre-identity — 0.3 MiB
  • dev.deptless.com — 0.2 MiB
  • dev.automarketingdept.com — 0.2 MiB
  • tvawardshow.com.archived-260508 — 0.2 MiB
Verify each is truly dead (check nginx vhost + systemd first), then tar to B2 and remove from the live disk.

✓ Deduplicate the big three B2 buckets

walhus-private (337.2 GiB), walhus-backup (243.6 GiB), walhus-photos (175.7 GiB) are 88% of all B2 bytes. A dedup / incremental pass (rclone dedupe, or switch photo backup to content-hash naming) is where any real B2 savings live — trimming small buckets won't move the bill.

✓ Lifelog is the fastest-growing bucket

walhus-lifelog is 28.7 GiB and grows daily as the pendant records. Budget for it in projections and confirm the retention window matches how far back you actually query.

Costs — present

Itemstorage lineSizebilled $/moest.$/yrest. Basisrate
Backblaze B2 storage889 GB$5.33$64$6 / TB / mo; first 10 GB free
DO block storage — 2×100 GiB200 GB$20.00$240$0.10/GB/mo; backups + spare vol
DigitalOcean droplet58 GiB diskincl.incl.Disk is part of the compute plan
GitHub41 repos$0.00$0Free plan; well under limits
Local PCs + Synologyowned HW$0.00$0Sunk cost; electricity only (~$5–10/mo/NAS est.)
TOTAL (cash)1.00 TiB$25.33$304B2 + DO block only

Costs — 4-year projection

Assumes B2 grows ~150 GB/yr (lifelog + photos + backups) and the backup volume fills, adding one 100 GiB DO volume in 2028 and another in 2029. Adjust the growth rate in gen-diskspace.py.
YearB2 sizeGB B2 $/moDO volsGB DO $/moTotal $/mo Total $/yr
2026889$5.33200$20$25.33$304
20271039$6.23200$20$26.23$315
20281189$7.13300$30$37.13$446
20291339$8.03400$40$48.03$576
Droplet df and /var/www sizes are live at build time. B2 / GitHub / local / Synology are a 2026-07-02 snapshot. Generator: /root/gen-diskspace.py. Costs are estimates for planning only.