2.0.0 Beta : Self-hosted Release
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
# YRTV 2.0.0 Beta
|
||||
# YRTV 2.0.0 Beta · Superjacky6 Self-hosted Edition
|
||||
|
||||
> Created by **Superjacky6** · jacky / jk / yr / jacky0987
|
||||
|
||||
YRTV 是面向固定 CS2 战队的私人数据站。它不是公共玩家排行榜,而是让队员拥有类似职业选手的个人主页,并为战队提供比赛档案、队内比较、阵容分析、对手情报和战术工具。
|
||||
|
||||
@@ -27,7 +29,7 @@ YRTV 是面向固定 CS2 战队的私人数据站。它不是公共玩家排行
|
||||
- 111 个日/周/月/季/年度奖项
|
||||
- 19 条正面/负面/趣味数据发现
|
||||
- 36 枚地图与 ELO 分段勋章
|
||||
- 36 项自动化测试通过
|
||||
- 40 项自动化测试通过
|
||||
- 43 项数据完整性检查通过
|
||||
|
||||
数据规模会随导入变化,Admin 数据完整性中心显示的结果是运行时事实。
|
||||
@@ -102,7 +104,40 @@ YRTV 是面向固定 CS2 战队的私人数据站。它不是公共玩家排行
|
||||
- L1/L2/L3/Web 文件状态和回滚快照可视化
|
||||
- 后台写操作使用 CSRF 防护
|
||||
|
||||
## 快速开始
|
||||
## Docker 自托管
|
||||
|
||||
推荐给其他战队使用 Docker Compose:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# 修改 SECRET_KEY、ADMIN_TOKEN、VIEWER_TOKEN
|
||||
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
默认访问 `http://127.0.0.1:5001`。首次空安装:
|
||||
|
||||
1. 使用 `.env` 中的 `ADMIN_TOKEN` 登录 `/admin/`。
|
||||
2. 首次启动向导创建战队和 roster。
|
||||
3. 从 `/admin/import-match` 上传自己的 `iframe_network.json`。
|
||||
|
||||
运行数据保存在 `YRTV_DATA_PATH`,默认是 Git 忽略的
|
||||
`./runtime-data`。`git pull` 或重建镜像不会覆盖该目录。
|
||||
|
||||
### 迁移当前数据
|
||||
|
||||
当前仓库内已有数据迁移到外置目录:
|
||||
|
||||
```bash
|
||||
make prepare-data
|
||||
cp .env.example .env
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
迁移使用 SQLite Backup API,不修改源数据库,并生成
|
||||
`runtime-data/migration-manifest.json`、SHA256 和 `quick_check` 结果。
|
||||
|
||||
## Python 开发模式
|
||||
|
||||
环境要求:
|
||||
|
||||
@@ -140,6 +175,10 @@ make run
|
||||
make run # 启动 Flask
|
||||
make check # 编译检查 + 自动化测试
|
||||
make pipeline # 备份后执行完整 L1 -> L2 -> L3
|
||||
make bootstrap # 初始化空运行时数据库
|
||||
make prepare-data # 复制现有数据到 runtime-data
|
||||
make docker-up # 构建并启动容器
|
||||
make docker-logs # 查看容器日志
|
||||
|
||||
make l1 # 仅构建 L1
|
||||
make l2 # 仅构建 L2
|
||||
@@ -242,6 +281,8 @@ Flask services and player profiles
|
||||
## 数据库治理
|
||||
|
||||
- 所有运行路径集中定义在 `database/paths.py`
|
||||
- `YRTV_DATA_DIR` 可将数据库、备份、锁和导入文件移出代码仓库
|
||||
- 未设置 `YRTV_DATA_DIR` 时继续兼容原 `database/` 数据路径
|
||||
- 完整编排入口为 `database/pipeline.py`
|
||||
- 同一时间只允许一个 pipeline
|
||||
- Pipeline 运行前备份 L1/L2/L3
|
||||
@@ -252,6 +293,24 @@ Flask services and player profiles
|
||||
- 高频玩家历史、Party、事件和经济查询具有专用索引
|
||||
- 数据库和目录规则详见 `database/README.md`
|
||||
|
||||
## 访问模式
|
||||
|
||||
- `SITE_VISIBILITY=public`:前台公开,Admin 仍需令牌。
|
||||
- `SITE_VISIBILITY=private`:前台需要 `VIEWER_TOKEN`。
|
||||
- `/healthz` 始终开放给 Docker 和反向代理健康检查。
|
||||
- 后台写操作具有 CSRF 防护。
|
||||
|
||||
Docker 示例默认使用 `private`。
|
||||
|
||||
## 品牌与许可证
|
||||
|
||||
- 主品牌:`Superjacky6`
|
||||
- 项目签名:`jacky / jk / yr / jacky0987`
|
||||
- 页面、报告、后台、元数据、CLI 和容器镜像保留品牌署名
|
||||
- 比赛事实和统计指标中不写入水印
|
||||
- 许可证:AGPL-3.0-or-later
|
||||
- 署名规则:`NOTICE.md`
|
||||
|
||||
## 数据质量
|
||||
|
||||
Admin 数据完整性中心检查:
|
||||
@@ -289,6 +348,8 @@ yrtv/
|
||||
│ ├── maintenance.py # 备份、恢复、健康检查
|
||||
│ ├── job_store.py # ETL 作业状态
|
||||
│ └── pipeline.py # 完整流水线
|
||||
├── docker/
|
||||
│ └── entrypoint.sh
|
||||
├── tests/ # 自动化测试
|
||||
├── utils/ # JSON 结构分析工具
|
||||
├── web/
|
||||
@@ -297,6 +358,9 @@ yrtv/
|
||||
│ ├── templates/
|
||||
│ └── static/
|
||||
├── Makefile
|
||||
├── Dockerfile
|
||||
├── docker-compose.yml
|
||||
├── .env.example
|
||||
├── requirements.txt
|
||||
└── wsgi.py
|
||||
```
|
||||
@@ -305,7 +369,7 @@ yrtv/
|
||||
|
||||
- 当前主要数据源为 5E iframe 网络响应。
|
||||
- 不包含自动网页下载器和 Demo parser。
|
||||
- 认证仍是单一 Admin Token,适合私人部署,不适合开放注册。
|
||||
- 支持独立 Viewer Token 和 Admin Token,但不提供开放注册或多用户权限系统。
|
||||
- SQLite 适合当前单战队规模,不面向高并发多租户。
|
||||
- 部分高级空间能力需要地图边界、路径和 Demo 数据,当前显示 `N/A`。
|
||||
- `StatsService` 仍保留部分兼容逻辑;新功能已拆入 Player Profile、Team Performance、Roster Version 等领域服务。
|
||||
|
||||
Reference in New Issue
Block a user