Files
ushare/README.md
loveuer 909a016a44
Some checks failed
/ build ushare (push) Has been cancelled
/ clean (push) Has been cancelled
docs: add comprehensive README
- Add project introduction and features
- Add quick start guide (development and production)
- Add configuration documentation
- Add usage instructions
- Add mobile support section
- Add development guide and directory structure
2026-01-18 17:52:39 +08:00

169 lines
3.6 KiB
Markdown
Raw Permalink 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.
# UShare
一个简单易用的文件分享工具,支持大文件分片上传下载,以及局域网内 P2P 文件分享。
## 功能特性
- 📁 大文件分片上传下载
- 🌐 网页端文件分享
- 🏠 局域网 P2P 文件分享WebRTC
- 📱 响应式设计,支持移动端
- 🔐 简单的用户认证
- 🚀 单一二进制,开箱即用
- 🐳 Docker 支持
## 快速开始
### 开发模式
```bash
# 克隆仓库
git clone https://github.com/loveuer/ushare.git
cd ushare
# 启动开发服务器
./dev.sh
```
开发服务器会同时启动后端http://0.0.0.0:9119和前端http://0.0.0.0:5173前端支持热重载。
### 生产模式
#### 使用预编译二进制
从 [Releases](https://github.com/loveuer/ushare/releases) 下载对应平台的二进制文件。
```bash
# Linux amd64
wget https://github.com/loveuer/ushare/releases/download/v0.3.2/ushare-linux-amd64
chmod +x ushare-linux-amd64
# 运行
./ushare-linux-amd64 -data ./data
```
#### 从源码构建
```bash
# 构建单一二进制(包含嵌入的前端)
./make.sh
# 运行
./dist/ushare -data ./data
```
#### Docker 部署
```bash
docker build -t ushare:latest .
docker run -d -p 80:80 -v $(pwd)/data:/data ushare:latest
```
## 配置
### 命令行参数
```bash
ushare [options]
Options:
-debug 启用调试模式
-address string 监听地址 (default "0.0.0.0:9119")
-data string 数据目录 (default "/data")
-clean int 文件清理周期单位小时0 表示不自动清理 (default 24)
```
### 环境变量
| 环境变量 | 说明 | 默认值 |
|---------|------|--------|
| `USHARE_USERNAME` | 用户名 | `admin` |
| `USHARE_PASSWORD` | 密码 | `ushare@123` |
#### 示例
```bash
# 使用默认凭据admin / ushare@123
./ushare -data ./data
# 使用自定义凭据
export USHARE_USERNAME=myuser
export USHARE_PASSWORD=mypass
./ushare -data ./data
```
## 使用说明
### 文件分享
1. 访问 http://localhost:9119/share
2. 点击"选择文件"选择要上传的文件
3. 点击"上传文件",等待上传完成
4. 复制生成的下载码分享给他人
### 文件下载
1. 访问 http://localhost:9119/share
2. 在"获取文件"区域输入下载码
3. 点击"获取文件"下载文件
### 局域网 P2P 分享
1. 访问 http://localhost:9119
2. 自动注册到局域网设备列表
3. 选择要分享的设备,建立 P2P 连接
4. 开始文件传输
## 移动端支持
- 响应式设计,自动适配手机、平板等设备
- 移动端≤768px采用垂直布局优化触摸操作
- 按钮尺寸优化,适合手指点击
## 开发
### 目录结构
```
ushare/
├── internal/ # 后端代码
│ ├── api/ # HTTP API 路由
│ ├── controller/ # 业务逻辑
│ ├── handler/ # 请求处理器
│ ├── model/ # 数据模型
│ ├── opt/ # 配置管理
│ └── pkg/ # 工具包
├── frontend/ # 前端代码
│ └── src/
│ ├── api/ # API 调用
│ ├── component/ # UI 组件
│ ├── hook/ # 自定义 Hooks
│ ├── page/ # 页面组件
│ └── store/ # 状态管理
├── .github/workflows/ # GitHub Actions
├── dist/ # 构建输出(.gitignore
└── data/ # 数据目录(.gitignore
```
### 构建
```bash
# 开发构建(前后端分离)
./dev.sh
# 生产构建(单一二进制)
./make.sh
```
### 代码风格
请参考 [AGENTS.md](./AGENTS.md) 了解代码风格指南。
## License
MIT License
## 贡献
欢迎提交 Issue 和 Pull Request