a54ff08ebb
feat: storage health monitor with UI alert on drive loss
...
Detect a disconnected or read-only recordings drive and surface it
without stopping recording or live view:
- storage.go: probe path existence, mount point, writability and free
space every 30s; capture mount expectation at startup so a clean
unmount (writes falling through to root fs) is also caught
- GET /api/storage endpoint; storage fields in /api/status
- red UI banner while storage is unavailable
- log ALERT on loss, OK on recovery
2026-10-10 07:17:28 +01:00
3b2bcd7696
refactor: viewer always listens, access blocked at request level when disabled
2026-08-06 19:31:10 +01:00
deb2380507
fix: toggle viewer_port directly instead of viewer.enabled — no ambiguity
2026-08-06 19:12:10 +01:00
c85bba8d56
fix: use mutex-protected config copy in onReload — prevents stale reads
2026-08-06 19:07:08 +01:00
72e936d3f1
fix: viewer port starts/stops dynamically on config save, auth bypass removed
2026-08-06 18:52:02 +01:00
2032402597
fix: auth bypass removed, sanitize names, json errors, viewer port toggle
2026-08-06 18:43:14 +01:00
b2e4dface2
refactor: pivot to JSON config — no yaml dependency, jq in bash, greenfield detection
2026-08-06 14:54:43 +01:00
02ee23281c
feat: config hot-reload — save restarts services automatically
2026-08-06 14:37:02 +01:00
eaa612278d
feat: two-port auth — 8080 with login, 8090 viewer-only (live wall)
2026-08-06 12:56:48 +01:00
d4eada42d8
docs: MIT license, license headers, README with project story and roadmap
2026-08-06 10:48:35 +01:00
3ded3cc1e8
fix: recorder drop audio (-an) — cameras use pcm_mulaw which MP4 doesn't support
2026-08-05 14:10:08 +01:00
06a1252088
feat: v0.3.2 — disk-based snapshot engine, no go2rtc polling for grid
2026-08-05 12:28:29 +01:00
1a017999fe
chore: v0.3.1 — go2rtc auto-start, live wall snapshots, MSE focus player
2026-08-05 12:13:33 +01:00
84bf6d892f
chore: Milestone 1 & 2 — core setup, recorder, cleaner, web UI, deployment
2026-08-05 09:15:43 +01:00