From 9404ed4a1219da5f5192f7562f20d514cfb75087 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 6 Jan 2026 09:17:34 +0000 Subject: [PATCH] Complete overwrite: Sync with latest UI and WebDAV logic --- Dockerfile | 12 +- deploy.sh | 441 ------------------------------------------------ docker-build.sh | 2 +- footer.html | 369 ---------------------------------------- header.html | 39 ----- nginx.conf | 53 +++--- ui.html | 220 ++++++++++++++++++++++++ 7 files changed, 248 insertions(+), 888 deletions(-) delete mode 100755 deploy.sh delete mode 100644 footer.html delete mode 100644 header.html create mode 100644 ui.html diff --git a/Dockerfile b/Dockerfile index 5e9ec17..e595d9c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ndns-nginx:v1.0.1 +FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest # 设置维护者信息 LABEL maintainer="autoindex" @@ -7,10 +7,10 @@ LABEL description="美化版Nginx Autoindex文件列表系统" # 创建必要目录 RUN mkdir -p /var/www/autoindex /var/www/files -# 复制自定义HTML文件 -COPY header.html /var/www/autoindex/header.html -COPY footer.html /var/www/autoindex/footer.html +RUN sed -i 's/user nginx;/user root;/g' /etc/nginx/nginx.conf +# 复制自定义HTML文件 +COPY ui.html /var/www/autoindex/ui.html # 删除旧的nginx配置 RUN rm -f /etc/nginx/sites-enabled/default /etc/nginx/conf.d/default.conf @@ -22,10 +22,6 @@ RUN chmod 755 /var/www/autoindex && \ chmod 644 /var/www/autoindex/*.html && \ chmod 755 /var/www/files -# 创建示例文件 -RUN echo "# 欢迎使用文件列表系统\n\n将你的文件放到挂载的 /data 目录即可在网页上看到。\n\n## 功能特点\n- 搜索文件\n- 复制文件链接\n- 美观的界面\n- 文件/文件夹颜色区分" > /var/www/files/README.md && \ - mkdir -p /var/www/files/documents /var/www/files/images /var/www/files/downloads - # 暴露80端口 EXPOSE 80 diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index e1db66f..0000000 --- a/deploy.sh +++ /dev/null @@ -1,441 +0,0 @@ -#!/bin/bash - -# Nginx Autoindex 文件列表部署脚本 -# 自动部署美化版的nginx文件列表系统 - -set -e - -echo "================================" -echo "Nginx Autoindex 文件列表部署脚本" -echo "================================" -echo "" - -# 检测nginx是否安装 -echo "检查nginx是否已安装..." -if ! command -v nginx &> /dev/null; then - echo "❌ 错误: 未检测到nginx" - echo "请先安装nginx: sudo apt-get install nginx" - exit 1 -fi - -echo "✓ nginx已安装: $(nginx -v 2>&1)" -echo "" - -# 设置变量 -AUTOINDEX_DIR="/var/www/autoindex" -FILES_DIR="/var/www/files" -NGINX_CONFIG="/etc/nginx/sites-available/autoindex-files" -NGINX_ENABLED="/etc/nginx/sites-enabled/autoindex-files" - -# 检测是否为root用户 -if [ "$EUID" -ne 0 ]; then - echo "❌ 请使用root权限运行此脚本: sudo ./deploy.sh" - exit 1 -fi - -echo "开始部署..." -echo "" - -# 1. 创建目录 -echo "1. 创建必要目录..." -mkdir -p "$AUTOINDEX_DIR" -mkdir -p "$FILES_DIR" -echo "✓ 目录创建完成" -echo "" - -# 2. 复制header.html -echo "2. 部署header.html..." -cat > "$AUTOINDEX_DIR/header.html" << 'EOF' - - -
-

📁 文件列表

-
-EOF -echo "✓ header.html部署完成" -echo "" - -# 3. 复制footer.html -echo "3. 部署footer.html..." -cat > "$AUTOINDEX_DIR/footer.html" << 'FOOTEREOF' - - -
-

由 nginx autoindex 提供支持

-
-FOOTEREOF -echo "✓ footer.html部署完成" -echo "" - -# 4. 创建nginx配置 -echo "4. 创建nginx配置..." -cat > "$NGINX_CONFIG" << 'EOF' -# nginx autoindex 美化配置 - -server { - listen 80; - server_name _; - - root /var/www/files; - charset utf-8; - - location / { - # 启用autoindex - autoindex on; - autoindex_exact_size off; # 显示KB/MB而不是字节 - autoindex_localtime on; # 使用本地时间 - autoindex_format html; - - # 注入自定义样式 - add_before_body /autoindex-header.html; - add_after_body /autoindex-footer.html; - } - - # 提供header文件 - location = /autoindex-header.html { - alias /var/www/autoindex/header.html; - } - - # 提供footer文件 - location = /autoindex-footer.html { - alias /var/www/autoindex/footer.html; - } - - # 禁止访问隐藏文件 - location ~ /\. { - deny all; - return 404; - } -} -EOF -echo "✓ nginx配置创建完成" -echo "" - -# 5. 启用配置 -echo "5. 启用nginx配置..." -# 删除默认配置 -if [ -f "/etc/nginx/sites-enabled/default" ]; then - rm -f /etc/nginx/sites-enabled/default - echo "✓ 已删除默认配置" -fi - -# 创建软链接 -ln -sf "$NGINX_CONFIG" "$NGINX_ENABLED" -echo "✓ 配置已启用" -echo "" - -# 6. 设置权限 -echo "6. 设置目录权限..." -chmod 755 "$AUTOINDEX_DIR" -chmod 644 "$AUTOINDEX_DIR"/*.html -chmod 755 "$FILES_DIR" -echo "✓ 权限设置完成" -echo "" - -# 7. 测试nginx配置 -echo "7. 测试nginx配置..." -if nginx -t 2>&1 | grep -q "successful"; then - echo "✓ nginx配置测试通过" -else - echo "❌ nginx配置测试失败" - nginx -t - exit 1 -fi -echo "" - -# 8. 重载nginx -echo "8. 重载nginx服务..." -systemctl reload nginx -echo "✓ nginx已重载" -echo "" - -# 9. 创建示例文件 -echo "9. 创建示例文件..." -cat > "$FILES_DIR/README.md" << 'EOF' -# 欢迎使用文件列表系统 - -这是一个美化版的nginx autoindex文件列表系统。 - -## 功能特点 -- 搜索文件 -- 复制文件链接 -- 美观的界面 -- 文件/文件夹颜色区分 - -将你的文件放到 /var/www/files 目录即可。 -EOF - -# 创建示例目录 -mkdir -p "$FILES_DIR/documents" -mkdir -p "$FILES_DIR/images" -mkdir -p "$FILES_DIR/downloads" - -echo "✓ 示例文件创建完成" -echo "" - -echo "================================" -echo "✅ 部署完成!" -echo "================================" -echo "" -echo "访问地址: http://$(hostname -I | awk '{print $1}')" -echo "" -echo "文件存放目录: $FILES_DIR" -echo "配置文件位置: $NGINX_CONFIG" -echo "" -echo "提示:" -echo "- 将文件放到 $FILES_DIR 即可在网页上看到" -echo "- 修改配置后运行: sudo systemctl reload nginx" -echo "" diff --git a/docker-build.sh b/docker-build.sh index de26116..4222c1f 100755 --- a/docker-build.sh +++ b/docker-build.sh @@ -19,7 +19,7 @@ echo "" # 镜像名称和版本 IMAGE_NAME="nginx-autoindex" -VERSION="1.0" +VERSION="2.0" # 构建镜像 echo "开始构建镜像..." diff --git a/footer.html b/footer.html deleted file mode 100644 index bf85074..0000000 --- a/footer.html +++ /dev/null @@ -1,369 +0,0 @@ - - -
-

由 nginx autoindex 提供支持

-
diff --git a/header.html b/header.html deleted file mode 100644 index ba304e8..0000000 --- a/header.html +++ /dev/null @@ -1,39 +0,0 @@ - - -
-

📁 文件列表

-
diff --git a/nginx.conf b/nginx.conf index 8d83596..25019a2 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,38 +1,31 @@ server { listen 80; server_name _; - - root /var/www/files; + root /var/www/files; # 确认这是你的文件存放目录 charset utf-8; - - # 禁用access log以提高性能(可选) - # access_log off; - + + location = /_ui_injection.html { + internal; + alias /var/www/autoindex/ui.html; + } + location / { - # 启用autoindex autoindex on; - autoindex_exact_size off; # 显示KB/MB而不是字节 - autoindex_localtime on; # 使用本地时间 - autoindex_format html; - - # 注入自定义样式 - add_before_body /autoindex-header.html; - add_after_body /autoindex-footer.html; - } - - # 提供header文件 - location = /autoindex-header.html { - alias /var/www/autoindex/header.html; - } - - # 提供footer文件 - location = /autoindex-footer.html { - alias /var/www/autoindex/footer.html; - } - - # 禁止访问隐藏文件 - location ~ /\. { - deny all; - return 404; + autoindex_exact_size off; + autoindex_localtime on; + add_after_body /_ui_injection.html; + + # WebDAV 核心功能 + dav_methods PUT DELETE MKCOL COPY MOVE; + create_full_put_path on; + client_max_body_size 0; # 允许大文件上传 + dav_access user:rw group:rw all:rw; # 核心:解决权限控制 + + # 跨域设置 + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, MKCOL, COPY, MOVE, PROPFIND' always; + add_header 'Access-Control-Allow-Headers' '*' always; + if ($request_method = 'OPTIONS') { return 204; } } } + diff --git a/ui.html b/ui.html new file mode 100644 index 0000000..b477268 --- /dev/null +++ b/ui.html @@ -0,0 +1,220 @@ + + + + + + + + +
+
+

📂 文件列表 /

+
+ + + +
+
+ + + +
+
+
名称
+
大小
+
修改时间
+
操作
+
+
+
+
+ +
提示信息
+ + + +