Fix deployment scripts for systems without openssl
- Added fallback to /dev/urandom when openssl is not available - Added multiple fallback methods for encryption key generation - Scripts now work on minimal systems like ZimaOS - Maintains security with urandom-based key generation
This commit is contained in:
1 parent
c7333651df
commit
2e06475aab
2 files changed
+32
-9
No files matched your search
@@ -14,7 +14,20 @@ if [ ! -f .env ]; then
|
|||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
|
|
||||||
# Generate a secure encryption key
|
# Generate a secure encryption key
|
||||||
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
echo "🔑 Generating encryption key..."
|
||||||
|
|
||||||
|
if command -v openssl &> /dev/null; then
|
||||||
|
# Use openssl if available
|
||||||
|
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
||||||
|
elif [ -r /dev/urandom ]; then
|
||||||
|
# Fallback to /dev/urandom
|
||||||
|
ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64 | tr -d '\n')
|
||||||
|
else
|
||||||
|
# Last resort: generate from random data
|
||||||
|
ENCRYPTION_KEY=$(cat /dev/random | head -c 32 | base64 | tr -d '\n' 2>/dev/null || echo "PLEASE-CHANGE-THIS-$(date +%s)-$(( RANDOM * RANDOM ))")
|
||||||
|
echo "⚠️ Warning: Could not generate optimal random key"
|
||||||
|
echo " Please update ENCRYPTION_KEY in .env with a secure random value"
|
||||||
|
fi
|
||||||
|
|
||||||
# Update .env with generated key
|
# Update .env with generated key
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
|||||||
+18
-8
@@ -93,18 +93,28 @@ if [ ! -f .env ]; then
|
|||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
|
|
||||||
# Generate encryption key
|
# Generate encryption key
|
||||||
|
echo "🔑 Generating encryption key..."
|
||||||
|
|
||||||
if command -v openssl &> /dev/null; then
|
if command -v openssl &> /dev/null; then
|
||||||
|
# Use openssl if available
|
||||||
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
||||||
# Update .env with generated key
|
elif [ -r /dev/urandom ]; then
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
# Fallback to /dev/urandom
|
||||||
sed -i '' "s/change-this-to-a-secure-random-key/$ENCRYPTION_KEY/" .env
|
ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64 | tr -d '\n')
|
||||||
else
|
|
||||||
sed -i "s/change-this-to-a-secure-random-key/$ENCRYPTION_KEY/" .env
|
|
||||||
fi
|
|
||||||
echo "✅ Generated secure encryption key"
|
|
||||||
else
|
else
|
||||||
echo "⚠️ OpenSSL not found. Please manually set ENCRYPTION_KEY in .env file"
|
# Last resort: generate from random data
|
||||||
|
ENCRYPTION_KEY=$(cat /dev/random | head -c 32 | base64 | tr -d '\n' 2>/dev/null || echo "PLEASE-CHANGE-THIS-$(date +%s)-$(( RANDOM * RANDOM ))")
|
||||||
|
echo "⚠️ Warning: Could not generate optimal random key"
|
||||||
|
echo " Please update ENCRYPTION_KEY in .env with a secure random value"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Update .env with generated key
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
sed -i '' "s/change-this-to-a-secure-random-key/$ENCRYPTION_KEY/" .env
|
||||||
|
else
|
||||||
|
sed -i "s/change-this-to-a-secure-random-key/$ENCRYPTION_KEY/" .env
|
||||||
|
fi
|
||||||
|
echo "✅ Generated secure encryption key"
|
||||||
else
|
else
|
||||||
echo "ℹ️ .env file already exists, keeping existing configuration"
|
echo "ℹ️ .env file already exists, keeping existing configuration"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in new issue
Block a user