From a39fdc9e991909558d318ad26f7b621560efb3dd Mon Sep 17 00:00:00 2001 From: "courtmanr@gmail.com" Date: Wed, 19 Nov 2025 14:48:09 +0000 Subject: [PATCH] fix: local dev setup, encryption key generation, and pnpm lockfile --- frontend-modern/pnpm-lock.yaml | Bin 0 -> 122371 bytes scripts/hot-dev.sh | 10 +++++++--- scripts/sync-production-config.sh | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 frontend-modern/pnpm-lock.yaml diff --git a/frontend-modern/pnpm-lock.yaml b/frontend-modern/pnpm-lock.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e697b3cfaa512ea45cf5a923584a1297c7689555 GIT binary patch literal 122371 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 "${DEV_KEY_FILE}" + openssl rand -base64 32 > "${DEV_KEY_FILE}" chmod 600 "${DEV_KEY_FILE}" echo "[hot-dev] Generated dev encryption key at ${DEV_KEY_FILE}" fi diff --git a/scripts/sync-production-config.sh b/scripts/sync-production-config.sh index a257029..3d416b2 100755 --- a/scripts/sync-production-config.sh +++ b/scripts/sync-production-config.sh @@ -5,7 +5,7 @@ set -euo pipefail PROD_DIR="/etc/pulse" -DEV_DIR="/opt/pulse/tmp/dev-config" +DEV_DIR=${DEV_DIR:-"/opt/pulse/tmp/dev-config"} # Ensure dev config directory exists mkdir -p "$DEV_DIR" @@ -44,7 +44,7 @@ else echo "⚠ Production encryption key not found. Using dev-only key." if [ ! -f "$DEV_DIR/.encryption.key" ]; then # Generate a dev-only encryption key so backend can start - openssl rand -hex 32 > "$DEV_DIR/.encryption.key" + openssl rand -base64 32 > "$DEV_DIR/.encryption.key" chmod 600 "$DEV_DIR/.encryption.key" echo "✓ Generated dev encryption key at $DEV_DIR/.encryption.key" else