Files
backend/scripts/check-env.sh

85 lines
2.3 KiB
Bash
Raw Normal View History

#!/bin/bash
# CarrotSkin 环境变量检查脚本
echo "🔍 检查 CarrotSkin 环境变量配置..."
# 必需的环境变量列表
REQUIRED_VARS=(
"DATABASE_HOST"
"DATABASE_USERNAME"
"DATABASE_PASSWORD"
"DATABASE_NAME"
"REDIS_HOST"
"RUSTFS_ENDPOINT"
"RUSTFS_ACCESS_KEY"
"RUSTFS_SECRET_KEY"
"RUSTFS_BUCKET_TEXTURES"
"RUSTFS_BUCKET_AVATARS"
"JWT_SECRET"
)
# 检查.env文件是否存在
if [ ! -f ".env" ]; then
echo "❌ .env 文件不存在"
echo "💡 请复制 .env.example 为 .env 并配置相关变量"
exit 1
fi
echo "✅ .env 文件存在"
# 加载.env文件
set -a
source .env 2>/dev/null
set +a
# 检查必需的环境变量
missing_vars=()
for var in "${REQUIRED_VARS[@]}"; do
if [ -z "${!var}" ]; then
missing_vars+=("$var")
fi
done
if [ ${#missing_vars[@]} -gt 0 ]; then
echo "❌ 缺少以下必需的环境变量:"
for var in "${missing_vars[@]}"; do
echo " - $var"
done
echo ""
echo "💡 请在 .env 文件中设置这些变量"
exit 1
fi
echo "✅ 所有必需的环境变量都已设置"
# 检查关键配置的合理性
echo ""
echo "📋 当前配置概览:"
echo " 数据库: $DATABASE_USERNAME@$DATABASE_HOST:${DATABASE_PORT:-5432}/$DATABASE_NAME"
echo " Redis: $REDIS_HOST:${REDIS_PORT:-6379}"
echo " RustFS: $RUSTFS_ENDPOINT"
echo " 存储桶: $RUSTFS_BUCKET_TEXTURES, $RUSTFS_BUCKET_AVATARS"
echo " JWT密钥长度: ${#JWT_SECRET} 字符"
# 检查JWT密钥长度
if [ ${#JWT_SECRET} -lt 32 ]; then
echo "⚠️ JWT密钥过短建议使用至少32字符的随机字符串"
fi
# 检查默认密码
if [ "$JWT_SECRET" = "your-jwt-secret-key-change-this-in-production" ]; then
echo "⚠️ 使用的是默认JWT密钥生产环境中请更改"
fi
if [ "$DATABASE_PASSWORD" = "123456" ] || [ "$DATABASE_PASSWORD" = "your_password_here" ] || [ "$DATABASE_PASSWORD" = "carrotskin123" ]; then
echo "⚠️ 使用的是默认数据库密码,生产环境中请更改"
fi
if [ "$RUSTFS_ACCESS_KEY" = "your_access_key" ] || [ "$RUSTFS_SECRET_KEY" = "your_secret_key" ] || [ "$RUSTFS_ACCESS_KEY" = "rustfsadmin" ]; then
echo "⚠️ 使用的是默认RustFS凭证生产环境中请更改"
fi
echo ""
echo "🎉 环境变量检查完成!"