Commit graph

78 commits

Author SHA1 Message Date
228f4cd518 fix: default storage path in config sample — /mnt/recordings 2026-08-06 19:21:43 +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
700a0ab4f0 fix: use element IDs for auth checkboxes — reliable checked state 2026-08-06 19:02:21 +01:00
f548ec8fe2 fix: reload config after save so viewer toggle state is correct 2026-08-06 18:56:19 +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
fbb40f4e26 chore: v0.4.0 — cleanup, changelog, version bump 2026-08-06 18:30:49 +01:00
cc972835b0 docs: update README — auth is optional, remove.sh, config.json, roadmap 2026-08-06 18:28:32 +01:00
f280de445f fix: store real camera password in data attribute, not masked value 2026-08-06 18:04:56 +01:00
83ed6516f1 fix: exclude auth card from camera save — selector scoped to [data-id] 2026-08-06 18:02:09 +01:00
7ebeb73f62 fix: missing function declaration for addCamera 2026-08-06 17:54:05 +01:00
1942c2bb35 feat: clean settings cards — name + desc, advanced collapsed, add/remove 2026-08-06 17:50:16 +01:00
ebc05762b0 feat: add/remove cameras in Settings, empty fallback fix 2026-08-06 17:40:19 +01:00
86ce14bc5b refactor: no interactive prompts — config.json.sample has defaults, update preserves config 2026-08-06 17:28:46 +01:00
30547fc354 fix: remove auth from first-run wizard, skip empty-name cameras in grid 2026-08-06 17:26:55 +01:00
ef41c29981 fix: move auth collection after config fetch — lexical scope bug 2026-08-06 17:20:15 +01:00
4a9266e249 feat: auth management card in Settings — edit master/viewer, enable/disable 2026-08-06 15:32:10 +01:00
a1f05012b4 fix: graceful stop via systemctl + targeted kill, no pkill -9 2026-08-06 15:23:09 +01:00
7b9902f788 fix: pkill patterns — target binary paths, not script itself 2026-08-06 15:04:03 +01:00
31ea59ceea feat: remove.sh — clean removal for greenfield redeployment 2026-08-06 14:58:47 +01:00
b2e4dface2 refactor: pivot to JSON config — no yaml dependency, jq in bash, greenfield detection 2026-08-06 14:54:43 +01:00
386d3b3858 fix: deploy_nvr.sh downloads go2rtc binary, sets correct config path 2026-08-06 14:40:31 +01:00
02ee23281c feat: config hot-reload — save restarts services automatically 2026-08-06 14:37:02 +01:00
e790855f69 feat: deploy prompts for storage path on first install, preserves on update 2026-08-06 14:30:19 +01:00
49b1b8a5ff fix: config comes from repo clone, fix step numbering 2026-08-06 14:27:58 +01:00
d867e3b976 refactor: storage path in config.yaml only — deploy script no longer prompts 2026-08-06 14:23:56 +01:00
aba58cf1a0 feat: deploy_nvr.sh — stops service before rebuild, update instructions 2026-08-06 14:22:49 +01:00
7c7c920f5e fix: one-liner reads from /dev/tty for interactive prompt, README explains both methods 2026-08-06 14:18:16 +01:00
6f0576d534 fix: inject storage path into existing config, explain interactive vs piped 2026-08-06 14:15:13 +01:00
e61aab2df5 fix: handle non-interactive piped install — default $HOME/nvr_data 2026-08-06 14:09:33 +01:00
1cbf03d384 fix: default storage to $HOME/nvr_data, empty in repo config 2026-08-06 13:55:29 +01:00
b5dcbe9c56 feat: setup.sh asks for storage path, creates directory, injects into config 2026-08-06 13:53:58 +01:00
7a4c97e760 fix: fallback camera name from IP when ONVIF returns no model 2026-08-06 13:20:27 +01:00
c4c9049e24 fix: go2rtc config path absolute, gitignore generated file 2026-08-06 13:16:02 +01:00
872c8c2273 fix: sanitize camera names — spaces → underscores for CLI-safe paths 2026-08-06 13:14:10 +01:00
1e53ffe151 docs: two-port auth, first-run wizard with admin setup 2026-08-06 13:06:33 +01:00
7064829921 feat: first-run auth setup in wizard, auto-hash passwords on save 2026-08-06 13:03:56 +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
cda6ca4785 fix: code review — XSS, credentials 0600, interval leak, path bugs, title, unused imports 2026-08-05 16:13:25 +01:00
09592b90d2 fix: timezone-aware playback presets — ParseInLocation for BST 2026-08-05 14:50:28 +01:00
faf954a59d fix: go2rtc proxied through NextNVR — no port 1984 forwarding needed 2026-08-05 14:42:09 +01:00
66dd4c54b4 fix: clean focus popup — close button bar + fullscreen iframe 2026-08-05 14:38:21 +01:00
c2fb05a9ef fix: iframe focus (PWA-friendly), mobile grid overlap fix 2026-08-05 14:28:46 +01:00
c509ba7eb1 style: responsive mobile UI — 2-col grid, full-width cards, stacked controls 2026-08-05 14:13:58 +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
752941f991 docs: add remote access guide with Dynamic DNS + port forwarding 2026-08-05 14:09:52 +01:00
741983ae82 fix: no-cache headers to prevent stale JS, correct go2rtc stream.html URL 2026-08-05 14:02:44 +01:00
03448361da fix: correct go2rtc player URL — stream.html not root 2026-08-05 14:02:00 +01:00