refactor(storage): 数据卷路径由 vol2 迁移至 vol3 并同步编排与文档

This commit is contained in:
王磊
2026-10-14 23:27:39 +08:00
parent ce3bd6543b
commit 331d23f843
22 changed files with 99 additions and 83 deletions
+7 -7
View File
@@ -7,7 +7,7 @@
媒体库严格遵循统一的英文根目录与规范分类结构,禁止创建未约定的中文一级目录(如废弃的 `电视剧`、`电影`),禁止混入已废弃的分类(如废弃的 `anime`):
```text
/vol2/1000/media/library/
/vol3/1000/media/library/
├── movies/ # 电影库
│ ├── 华语电影/
│ ├── 外语电影/
@@ -26,12 +26,12 @@
| 环境变量标识 | 宿主机物理路径 | 容器内典型挂载点 | 说明 |
| :--- | :--- | :--- | :--- |
| `MEDIA_ROOT` | `/vol2/1000/media` | `/media` | 媒体总根目录 |
| `LIBRARY_ROOT` | `/vol2/1000/media/library` | `/media/library` | 媒体库根路径 |
| `DOWNLOAD_ROOT` | `/vol2/1000/media/downloads/pt` | `/media/downloads/pt` | PT 下载目录 |
| `CLOUD_ROOT` | `/vol2/1000/media/cloud` | `/media/cloud` / `/downloads` | 网盘直链下载与缓存目录 |
| `MUSIC_ROOT` | `/vol2/1000/media/library/music` | `/media/library/music` | 规范音乐库目录 |
| `PORN_ROOT` | `/vol2/1000/media/downloads/porn`| `/media/downloads/porn` | 成人媒体缓存 |
| `MEDIA_ROOT` | `/vol3/1000/media` | `/media` | 媒体总根目录 |
| `LIBRARY_ROOT` | `/vol3/1000/media/library` | `/media/library` | 媒体库根路径 |
| `DOWNLOAD_ROOT` | `/vol3/1000/media/downloads/pt` | `/media/downloads/pt` | PT 下载目录 |
| `CLOUD_ROOT` | `/vol3/1000/media/cloud` | `/media/cloud` / `/downloads` | 网盘直链下载与缓存目录 |
| `MUSIC_ROOT` | `/vol3/1000/media/library/music` | `/media/library/music` | 规范音乐库目录 |
| `PORN_ROOT` | `/vol3/1000/media/downloads/porn`| `/media/downloads/porn` | 成人媒体缓存 |
## 3. 权限与所有权规范 (PUID / PGID)
+9 -7
View File
@@ -5,13 +5,13 @@ PGID=1000
NETWORK_NAME=trim-default
# 媒体库路径
MEDIA_ROOT=/vol2/1000/media
LIBRARY_ROOT=/vol2/1000/media/library
DOWNLOAD_ROOT=/vol2/1000/media/downloads/pt
CACHE_ROOT=/vol2/1000/media/downloads/cache
PORN_ROOT=/vol2/1000/media/downloads/porn
MUSIC_ROOT=/vol2/1000/media/library/music
CLOUD_ROOT=/vol2/1000/media/cloud
MEDIA_ROOT=/vol3/1000/media
LIBRARY_ROOT=/vol3/1000/media/library
DOWNLOAD_ROOT=/vol3/1000/media/downloads/pt
CACHE_ROOT=/vol3/1000/media/downloads/cache
PORN_ROOT=/vol3/1000/media/downloads/porn
MUSIC_ROOT=/vol3/1000/media/library/music
CLOUD_ROOT=/vol3/1000/media/cloud
# 账户配置
ADMIN_USER=triplestone
@@ -36,3 +36,5 @@ IYUU_TOKEN=IYUU56916T13339629b3fcd0c58b2e51e250b7928b129f1663
# 网盘下载链路
ARIA2_SECRET=0L2TwPyQn0JYZ3JViBvKPT59
SECRET_KEY=7a26f1d83d847f7c73969bdfa0fbb1585e649e595e380f54dc9af58d52476425
+12 -11
View File
@@ -6,7 +6,7 @@
## 1. 项目定位与 Agent 角色定义
- **仓库路径**:`/vol1/1000/docker`
- **仓库路径**:`/vol4/1000/docker`
- **系统性质**:基于 Docker Compose 的自托管多媒体与私有云基础设施系统。
- **Agent 核心使命**:
作为本基础设施的专业 DevOps 运维与架构治理专家,确保服务的**高可用性、模块化隔离、数据一致性、路径与权限规范性以及绝对的凭据安全**。
@@ -31,7 +31,7 @@
## 3. 标准目录布局 (Directory Layout)
```text
/vol1/1000/docker/
/vol4/1000/docker/
├── .agents/ # 标准项目级 Agent 定制规范
│ ├── rules/ # 渐进式披露细分规则
│ │ ├── 01-architecture-compose.md # Compose 编排与服务分层规范
@@ -51,7 +51,7 @@
├── media-servers/ # 元数据处理层 (moviepilot, bonita) [danmu-api 已迁移至 Oracle ARM, music-tag-web 已被飞牛音乐替代下线;emby/jellyfin 已改由飞牛应用中心安装]
├── calibre-web/ # 电子书服务
├── development/ # 开发与代码管理服务 (gitea, sjzl)
├── uptime-kuma/ # 服务可用性监控 (Uptime Kuma, 端口 17110)
├── uptime-kuma/ # 服务可用性监控 (Uptime Kuma, 端口 17110) [已停用下线]
└── lucky/ # 反向代理与运维管理工具
```
@@ -77,6 +77,7 @@
| **PT 下载** | qBittorrent | 17030 | `http://192.168.68.168:17030` | BT/PT 任务下载 |
| **PT 下载** | Transmission | 17032 | `http://192.168.68.168:17032` | BT/PT 任务下载 |
| **网盘生态** | OpenList | 17081 | `http://192.168.68.168:17081` | 网盘挂载与目录浏览 |
| **网盘生态** | openlist-strm | 17088 | `http://192.168.68.168:17088` | STRM 生成与快照差分同步 |
| **网盘生态** | Aria2 | 17085 | `http://192.168.68.168:17085` | 直链下载 RPC 接口 |
| **图书管理** | Calibre-Web | 17090 | `http://192.168.68.168:17090` | 电子书库管理 |
| **开发服务** | Gitea | 17100 | `http://192.168.68.168:17100` | 私有 Git 服务 |
@@ -86,10 +87,10 @@
## 5. 存储架构与媒体库规范
### 5.1 媒体库结构规范 (`/vol2/1000/media/library`)
### 5.1 媒体库结构规范 (`/vol3/1000/media/library`)
必须严格保持以下**规范英文子目录**,严禁产生未约定的中文一级目录或已废弃的一级分类(如废弃的 `anime`):
```text
/vol2/1000/media/library/
/vol3/1000/media/library/
├── movies/ # 电影库(华语电影、外语电影、动画电影等)
├── tv/ # 剧集库(所有电视剧、国漫、日番等动漫剧集均归入此处的二级目录)
├── music/ # 音乐库(飞牛音乐直接扫描,按 歌手/专辑 (年份)/歌曲 组织)
@@ -97,11 +98,11 @@
```
### 5.2 核心路径映射
- 媒体总根目录:`MEDIA_ROOT=/vol2/1000/media`
- 媒体库根目录:`LIBRARY_ROOT=/vol2/1000/media/library`
- 规范音乐目录:`MUSIC_ROOT=/vol2/1000/media/library/music`
- 网盘直链下载:`CLOUD_ROOT=/vol2/1000/media/cloud`
- PT 下载缓存:`DOWNLOAD_ROOT=/vol2/1000/media/downloads/pt`
- 媒体总根目录:`MEDIA_ROOT=/vol3/1000/media`
- 媒体库根目录:`LIBRARY_ROOT=/vol3/1000/media/library`
- 规范音乐目录:`MUSIC_ROOT=/vol3/1000/media/library/music`
- 网盘直链下载:`CLOUD_ROOT=/vol3/1000/media/cloud`
- PT 下载缓存:`DOWNLOAD_ROOT=/vol3/1000/media/downloads/pt`
---
@@ -154,4 +155,4 @@ networks:
- 变更中:修改对应子目录的 compose 或配置;
- 变更后:必须执行状态检查 (`docker ps`)、端口连通性检查 (`curl`) 与日志检查 (`docker logs --tail 50`),确保容器处于健康运行状态,方可向用户汇报。
4. **渐进式规则加载**:
本总纲为常驻核心规则;对于特定领域的深度规范,请查阅 [`.agents/rules/`](file:///vol1/1000/docker/.agents/rules/) 下的细分规范。
本总纲为常驻核心规则;对于特定领域的深度规范,请查阅 [`.agents/rules/`](file:///vol4/1000/docker/.agents/rules/) 下的细分规范。
+5 -4
View File
@@ -1,6 +1,6 @@
## 仓库概述
本目录 (`/vol1/1000/Docker`) 是基于 Docker Compose 的自托管基础设施生态系统。每个服务都在各自的子目录中运行,拥有独立的 `docker-compose.yml` 文件,并通过全局 `.env` 文件共享通用配置。
本目录 (`/vol4/1000/docker`) 是基于 Docker Compose 的自托管基础设施生态系统。每个服务都在各自的子目录中运行,拥有独立的 `docker-compose.yml` 文件,并通过全局 `.env` 文件共享通用配置。
**核心架构原则:**
- **模块化服务**:每个服务隔离在独立目录中,按功能分类组织
@@ -52,7 +52,7 @@ done
- 数据库凭据:`MYSQL_ROOT_PASSWORD`、`MYSQL_PASSWORD`、`POSTGRES_PASSWORD`、`REDIS_PASSWORD`
**存储路径:**
- `BACKUP_DIR=/vol1/1000/Docker/backups`
- `BACKUP_DIR=/vol4/1000/docker/backups`
- `MEDIA_ROOT=/vol3/1000/Media`(含子目录 `Cache`、`Pt`、`Porn`、`Music`)
## 服务分类与说明
@@ -60,9 +60,10 @@ done
### 📚 媒体服务
#### media-cloud (媒体云服务)
**端口范围:** 17080-17085
**端口范围:** 17080-17089
- **openlist**: 文件列表服务,端口 17081
- **aria2**: 网盘直链下载器,端口 17085
- **openlist-strm**: 115/网盘 STRM 生成与快照差分同步服务,端口 17088
*(注:pansou、quark-auto-save 已迁移至 Oracle ARM 云端运行)*
#### media-pt (PT 下载服务)
@@ -104,7 +105,7 @@ done
#### 代理配置管理
- **用途**:Oracle 双出口 Hysteria2 代理客户端配置集(支持 OpenWrt OpenClash、FlClash、sing-box PC & Android 1.14+)
- **维护路径**:`/vol2/1000/download/tool/代理/`(统一在此处维护,供各终端直接下载配置文件与 APK)
- **维护路径**:`/vol4/1000/download/tool/代理/`(统一在此处维护,供各终端直接下载配置文件与 APK)
## 端口规划总结
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../.env
+5 -5
View File
@@ -1,6 +1,6 @@
# Development 开发基础环境
本目录 (`/vol1/1000/docker/development/`) 汇集了自托管开发基础设施生态核心服务。各子服务拥有独立的 `docker-compose.yml`,通过软链接 `.env -> ../.env` 共享根目录的环境变量与凭据,并统一接入外部网络 `trim-default`。
本目录 (`/vol4/1000/docker/development/`) 汇集了自托管开发基础设施生态核心服务。各子服务拥有独立的 `docker-compose.yml`,通过软链接 `.env -> ../.env` 共享根目录的环境变量与凭据,并统一接入外部网络 `trim-default`。
---
@@ -55,9 +55,9 @@
- **认证凭据**:
- Root 用户名:读取全局 `${ADMIN_USER}` (`triplestone`)
- Root 密码:读取全局 `${ADMIN_PASSWORD}` (`Fn@20231216`)
- **存储持久化(机械硬盘池)**:
- 数据目录:`/vol2/1000/minio/data` (存储空间 2,9.1TB 机械存储池)
- 配置目录:`/vol2/1000/minio/config`
- **存储持久化**:
- 数据目录:`/vol4/1000/minio/data`
- 配置目录:`/vol4/1000/minio/config`
- **访问入口**:
- API 地址:`http://192.168.68.168:9000`
- 控制台 Web UI:`http://192.168.68.168:9001`
@@ -83,7 +83,7 @@
```bash
# 启动单个服务
cd /vol1/1000/docker/development/<service_name>
cd /vol4/1000/docker/development/<service_name>
docker compose up -d
# 查看运行日志
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../../.env
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../../.env
+1 -19
View File
@@ -53,25 +53,7 @@ services:
networks:
- trim-default
act-runner:
image: gitea/act_runner:latest
container_name: act-runner
restart: unless-stopped
network_mode: host
env_file:
- .env
environment:
- GITEA_INSTANCE_URL=http://192.168.68.168:17100
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_TOKEN}
- GITEA_RUNNER_NAME=local-runner
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://192.168.68.168:17100/triplestone/runner-java:latest,docker:docker://docker:dind
- GITEA_RUNNER_CONFIG=/data/config.yaml
- CONFIG_FILE=/data/config.yaml
volumes:
- ./act-runner/data:/data
- ./act-runner/cache:/root/.cache
- /var/run/docker.sock:/var/run/docker.sock
networks:
trim-default:
name: trim-default
external: true
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../../.env
+9 -9
View File
@@ -6,6 +6,9 @@ services:
env_file:
- .env
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- MINIO_ROOT_USER=${ADMIN_USER}
- MINIO_ROOT_PASSWORD=${ADMIN_PASSWORD}
- MINIO_BROWSER_REDIRECT_URL=http://192.168.68.168:9001
@@ -15,22 +18,19 @@ services:
- "9000:9000"
- "9001:9001"
volumes:
- /vol2/1000/minio/data:/data
- /vol2/1000/minio/config:/root/.minio
- /vol4/1000/minio/data:/data
- /vol4/1000/minio/config:/root/.minio
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- trim-default
deploy:
resources:
limits:
memory: 2G
- default
logging:
driver: "json-file"
options:
max-size: "50m"
max-size: "10m"
max-file: "3"
networks:
trim-default:
default:
name: trim-default
external: true
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../../.env
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../../.env
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../.env
+29
View File
@@ -16,6 +16,7 @@ services:
volumes:
- ./openlist/data:/opt/openlist/data
- ${CLOUD_ROOT}:/cloud:rw
- /vol4/1000/download:/download:rw
aria2:
@@ -25,6 +26,7 @@ services:
restart: unless-stopped
env_file:
- .env
- proxy.env
networks:
- default
ports:
@@ -39,6 +41,33 @@ services:
- ./aria2/config:/config
- ${CLOUD_ROOT}:/downloads:rw
openlist-strm:
image: ghcr.io/jinlin-teck/openlist-strm:latest
container_name: openlist-strm
restart: unless-stopped
user: "1000:1000"
depends_on:
- openlist
env_file:
- .env
- proxy.env
networks:
- default
ports:
- "17088:8080"
environment:
- TZ=${TZ}
volumes:
- ./openlist-strm/config:/app/config
- ${MEDIA_ROOT}/strm:/media/strm
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
default:
name: trim-default
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/media.env
../media.env
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../.env
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/media.env
../media.env
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/.env
../.env
+3 -2
View File
@@ -7,8 +7,8 @@ services:
stop_grace_period: 120s
env_file:
- .env
- proxy.env
- media.env
- proxy.env
networks:
- default
ports:
@@ -42,8 +42,8 @@ services:
restart: unless-stopped
env_file:
- .env
- proxy.env
- media.env
- proxy.env
networks:
- default
ports:
@@ -58,6 +58,7 @@ services:
volumes:
- ./bonita/data:/app/backend/data
- ${MEDIA_ROOT}:/media
- ${MEDIA_ROOT}:${MEDIA_ROOT}
networks:
default:
+1 -1
View File
@@ -1 +1 @@
/vol1/1000/docker/media.env
../media.env
+7 -7
View File
@@ -6,12 +6,12 @@
# ==============================================================================
# 核心媒体库根目录
MEDIA_ROOT=/vol2/1000/media
LIBRARY_ROOT=/vol2/1000/media/library
MEDIA_ROOT=/vol3/1000/media
LIBRARY_ROOT=/vol3/1000/media/library
# 细分媒体路径
DOWNLOAD_ROOT=/vol2/1000/media/downloads/pt
CACHE_ROOT=/vol2/1000/media/downloads/cache
PORN_ROOT=/vol2/1000/media/downloads/porn
MUSIC_ROOT=/vol2/1000/media/library/music
CLOUD_ROOT=/vol2/1000/media/cloud
DOWNLOAD_ROOT=/vol3/1000/media/downloads/pt
CACHE_ROOT=/vol3/1000/media/downloads/cache
PORN_ROOT=/vol3/1000/media/downloads/porn
MUSIC_ROOT=/vol3/1000/media/library/music
CLOUD_ROOT=/vol3/1000/media/cloud