Commit graph

9 commits

Author SHA1 Message Date
6346d5fbe1 fix: skip in-progress .part segments and enable MP4 faststart
- /api/recordings no longer lists rec_*.part.mp4 files: FFmpeg has not
  written the moov atom yet, so they can never play. The in-progress
  segment was always the newest entry at the top of the list.
- Record new segments with -movflags +faststart so the MP4 index is at
  the front. iOS/Safari otherwise tail-seeks the moov and stalls.
- Add playsinline to the playback video for inline iOS playback.
- Add scripts/remux-faststart.sh to convert the existing archive
  (dry-run by default, atomic, preserves mtime for retention).
2026-10-20 08:10:09 +01:00
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
dc15b8ffd4 feat: download button in clip player — watch first, then save 2026-08-10 07:01:15 +01:00
eaa612278d feat: two-port auth — 8080 with login, 8090 viewer-only (live wall) 2026-08-06 12:56:48 +01:00
cda6ca4785 fix: code review — XSS, credentials 0600, interval leak, path bugs, title, unused imports 2026-08-05 16:13:25 +01:00
66dd4c54b4 fix: clean focus popup — close button bar + fullscreen iframe 2026-08-05 14:38:21 +01:00
f248b796c6 fix: focus mode uses go2rtc MJPEG stream for real live video 2026-08-05 13:01:22 +01:00
66f35b1eb9 chore: v0.2.1 — flat recording dir, per-segment FFmpeg, .part atomic rename, playback presets 2026-08-05 09:53:21 +01:00
84bf6d892f chore: Milestone 1 & 2 — core setup, recorder, cleaner, web UI, deployment 2026-08-05 09:15:43 +01:00