Files
vue-driven-cloud-storage/README.md
WanWanYun 0f133962dc Initial commit - 玩玩云文件管理系统 v1.0.0
- 完整的前后端代码
- 支持本地存储和SFTP存储
- 文件分享功能
- 上传工具源代码
- 完整的部署文档
- Nginx配置模板

技术栈:
- 后端: Node.js + Express + SQLite
- 前端: Vue.js 3 + Axios
- 存储: 本地存储 / SFTP远程存储
2025-11-10 21:50:16 +08:00

245 lines
5.7 KiB
Markdown
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.
# 玩玩云 - 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
## 📄 许可证
本项目仅供学习和个人使用。
---
**玩玩云** - 让文件管理更简单 ☁️