WholeTech · Disk Space — Warnings & Costs

260722 10: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
~46.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

61.9 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.

✓ Watchdog live — push alerts + remaining blind spots

An hourly droplet cron (/usr/local/bin/disk-alert.py) now checks every droplet filesystem plus any machine that runs report-disk.ps1, and pushes a phone alert the moment anything crosses 75% (HIGH 85%, CRIT 92%). To receive them: install the free ntfy app (iOS/Android) and subscribe to topic wholetech-disk-caf75fc85b5ab83e — or just open ntfy.sh/wholetech-disk-caf75fc85b5ab83e in a browser. (DigitalOcean blocks outbound email, so alerts go over HTTPS via ntfy, not SMTP.) Currently reporting: 1 PC(s). Still dark:
  • Synology ×2 — found on Tailscale: cc-ds1522plus (DS1522+, Cedar Creek, 100.125.157.75) and hs-ds1522plus (DS1522+, Hot Springs, 100.96.247.74). Both currently offline. Once powered on, they auto-report from any Tailscale PC — just drop a read-only DSM login into ~/.claude/disk-report-config.json (scaffold already staged with their IPs), or map a share as a drive letter for zero-credential pickup.
  • Other Windows boxes — run report-disk.ps1 -Install once on each (registers a 6-hourly task, no admin needed).
Anything silent >50h flips to BLIND on this page and in the alert digest, so a machine going dark can't hide a full disk.

Cleanup recommendations

✓ Prune stale webroot dirs — reclaim ~46.7 MiB

60 directories look like backups / archives / dev scratch under /var/www:
  • dev.austen.com — 7.2 MiB
  • dev.staysandalwood.com — 3.7 MiB
  • sandalwoodvillas.wholetech.com.bak-260703 — 3.6 MiB
  • greenhomevideo.com.bak-260703 — 1.4 MiB
  • smallhomevillages.com.bak-260703 — 1.3 MiB
  • earthscrapers.com.bak-260703 — 1.3 MiB
  • cargotown.com.bak-260703 — 1.2 MiB
  • commercialaustin.com.bak-260703 — 0.9 MiB
  • atemcooler.com.bak-260703 — 0.9 MiB
  • dev.texascoliving.com — 0.9 MiB
  • far-uvclight.com.bak-260703 — 0.9 MiB
  • snapswim.com.bak-260703 — 0.8 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.