Commit Graph
1 Commits
Author SHA1 Message Date
Krystie cd3d0cd8ff feat: VM disk sandboxing — bounded virtual disk per platform
CI / Security audit (push) Canceled after 0s
CI / Test & Lint (push) Canceled after 0s
ARCHITECTURE:
- Windows: dedicated WSL2 distro with fixed VHDX, Docker inside
- macOS: Lima VM with fixed disk, Docker inside
- Linux: sparse ext4 loopback image, Docker data-root inside

NEW FILES:
- vm-provisioner.js: core provisioning engine (create/start/destroy/export)
  - Disk presets: Minimal(10GB), Balanced(30GB), Power(100GB), Custom
  - Sparse images that grow on demand (start at ~0 bytes)
  - Full lifecycle: provision → deploy DashCaddy → destroy (clean removal)
  - Data export before uninstall for users who want to migrate
- vm-ipc.js: Electron IPC handlers connecting wizard to provisioner
  - vm:provision, vm:destroy, vm:get-status, vm:export-data, vm:get-presets
- disk-budget-step.js: wizard UI step with preset cards + custom slider
  - Real-time free space check against selected disk size
  - Plain English description of what each tier handles

UPDATED:
- caddyfile-generator.js: docker-compose now includes disk safety env vars
  (health retention, stats caps, memory limits) as defense-in-depth
  even inside the VM sandbox

GUARANTEE: DashCaddy physically cannot exceed the storage budget.
The OS enforces the limit at the disk/image level, not our code.
2026-08-12 23:02:51 -07:00