# 极简App分发系统
一个纯前端实现的App分发系统,支持管理员登录、App上传和无需登录下载功能。
## 功能特性
- ✅ 管理员登录(密码:admin123)
- ✅ App上传(支持.apk、.ipa、.zip文件,最大1GB)
- ✅ App删除功能
- ✅ 无需登录即可下载
- ✅ 响应式设计
- ✅ 纯前端实现,无框架依赖
- ✅ 支持后端API扩展
## 快速开始
### 1. 启动后端服务
```bash
cd background
go run main.go
```
后端服务将在 http://localhost:6903 上运行
### 2. 启动前端服务
```bash
# 使用Python启动简单HTTP服务器
python -m http.server 8000
# 或使用Node.js
npx http-server -p 8000
```
访问地址:http://localhost:8000
#### 后端要求
- 端口:6903 (修改自默认的3000端口)
- 无需鉴权
- 支持CORS跨域请求
#### API接口
| 方法 | 路径 | 描述 | 请求体 | 响应 |
|------|------|------|--------|------|
| GET | /api/apps | 获取App列表 | - | `[{id: string, name: string, fileName: string, date: string, filePath: string}]` |
| POST | /api/apps | 上传App | multipart/form-data
`name`: App名称
`file`: 文件 | `{success: boolean, message?: string}` |
| DELETE | /api/apps/:id | 删除指定App | - | `{success: boolean, message?: string}` |
| GET | /api/apps/:id | 下载指定App | - | 文件流 |
| GET | /api/docs | 获取文档内容 | - | `[{docBody: string}]` |
## 技术栈
- HTML5
- CSS3
- JavaScript (ES6+)
- Go (后端)
- Gin (Web框架)
## 文件结构
```
├── background/ # 后端目录
│ ├── main.go # 后端主程序
│ ├── apps.json # 应用数据持久化文件
│ ├── files/ # 存储上传的文件
│ └── docs/ # 存储文档文件
├── index.html # 主页面
├── style.css # 样式文件
├── script.js # 核心逻辑
└── README.md # 说明文档
```
## 使用说明
### 管理员登录
1. 在登录框中输入密码:admin123
2. 点击"登录"按钮
3. 成功后将显示上传区域
### 上传App
1. 登录成功后,在上传区域填写App名称(可选,不填写则使用文件名作为默认值)
2. 选择要上传的文件(.apk、.ipa、.zip)
3. 点击"上传"按钮
4. 上传成功后,App将显示在下载列表中
### 下载App
1. 在下载区域找到要下载的App
2. 点击"下载"按钮即可开始下载
### 删除App
1. 点击App列表中的"删除"按钮
2. 在确认对话框中点击"确定"
3. App将从列表和服务器中被删除
## 自定义配置
### 修改管理员密码
在 `script.js` 中修改:
```javascript
const ADMIN_PASSWORD = 'your_new_password';
```
### 修改后端API地址
在 `script.js` 中修改:
```javascript
const API_BASE_URL = 'http://your-backend-url:port/api';
```
### 修改后端端口
在 `background/main.go` 中修改:
```go
port = ":6903" // 修改为你想要的端口
```
## 数据持久化
- 应用列表数据保存在 `background/apps.json` 文件中
- 上传的文件保存在 `background/files/` 目录中
- 文档内容保存在 `background/docs/` 目录中
## 注意事项
1. 默认使用localStorage存储登录状态,数据只保存在浏览器中
2. 应用数据持久化在后端的apps.json文件中
3. 生产环境中请修改默认密码
4. 建议添加HTTPS支持,尤其是在公网环境中
## 许可证
MIT