From dc236e561dca8003bd97e952f9376ab3b6cc8d6e Mon Sep 17 00:00:00 2001 From: cclohmar Date: Thu, 6 Aug 2026 19:41:14 +0100 Subject: [PATCH] feat: storage path in Settings UI, deploy creates directory --- deploy_nvr.sh | 4 ++-- public/app.js | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/deploy_nvr.sh b/deploy_nvr.sh index bc02c58..8b19565 100755 --- a/deploy_nvr.sh +++ b/deploy_nvr.sh @@ -145,10 +145,10 @@ if $GREENFIELD; then # Build config.json from sample with sensible defaults. cp config.json.sample "${CONFIG_FILE}" STORAGE_PATH=$(jq -r .storage.recordings_path "${CONFIG_FILE}") - sudo mkdir -p "${STORAGE_PATH}" 2>/dev/null || true + sudo mkdir -p "${STORAGE_PATH}" 2>/dev/null || mkdir -p "${STORAGE_PATH}" sudo chown "$(whoami):$(id -gn)" "${STORAGE_PATH}" 2>/dev/null || true log "Config created: ${CONFIG_FILE}" - log "Storage: ${STORAGE_PATH} (change via web UI Settings)" + log "Storage: ${STORAGE_PATH}" else log "Config preserved: ${CONFIG_FILE}" fi diff --git a/public/app.js b/public/app.js index 93410ba..004d8b4 100644 --- a/public/app.js +++ b/public/app.js @@ -263,6 +263,7 @@ async function renderCameraCards() { container.innerHTML = `

🔐 Access Setup

+

Port 8080 — Admin

@@ -433,6 +434,10 @@ document.getElementById('btn-save').addEventListener('click', async () => { cfg.auth.viewer.username = viewerUser; cfg.auth.viewer.enabled = viewerEnabled || false; cfg.server.viewer_port = viewerEnabled ? ":8090" : ""; + + // Storage path from settings field. + const storagePath = document.getElementById('storage-path')?.value; + if (storagePath) cfg.storage.recordings_path = storagePath; if (masterPass) { cfg.auth.master.password = masterPass; cfg.auth.master.enabled = true; } if (viewerPass) { cfg.auth.viewer.password = viewerPass; }