2025-11-28 23:30:49 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# CarrotSkin 环境变量检查脚本
|
|
|
|
|
|
|
|
|
|
|
|
echo "🔍 检查 CarrotSkin 环境变量配置..."
|
|
|
|
|
|
|
|
|
|
|
|
# 必需的环境变量列表
|
|
|
|
|
|
REQUIRED_VARS=(
|
|
|
|
|
|
"DATABASE_HOST"
|
|
|
|
|
|
"DATABASE_USERNAME"
|
|
|
|
|
|
"DATABASE_PASSWORD"
|
|
|
|
|
|
"DATABASE_NAME"
|
2025-12-08 15:40:28 +08:00
|
|
|
|
"REDIS_HOST"
|
2025-11-28 23:30:49 +08:00
|
|
|
|
"RUSTFS_ENDPOINT"
|
|
|
|
|
|
"RUSTFS_ACCESS_KEY"
|
|
|
|
|
|
"RUSTFS_SECRET_KEY"
|
2025-12-08 15:40:28 +08:00
|
|
|
|
"RUSTFS_BUCKET_TEXTURES"
|
|
|
|
|
|
"RUSTFS_BUCKET_AVATARS"
|
2025-11-28 23:30:49 +08:00
|
|
|
|
"JWT_SECRET"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# 检查.env文件是否存在
|
|
|
|
|
|
if [ ! -f ".env" ]; then
|
|
|
|
|
|
echo "❌ .env 文件不存在"
|
|
|
|
|
|
echo "💡 请复制 .env.example 为 .env 并配置相关变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "✅ .env 文件存在"
|
|
|
|
|
|
|
|
|
|
|
|
# 加载.env文件
|
2025-12-08 15:40:28 +08:00
|
|
|
|
set -a
|
2025-11-28 23:30:49 +08:00
|
|
|
|
source .env 2>/dev/null
|
2025-12-08 15:40:28 +08:00
|
|
|
|
set +a
|
2025-11-28 23:30:49 +08:00
|
|
|
|
|
|
|
|
|
|
# 检查必需的环境变量
|
|
|
|
|
|
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 "📋 当前配置概览:"
|
2025-12-08 15:40:28 +08:00
|
|
|
|
echo " 数据库: $DATABASE_USERNAME@$DATABASE_HOST:${DATABASE_PORT:-5432}/$DATABASE_NAME"
|
|
|
|
|
|
echo " Redis: $REDIS_HOST:${REDIS_PORT:-6379}"
|
2025-11-28 23:30:49 +08:00
|
|
|
|
echo " RustFS: $RUSTFS_ENDPOINT"
|
2025-12-08 15:40:28 +08:00
|
|
|
|
echo " 存储桶: $RUSTFS_BUCKET_TEXTURES, $RUSTFS_BUCKET_AVATARS"
|
2025-11-28 23:30:49 +08:00
|
|
|
|
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
|
|
|
|
|
|
|
2025-12-08 15:40:28 +08:00
|
|
|
|
if [ "$DATABASE_PASSWORD" = "123456" ] || [ "$DATABASE_PASSWORD" = "your_password_here" ] || [ "$DATABASE_PASSWORD" = "carrotskin123" ]; then
|
2025-11-28 23:30:49 +08:00
|
|
|
|
echo "⚠️ 使用的是默认数据库密码,生产环境中请更改"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-12-08 15:40:28 +08:00
|
|
|
|
if [ "$RUSTFS_ACCESS_KEY" = "your_access_key" ] || [ "$RUSTFS_SECRET_KEY" = "your_secret_key" ] || [ "$RUSTFS_ACCESS_KEY" = "rustfsadmin" ]; then
|
2025-11-28 23:30:49 +08:00
|
|
|
|
echo "⚠️ 使用的是默认RustFS凭证,生产环境中请更改"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo "🎉 环境变量检查完成!"
|