refactor(storage): 数据卷路径由 vol2 迁移至 vol3 并同步编排与文档
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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/) 下的细分规范。
|
||||
|
||||
@@ -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
@@ -1 +1 @@
|
||||
/vol1/1000/docker/.env
|
||||
../.env
|
||||
@@ -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 @@
|
||||
/vol1/1000/docker/.env
|
||||
../../.env
|
||||
@@ -1 +1 @@
|
||||
/vol1/1000/docker/.env
|
||||
../../.env
|
||||
@@ -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 @@
|
||||
/vol1/1000/docker/.env
|
||||
../../.env
|
||||
@@ -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 @@
|
||||
/vol1/1000/docker/.env
|
||||
../../.env
|
||||
@@ -1 +1 @@
|
||||
/vol1/1000/docker/.env
|
||||
../../.env
|
||||
+1
-1
@@ -1 +1 @@
|
||||
/vol1/1000/docker/.env
|
||||
../.env
|
||||
@@ -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 @@
|
||||
/vol1/1000/docker/media.env
|
||||
../media.env
|
||||
+1
-1
@@ -1 +1 @@
|
||||
/vol1/1000/docker/.env
|
||||
../.env
|
||||
+1
-1
@@ -1 +1 @@
|
||||
/vol1/1000/docker/media.env
|
||||
../media.env
|
||||
+1
-1
@@ -1 +1 @@
|
||||
/vol1/1000/docker/.env
|
||||
../.env
|
||||
@@ -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 @@
|
||||
/vol1/1000/docker/media.env
|
||||
../media.env
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user