v0.9.0: Storage paths registry, per-app HDD_PATH resolution, storage management UI

- Fix backup toggles not appearing (read each app's own HDD_PATH from app.yaml)
- Storage paths registry in settings.json with auto-discovery from deployed apps
- Settings page "Adattárolók" section with disk usage, add/remove/default/schedulable
- Deploy page path field as dropdown of registered storage paths
- Health check storage monitoring (mount point, disk usage alerts)
- Mount-point validation utilities (Linux syscall + cross-platform stubs)
- Controller docker-compose mount changed to /mnt:/mnt:rw for multi-storage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-17 09:04:28 +01:00
parent 465dec443f
commit aca3b8680a
17 changed files with 963 additions and 33 deletions
+99
View File
@@ -0,0 +1,99 @@
# Changelog
## v0.9.0 — Storage Paths Foundation & Backup Toggle Fix (2026-02-17)
### Fixed
- Per-app backup toggles not appearing on backup page (root cause: missing global `hdd_path` in controller.yaml made `ParseComposeHDDMounts` return nil)
- Each app's HDD_PATH is now read from its own `app.yaml` env section instead of relying on a global config value
### Added
- **Storage paths registry** — multiple external storage paths managed in `settings.json` with auto-discovery from deployed apps on startup
- **Settings page "Adattárolók" section** — view, add, remove, set default, toggle schedulable for storage paths. Disk usage bars, app counts, mount status badges
- **Deploy page storage dropdown** — `path` field type shows registered schedulable paths as dropdown instead of free-text input
- **Health check storage monitoring** — checks path accessibility, mount-point validation (warns if data would write to SSD), disk usage alerts at 90%/95%
- **Mount-point validation** — `IsMountPoint()`, `IsWritable()`, `PathsOverlap()`, `GetDiskUsage()` (Linux via syscall, stubs for other platforms)
### Changed
- Controller docker-compose mount changed from `${HDD_PATH}:${HDD_PATH}:ro` to `/mnt:/mnt:rw` for multi-storage + restore support
- `RunHealthCheck()` now accepts storage paths parameter for per-path monitoring
- `BuildReport()` accepts storage paths for accurate system info in hub reports
- Removed unused `hddPath` parameter from `DiscoverAppData()` signature
## v0.8.0 — Storage Overview, Per-App Backup Toggles & Limited Restore (2026-02-16)
- Storage overview on backup page (SSD/HDD progress bars + repo stats)
- Restic password visibility with show/copy for disaster recovery
- App data discovery (`DiscoverAppData()` with `StackDataProvider` interface)
- Per-app backup toggles (HDD data paths per app)
- Dynamic backup paths based on enabled apps
- Limited app restore from restic snapshots
- Flash messages on backup page
## v0.7.2 — Fix Notification Preferences Sync (2026-02-16)
- Hub: `POST /api/v1/preferences` endpoint
- Hub: Notification section on customer detail page
- Controller: `SyncPreferences` method for hub sync
- Controller: Sync on settings save + startup
## v0.7.1 — Monitoring Warnings, Dashboard Alerts & Notification System (2026-02-16)
- Monitoring page "Távoli monitoring" section
- Dashboard alert banners (error/warning/info)
- Hub notification relay (Resend email)
- Controller-side notifier with cooldown tracking
- Notification preferences UI on settings page
## v0.7.0 — Authentication, Persistence & Settings Page (2026-02-16)
- `settings.json` persistence layer
- Password change via settings page
- Session management improvements
- DB validation persistence across restarts
## v0.6.3 — Bug fixes (2026-02-16)
- `--hdd-path` validation in docker-setup.sh
- `window.event` deprecation fix
- Page title separator fix
- `nextPruneLabel()` Sunday fix
## v0.6.0 — Healthcheck + Central Push + Hub Dashboard (2026-02-16)
- Heartbeat + backup integrity pings
- Central hub reporting (report builder + pusher)
- Hub service with SQLite store + dark theme dashboard
## v0.5.0 — Monitoring Page with Metrics Store (2026-02-16)
- SQLite metrics store with WAL mode
- Background metrics collector (60s interval)
- System + container charts (Chart.js 4.4.7)
- Per-container detail views
## v0.4.5 — Dedicated Backup Page (2026-02-16)
- Full backup system visibility
- DB dump engine + restic integration
- Snapshot history + validation
- Manual backup trigger
## v0.4.0 — Monitoring & Health + Backups (2026-02-15)
- Central job scheduler
- CPU/temperature/load monitoring
- Healthchecks.io integration
- Database dump + restic backup engine
## v0.3.0 — Templates + Server Split (2026-02-15)
- go:embed template migration
- Server decomposition (auth, handlers, funcmap)
- Domain rename (dashboard → felhom)
## v0.2.x — Initial Development (2026-02-13 to 2026-02-15)
- Core stack management (deploy, start, stop, restart, update)
- Dashboard, stacks page, deploy flow, logs
- System info, memory validation
- Git sync, app catalog, delete flow