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; }