somratpro Claude Sonnet 4.6 commited on
Commit
b8b0f98
·
1 Parent(s): 09af51a

feat: auto-generate BETTER_AUTH_SECRET on first boot

Browse files

If not set via HF Space secrets:
- First boot: generate with openssl rand -base64 32, save to /paperclip/.auth-secret
- Subsequent restarts: reload from saved file (stable across restarts)
- User-set secret always wins (checked before file lookup)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (1) hide show
  1. start.sh +20 -0
start.sh CHANGED
@@ -58,6 +58,26 @@ export BACKUP_DATASET_NAME="${BACKUP_DATASET_NAME:-paperclip-backup}"
58
  export PAPERCLIP_TELEMETRY_DISABLED="${PAPERCLIP_TELEMETRY_DISABLED:-1}"
59
  export DO_NOT_TRACK="${DO_NOT_TRACK:-1}"
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  echo -e "${GREEN}✓ Environment validated${NC}\n"
62
 
63
  # ============================================================================
 
58
  export PAPERCLIP_TELEMETRY_DISABLED="${PAPERCLIP_TELEMETRY_DISABLED:-1}"
59
  export DO_NOT_TRACK="${DO_NOT_TRACK:-1}"
60
 
61
+ # Auto-generate BETTER_AUTH_SECRET if not provided
62
+ # User-set secret (HF Space secret) always takes precedence
63
+ AUTH_SECRET_FILE="${PAPERCLIP_HOME}/.auth-secret"
64
+ mkdir -p "${PAPERCLIP_HOME}"
65
+ if [ -z "${BETTER_AUTH_SECRET}" ]; then
66
+ if [ -f "${AUTH_SECRET_FILE}" ]; then
67
+ # Reuse previously generated secret (persists across restarts)
68
+ export BETTER_AUTH_SECRET=$(cat "${AUTH_SECRET_FILE}")
69
+ echo -e "${YELLOW}Using persisted auth secret from ${AUTH_SECRET_FILE}${NC}"
70
+ else
71
+ # First boot — generate and save
72
+ export BETTER_AUTH_SECRET=$(openssl rand -base64 32)
73
+ echo "${BETTER_AUTH_SECRET}" > "${AUTH_SECRET_FILE}"
74
+ chmod 600 "${AUTH_SECRET_FILE}"
75
+ echo -e "${YELLOW}Generated new auth secret (saved to ${AUTH_SECRET_FILE})${NC}"
76
+ fi
77
+ else
78
+ echo -e "${GREEN}Using BETTER_AUTH_SECRET from environment${NC}"
79
+ fi
80
+
81
  echo -e "${GREEN}✓ Environment validated${NC}\n"
82
 
83
  # ============================================================================