基于 Go + Gin + SQLite + React + Vite + shadcn/ui 的全栈项目。
backend: API 服务、任务调度、SQLite 持久化、SSE 推送frontend: 管理控制台(总览 / xxx.me列表 / 文件列表 / 任务列表 / 系统设置)docs: 产品与接口说明
cd backend
go mod tidy
go run ./cmd/server使用 air 热��载:
cd backend
air -c .air.toml默认监听 :8080。
可选环境变量:
APP_ADDRESS(默认:8080)APP_DB_PATH(默认./data/anime.db)APP_DOWNLOAD_DIR(默认./downloads)APP_ANIMELIST_URL(默认https://xxx.me/animelist.json)APP_PROXY_PROBE_URL(默认https://xxx.me)APP_SQLITE_BUSY_TIMEOUT_MS(默认5000)APP_SSE_HEARTBEAT_SEC(默认15)
cd frontend
pnpm install
pnpm dev默认请求后端 http://localhost:8080。
如果后端地址不同,设置:
VITE_API_BASE_URL=http://localhost:8080go test ./...
go build ./...pnpm lint
pnpm build- 统一 REST 响应
{code,message,data}(SSE 除外) - API 路由:目录、剧集、下载任务、文件列表、设置、SSE、健康检查
- SQLite 持久化与迁移、
WAL、busy_timeout - 任务状态机与乐观锁版本字段(
version) - 重启恢复:
running -> paused - 调度器并发控制(并发上调立即补位、下调自然收敛)
- 下载器:
*.part临时文件 + 原子重命名 + HTTP Range 断点续传 - 代理热更新:运行中任务切回队列并自动用新代理重连
- SSE:任务事件推送 + 15 秒心跳 +
Last-Event-ID历史补发 - 前端:sidebar-07 布局、统一
src/api.ts封装、任务乐观更新 + SSE 回写纠正
- 当前下载器支持直链
mp4。 - 若目标页面仅提供
m3u8,会返回明确错误(尚未内置 HLS 分片合并)。