mirror of
https://github.com/linshenkx/prompt-optimizer.git
synced 2026-05-06 21:50:27 +08:00
feat(docker): 添加基本认证功能和环境变量配置
- 在 Dockerfile 中添加 htpasswd 工具和 dos2unix - 更新 docker-compose.yml 文件以支持 ACCESS_USERNAME 和 ACCESS_PASSWORD 环境变量 - 修改 dev.md 和 README 文件,增加访问密码配置说明 - 更新 Nginx 配置以引入基本认证 - 将版本号更新至 1.0.6
This commit is contained in:
46
docker/generate-auth.sh
Normal file
46
docker/generate-auth.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/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
|
||||
@@ -38,6 +38,9 @@ server {
|
||||
|
||||
# SPA应用路由支持
|
||||
location / {
|
||||
# 引入Basic认证配置
|
||||
include /etc/nginx/conf.d/auth.conf;
|
||||
|
||||
try_files $uri $uri/ /index.html;
|
||||
expires -1;
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate";
|
||||
|
||||
Reference in New Issue
Block a user