定时消耗服务器带宽,像潮汐一样让流量定时涨落。
# 构建
go build -o tideflow .
# 运行
./tideflow
打开 http://localhost:8000 ,默认密码 admin。
首次启动会自动添加 3 个测速下载源。
# 构建运行
docker-compose up -d
# 或直接用 Docker
docker run -d \
-p 8000:8000 \
-v ./data:/app/data \
-e ADMIN_PASSWORD=admin \
aierliz/tideflow:latest
镜像支持 amd64 / arm64。
Docker Hub: aierliz/tideflow
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /health | 健康检查 |
| GET | /api/version | 版本号 |
| POST | /api/auth | 密码验证 |
| GET/PUT | /api/settings | 全局设置 |
| GET | /api/stats | 实时状态 |
| GET | /api/stats/traffic | 流量历史 |
| GET/POST/PUT/DELETE | /api/sources | 下载源 CRUD |
| POST | /api/sources/test | 测试 URL 可达性 |
| POST | /api/sources/clear-cooldowns | 清除冷却 |
| POST | /api/downloads/pause | 暂停下载 |
| POST | /api/downloads/resume | 恢复下载 |
| 设置 | 默认值 | 说明 |
|---|---|---|
traffic_cap_enabled | false | 启用流量上限 |
traffic_cap_bytes | 107374182400 | 上限字节数(100GB) |
traffic_cap_period | daily | 重置周期:daily / weekly / monthly |
traffic_cap_reset_hour | 0 | 重置时刻(0-23) |
traffic_cap_reset_weekday | 1 | 每周重置星期(1=周一…7=周日) |
traffic_cap_reset_day | 1 | 每月重置日期(1-28) |
time_window_enabled | false | 启用下载时段 |
time_window_start | 00:00 | 时段开始 |
time_window_end | 23:59 | 时段结束 |
default_max_speed | 0 | 单任务限速(0=不限,支持 10M/512K 格式) |
max_concurrent | 3 | 最大并发数 |
# 依赖
go mod tidy
# 构建
go build -o tideflow .
# 带版本信息构建
VERSION=$(cat VERSION)
go build -ldflags="-s -w \
-X 'main.version=${VERSION}' \
-X 'main.commitSHA=$(git rev-parse --short HEAD)' \
-X 'main.buildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)'" \
-o tideflow .
main.go # 入口,路由注册
internal/
├── config/config.go # 配置常量
├── storage/ # JSON 文件存储
│ ├── store.go # 内存缓存 + 持久化
│ └── models.go # 存储层数据类型
├── models/models.go # API 数据模型
├── enforcer/enforcer.go # 带宽消耗引擎(goroutine)
└── handlers/ # HTTP 处理器
├── auth.go
├── downloads.go
├── sources.go
├── stats.go
└── settings.go
app/
├── static/ # 前端静态资源
└── templates/index.html # Vue.js SPA
MIT
Content type
Image
Digest
sha256:9383f8901…
Size
5.1 MB
Last updated
3 months ago
docker pull aierliz/tideflow