refactor: storage path in config.yaml only — deploy script no longer prompts
This commit is contained in:
parent
aba58cf1a0
commit
d867e3b976
2 changed files with 9 additions and 39 deletions
|
|
@ -7,7 +7,7 @@ server:
|
|||
viewer_port: ":8090"
|
||||
|
||||
storage:
|
||||
recordings_path: ""
|
||||
recordings_path: "/home/master/nvr_data"
|
||||
retention_days: 7
|
||||
cleanup_interval_mins: 60
|
||||
|
||||
|
|
|
|||
|
|
@ -159,33 +159,8 @@ log "Local time: $(date)"
|
|||
TZ=$(timedatectl show --property=Timezone --value 2>/dev/null || cat /etc/timezone 2>/dev/null || echo "unknown")
|
||||
log "Timezone: ${TZ}"
|
||||
|
||||
# ── 1c. Storage path ──
|
||||
echo ""
|
||||
log "Step 1c/7: Where should recordings be stored?"
|
||||
info " This is where video clips and snapshots will be saved."
|
||||
info " Examples: /mnt/recordings, /home/user/nvr, /media/usb-drive"
|
||||
info " Or set STORAGE_PATH environment variable to skip the prompt."
|
||||
echo ""
|
||||
if [ -n "${STORAGE_PATH}" ]; then
|
||||
log "Using STORAGE_PATH from environment: ${STORAGE_PATH}"
|
||||
elif [ -e /dev/tty ]; then
|
||||
read -p " Storage path [${HOME}/nvr_data]: " STORAGE_PATH </dev/tty
|
||||
STORAGE_PATH="${STORAGE_PATH:-${HOME}/nvr_data}"
|
||||
echo "" # newline after prompt
|
||||
else
|
||||
STORAGE_PATH="${HOME}/nvr_data"
|
||||
warn "No terminal available — using default storage: ${STORAGE_PATH}"
|
||||
fi
|
||||
# Strip trailing slash.
|
||||
STORAGE_PATH="${STORAGE_PATH%/}"
|
||||
|
||||
info "Creating ${STORAGE_PATH}..."
|
||||
sudo mkdir -p "${STORAGE_PATH}"
|
||||
sudo chown "$(whoami):$(id -gn)" "${STORAGE_PATH}"
|
||||
log "Storage: ${STORAGE_PATH}"
|
||||
|
||||
# ── 2. Install Go (portable — no distro packages) ──
|
||||
log "Step 2/7: Setting up Go ${GO_VERSION}..."
|
||||
log "Step 2/6: Setting up Go ${GO_VERSION}..."
|
||||
|
||||
GO_TAR="go${GO_VERSION}.linux-${GO_ARCH}.tar.gz"
|
||||
GO_URL="https://go.dev/dl/${GO_TAR}"
|
||||
|
|
@ -207,7 +182,7 @@ export GOPATH="$HOME/go"
|
|||
export GOCACHE="$HOME/.cache/go-build"
|
||||
|
||||
# ── 3. Clone or update repository ──
|
||||
log "Step 4/7: Fetching NextNVR source..."
|
||||
log "Step 4/6: Fetching NextNVR source..."
|
||||
|
||||
if [ -d "${DEPLOY_DIR}/.git" ]; then
|
||||
info "Repository exists, pulling latest..."
|
||||
|
|
@ -224,7 +199,7 @@ fi
|
|||
cd "${DEPLOY_DIR}"
|
||||
|
||||
# ── 4. Build ──
|
||||
log "Step 5/7: Building NextNVR binary..."
|
||||
log "Step 5/6: Building NextNVR binary..."
|
||||
|
||||
go mod tidy
|
||||
|
||||
|
|
@ -239,22 +214,17 @@ chmod +x nextnvr
|
|||
log "Binary built: nextnvr v${VERSION} ($(du -h nextnvr | cut -f1))"
|
||||
|
||||
# ── 5. Configuration & directories ──
|
||||
log "Step 6/7: Configuration..."
|
||||
log "Step 6/6: Configuration..."
|
||||
|
||||
if [ ! -f "${DEPLOY_DIR}/config.yaml" ]; then
|
||||
cp config.yaml "${DEPLOY_DIR}/config.yaml"
|
||||
log "Default config.yaml created with storage path: ${STORAGE_PATH}"
|
||||
log "Default config.yaml created. Use the web UI to configure cameras and storage."
|
||||
else
|
||||
log "config.yaml already exists — updating storage path to: ${STORAGE_PATH}"
|
||||
log "config.yaml already exists — preserved."
|
||||
fi
|
||||
# Always inject the chosen storage path into config.
|
||||
sed -i "s|recordings_path:.*|recordings_path: \"${STORAGE_PATH}\"|" "${DEPLOY_DIR}/config.yaml"
|
||||
|
||||
sudo mkdir -p "${STORAGE_PATH}" 2>/dev/null || mkdir -p "${STORAGE_PATH}"
|
||||
sudo chown "$(whoami):$(id -gn)" "${STORAGE_PATH}" 2>/dev/null || true
|
||||
|
||||
# ── 6. Install service ──
|
||||
log "Step 7/7: Service installation..."
|
||||
log "Step 7/6: Service installation..."
|
||||
|
||||
RUN_USER="$(whoami)"
|
||||
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
||||
|
|
@ -319,7 +289,7 @@ echo "============================================"
|
|||
echo ""
|
||||
info " Web UI: http://$(hostname -I 2>/dev/null | awk '{print $1}' || echo 'localhost'):8080"
|
||||
info " Config: ${DEPLOY_DIR}/config.yaml"
|
||||
info " Storage: /mnt/recordings/"
|
||||
info " Storage: $(grep recordings_path ${DEPLOY_DIR}/config.yaml 2>/dev/null | awk '{print $2}' | tr -d '"')"
|
||||
echo ""
|
||||
if $HAS_SYSTEMD; then
|
||||
echo " Service:"
|
||||
|
|
|
|||
Loading…
Reference in a new issue