Files
prompt-optimizer/docker/generate-auth.sh
T
linshen d849024cb1 feat(docker): 添加基本认证功能和环境变量配置
- 在 Dockerfile 中添加 htpasswd 工具和 dos2unix
- 更新 docker-compose.yml 文件以支持 ACCESS_USERNAME 和 ACCESS_PASSWORD 环境变量
- 修改 dev.md 和 README 文件,增加访问密码配置说明
- 更新 Nginx 配置以引入基本认证
- 将版本号更新至 1.0.6
2025-05-28 23:18:23 +08:00

46 lines
1.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
# 检查是否设置了ACCESS_PASSWORD环境变量
if [ -n "$ACCESS_PASSWORD" ]; then
# 检查密码是否为空字符串
if [ "$ACCESS_PASSWORD" = "" ]; then
echo "警告: 设置了空密码,不安全。不启用Basic认证"
# 创建空的auth配置(禁用认证)
cat > /etc/nginx/conf.d/auth.conf << EOF
# Basic认证未启用 - 密码为空
auth_basic off;
EOF
exit 0
fi
echo "启用Basic认证..."
# 创建认证文件目录
mkdir -p /etc/nginx/auth
# 确定用户名(如果未设置ACCESS_USERNAME则使用默认值"admin")
USERNAME=${ACCESS_USERNAME:-admin}
# 生成htpasswd文件 - 使用printf避免特殊字符问题
printf '%s' "$ACCESS_PASSWORD" | htpasswd -i -c /etc/nginx/auth/.htpasswd "$USERNAME"
# 容器环境中简化权限管理 - 确保所有人都可读取认证文件
chmod -R a+r /etc/nginx/auth
# 创建启用认证的配置
cat > /etc/nginx/conf.d/auth.conf << EOF
# 此文件由generate-auth.sh脚本自动生成
auth_basic "请输入访问凭据 (Please enter your credentials)";
auth_basic_user_file /etc/nginx/auth/.htpasswd;
EOF
echo "Basic认证已配置,用户名: $USERNAME"
else
echo "未设置ACCESS_PASSWORD环境变量,不启用Basic认证"
# 创建空的auth配置(禁用认证)
cat > /etc/nginx/conf.d/auth.conf << EOF
# Basic认证未启用
auth_basic off;
EOF
fi