mirror of
https://github.com/Dvorinka/SEEN.git
synced 2026-07-29 07:03:46 +00:00
68 lines
2.1 KiB
Bash
Executable File
68 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Generate Strong Secrets for SEEN Production Deployment
|
|
#
|
|
# This script generates cryptographically secure random secrets
|
|
# for use in production environment configuration.
|
|
|
|
set -e
|
|
|
|
echo "==================================="
|
|
echo "SEEN - Secret Generation Tool"
|
|
echo "==================================="
|
|
echo ""
|
|
|
|
# Check if openssl is available
|
|
if ! command -v openssl &> /dev/null; then
|
|
echo "ERROR: openssl is required but not installed."
|
|
echo "Please install openssl and try again."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Generating secure secrets..."
|
|
echo ""
|
|
|
|
# Generate JWT secret (32 bytes = 256 bits)
|
|
JWT_SECRET=$(openssl rand -base64 32)
|
|
echo "JWT Secret (SEEN_AUTH_JWT_SECRET):"
|
|
echo "${JWT_SECRET}"
|
|
echo ""
|
|
|
|
# Generate database password (24 bytes)
|
|
DB_PASSWORD=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-32)
|
|
echo "Database Password (POSTGRES_PASSWORD):"
|
|
echo "${DB_PASSWORD}"
|
|
echo ""
|
|
|
|
# Generate cache password (optional, 24 bytes)
|
|
CACHE_PASSWORD=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-32)
|
|
echo "Cache Password (SEEN_CACHE_PASSWORD - optional):"
|
|
echo "${CACHE_PASSWORD}"
|
|
echo ""
|
|
|
|
# Generate session secret (32 bytes)
|
|
SESSION_SECRET=$(openssl rand -base64 32)
|
|
echo "Session Secret (for future use):"
|
|
echo "${SESSION_SECRET}"
|
|
echo ""
|
|
|
|
echo "==================================="
|
|
echo "IMPORTANT SECURITY NOTES:"
|
|
echo "==================================="
|
|
echo ""
|
|
echo "1. Store these secrets securely (password manager, secrets vault)"
|
|
echo "2. Never commit these secrets to version control"
|
|
echo "3. Use different secrets for each environment (dev/staging/prod)"
|
|
echo "4. Rotate secrets periodically (every 90 days recommended)"
|
|
echo "5. Update backend/.env.production with these values"
|
|
echo ""
|
|
echo "Quick setup command:"
|
|
echo "-----------------------------------"
|
|
echo "# Copy to production env file"
|
|
echo "cp backend/.env.production backend/.env.production.local"
|
|
echo ""
|
|
echo "# Then manually edit backend/.env.production.local and replace:"
|
|
echo "# - SEEN_AUTH_JWT_SECRET with the JWT Secret above"
|
|
echo "# - POSTGRES_PASSWORD with the Database Password above"
|
|
echo ""
|
|
echo "==================================="
|