# 玩玩云 - Web SFTP 文件管理系统 > 一个基于Web的SFTP文件管理系统,提供文件上传、下载、分享等功能,支持多用户管理。 ## 📋 项目简介 玩玩云是一个现代化的Web文件管理系统,让您可以通过浏览器管理SFTP服务器上的文件。系统支持文件的上传、下载、重命名、删除、分享等操作,并提供桌面端上传工具,方便快速上传大文件。 ### 主要特性 - ✅ **文件管理** - 浏览、上传、下载、重命名、删除文件 - ✅ **文件分享** - 生成分享链接,支持密码保护和有效期设置 - ✅ **多用户系统** - 用户注册、登录、权限管理 - ✅ **桌面上传工具** - 拖拽上传,实时显示进度 - ✅ **流式下载** - 服务器零存储,纯中转下载 - ✅ **管理员功能** - 用户管理、文件审查、系统设置 - ✅ **Docker部署** - 一键部署,易于维护 ## 🛠️ 技术栈 ### 前端 - **Vue.js 3** - 渐进式JavaScript框架 - **Axios** - HTTP请求库 - **Font Awesome** - 图标库 ### 后端 - **Node.js 20** - JavaScript运行时 - **Express** - Web应用框架 - **better-sqlite3** - 轻量级数据库 - **ssh2-sftp-client** - SFTP客户端 - **JWT** - 用户认证 ### 部署 - **Docker** - 容器化 - **Docker Compose** - 容器编排 - **Nginx** - 反向代理 ## 🚀 快速开始 ### 环境要求 - **Docker**: 20.10.0+ - **Docker Compose**: 2.0.0+ - **操作系统**: Linux (Ubuntu 20.04+ / Debian 10+ / CentOS 7+) - **内存**: 最低 1GB RAM(推荐 2GB+) ### 方法1: 一键部署(推荐) ```bash # 1. 上传或克隆项目 cd /var/www # 将项目文件上传到此目录 # 2. 进入项目目录 cd ftp-web-manager # 3. 一键部署 bash deploy.sh ``` deploy.sh脚本会自动: - 检查Docker和Docker Compose环境 - 创建必要的目录 - 构建并启动所有服务 - 显示访问信息和默认账号 ### 方法2: 手动部署 ```bash # 1. 进入项目目录 cd /var/www/ftp-web-manager # 2. 创建必要的目录 mkdir -p certbot/conf certbot/www backend/uploads # 3. 构建并启动服务 docker-compose up --build -d # 4. 查看日志 docker-compose logs -f ``` ### 访问系统 部署完成后: - **前端地址**: http://服务器IP:8080 - **后端API**: http://服务器IP:40001 - **默认管理员账号**: - 用户名: `admin` - 密码: `admin123` - ⚠️ **请立即登录并修改密码!** ## 📖 使用教程 ### 配置SFTP服务器 首次使用需要配置SFTP连接信息: 1. 登录后点击右上角用户菜单 2. 选择"设置" 3. 填写SFTP配置: - **SFTP主机**: 您的SFTP服务器IP - **SFTP端口**: 默认22 - **SFTP用户名**: SFTP账号 - **SFTP密码**: SFTP密码 - **HTTP下载基础URL**(可选): 如果有HTTP直接下载地址 4. 点击"保存配置" ### 文件管理 - **浏览文件**: 点击文件夹图标进入子目录 - **上传文件**: 点击"上传文件"按钮选择本地文件 - **下载文件**: 点击文件行的下载按钮 - **重命名**: 点击"重命名"按钮修改文件名 - **删除**: 点击"删除"按钮删除文件 ### 文件分享 1. 点击文件行的"分享"按钮 2. 设置分享选项: - **分享密码**(可选) - **有效期**(可选) 3. 复制分享链接发送给他人 ## 🔧 维护操作 ### 查看日志 ```bash # 查看所有日志 docker-compose logs -f # 查看后端日志 docker-compose logs -f backend ``` ### 重启服务 ```bash # 重启所有容器 docker-compose restart # 重启指定容器 docker-compose restart backend ``` ### 停止服务 ```bash docker-compose down ``` ### 备份数据 ```bash # 备份数据库 cp backend/ftp-manager.db backup/ftp-manager.db.$(date +%Y%m%d) # 备份整个项目 tar -czf backup/wanwanyun-$(date +%Y%m%d).tar.gz . ``` ### 更新代码 ```bash # 拉取最新代码 git pull # 重新构建并重启 docker-compose up --build -d ``` ## 🔐 安全建议 1. **修改默认密码**: 首次登录后立即修改admin密码 2. **使用HTTPS**: 配置SSL证书,使用HTTPS访问 3. **修改JWT密钥**: 在backend/.env文件中设置随机的JWT_SECRET 4. **定期备份**: 定期备份数据库文件 5. **限制端口**: 不要对外暴露40001端口,只通过Nginx访问 ## ❓ 常见问题 ### Docker容器启动失败 ```bash # 查看日志 docker-compose logs backend # 重新构建 docker-compose down docker-compose up --build -d ``` ### 上传失败提示权限错误 检查SFTP服务器目录权限,确保上传目录有写权限。 ### 分享链接无法访问 检查nginx配置和防火墙设置,确保端口8080可访问。 ## 📁 项目结构 ``` ftp-web-manager/ ├── backend/ # 后端代码 │ ├── server.js # 主服务器文件 │ ├── database.js # 数据库操作 │ ├── auth.js # 认证中间件 │ ├── Dockerfile # Docker镜像 │ └── package.json # 依赖配置 │ ├── frontend/ # 前端代码 │ ├── index.html # 登录页面 │ ├── app.html # 主应用页面 │ ├── share.html # 分享页面 │ └── libs/ # 第三方库 │ ├── nginx/ # Nginx配置 │ └── nginx.conf # 配置文件 │ ├── upload-tool/ # 上传工具 │ ├── upload_tool.py # Python源码 │ └── build.bat # 打包脚本 │ ├── docker-compose.yml # Docker编排 ├── deploy.sh # 一键部署脚本 ├── .gitignore # Git忽略文件 └── README.md # 本文件 ``` ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ## 📄 许可证 本项目仅供学习和个人使用。 --- **玩玩云** - 让文件管理更简单 ☁️