添加 Dex 认证配置和初始化脚本,创建 .env 示例文件,更新 docker-compose 配置以支持 OIDC 认证

This commit is contained in:
Yuzhong Zhang
2025-08-17 20:57:48 +08:00
parent cd2662b349
commit fa80805bb1
5 changed files with 207 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
#!/bin/bash
set -e
# 检查环境变量
if [ -z "$ADMIN_PASSWORD" ]; then
echo "错误: 请设置 ADMIN_PASSWORD 环境变量"
exit 1
fi
# 生成密码哈希
echo "正在生成密码哈希..."
PASSWORD_HASH=$(docker run --rm dexidp/dex:v2.38.0 hash --password="$ADMIN_PASSWORD")
# 创建临时配置文件
cat > /tmp/dex-init-config.yml << EOF
issuer: http://localhost:5556
storage:
type: sqlite3
config:
file: /var/lib/dex/dex.db
web:
http: 0.0.0.0:5556
logger:
level: info
enablePasswordDB: true
staticPasswords:
- email: ${ADMIN_EMAIL:-admin@example.com}
hash: $PASSWORD_HASH
username: ${ADMIN_USERNAME:-admin}
userID: "admin-001"
EOF
# 初始化 Dex 数据库
echo "正在初始化 Dex 数据库..."
docker run --rm \
-v $(pwd)/config/dex.config.yml:/etc/dex/config.yml \
-v dex-data:/var/lib/dex \
dexidp/dex:v2.38.0 \
serve /etc/dex/config.yml &
DEX_PID=$!
# 等待 Dex 启动
echo "等待 Dex 启动..."
sleep 10
# 停止临时 Dex 进程
kill $DEX_PID 2>/dev/null || true
echo "Dex 用户初始化完成!"
echo "管理员账户:"
echo " 用户名: ${ADMIN_USERNAME:-admin}"
echo " 邮箱: ${ADMIN_EMAIL:-admin@example.com}"
echo " 密码: $ADMIN_PASSWORD"
echo ""
echo "请使用以下凭据登录:"
echo " Dex UI: http://localhost:5556"
echo " 用户名: ${ADMIN_USERNAME:-admin}"
echo " 密码: $ADMIN_PASSWORD"