Spaces:
Running
Running
| FROM ymlisoft/kkfileview | |
| USER root | |
| # 安装 Nginx、xvfb 和密码工具 | |
| RUN apt-get update && apt-get install -y \ | |
| nginx \ | |
| apache2-utils \ | |
| xvfb \ | |
| && rm -rf /var/lib/apt/lists/* | |
| ENV SERVER_PORT=8012 | |
| ENV KKFILEVIEW_SECURITY_TRUST_HOST=default | |
| ENV AUTH_USERNAME=admin | |
| ENV AUTH_PASSWORD=123456 | |
| # 配置 Nginx | |
| RUN rm -f /etc/nginx/sites-enabled/default && \ | |
| printf 'server {\n\ | |
| listen 7860;\n\ | |
| server_name _;\n\ | |
| \n\ | |
| # 密码保护\n\ | |
| auth_basic "kkFileView Access";\n\ | |
| auth_basic_user_file /etc/nginx/.htpasswd;\n\ | |
| \n\ | |
| location / {\n\ | |
| proxy_pass http://127.0.0.1:8012;\n\ | |
| proxy_set_header Host $host;\n\ | |
| proxy_set_header X-Real-IP $remote_addr;\n\ | |
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\ | |
| proxy_set_header X-Forwarded-Proto $scheme;\n\ | |
| proxy_buffering off;\n\ | |
| }\n\ | |
| }\n' > /etc/nginx/sites-available/kkfileview && \ | |
| ln -s /etc/nginx/sites-available/kkfileview /etc/nginx/sites-enabled/ | |
| # 启动脚本 | |
| RUN printf '#!/bin/bash\n\ | |
| set -e\n\ | |
| \n\ | |
| echo "=== kkFileView with Password Protection ==="\n\ | |
| echo ""\n\ | |
| \n\ | |
| # 创建密码文件\n\ | |
| echo "Creating password file..."\n\ | |
| htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\ | |
| echo "✓ Username: $AUTH_USERNAME"\n\ | |
| echo "✓ Password: [HIDDEN]"\n\ | |
| echo ""\n\ | |
| \n\ | |
| # 启动 Xvfb\n\ | |
| echo "Starting Xvfb..."\n\ | |
| Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\ | |
| export DISPLAY=:99\n\ | |
| sleep 2\n\ | |
| echo "✓ Xvfb started"\n\ | |
| echo ""\n\ | |
| \n\ | |
| # 启动 kkFileView(后台运行在 8012)\n\ | |
| echo "Starting kkFileView on port 8012..."\n\ | |
| /opt/kkFileView/bin/kkFileView --server.port=8012 >/tmp/kkfileview.log 2>&1 &\n\ | |
| KKFILEVIEW_PID=$!\n\ | |
| echo "✓ kkFileView PID: $KKFILEVIEW_PID"\n\ | |
| \n\ | |
| # 等待 kkFileView 启动\n\ | |
| echo "Waiting for kkFileView to be ready..."\n\ | |
| sleep 10\n\ | |
| \n\ | |
| # 启动 Nginx)\n\ | |
| echo "Starting Nginx on port 7860..."\n\ | |
| echo "✓ Ready! Access with username and password"\n\ | |
| echo ""\n\ | |
| nginx -g "daemon off;"\n' > /start.sh && \ | |
| chmod +x /start.sh | |
| EXPOSE 7860 | |
| CMD ["/start.sh"] | |