Initial commit - 玩玩云文件管理系统 v1.0.0
- 完整的前后端代码 - 支持本地存储和SFTP存储 - 文件分享功能 - 上传工具源代码 - 完整的部署文档 - Nginx配置模板 技术栈: - 后端: Node.js + Express + SQLite - 前端: Vue.js 3 + Axios - 存储: 本地存储 / SFTP远程存储
This commit is contained in:
244
README.md
Normal file
244
README.md
Normal file
@@ -0,0 +1,244 @@
|
||||
# 玩玩云 - 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!
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
本项目仅供学习和个人使用。
|
||||
|
||||
---
|
||||
|
||||
**玩玩云** - 让文件管理更简单 ☁️
|
||||
Reference in New Issue
Block a user