8.0 KiB
Executable File
8.0 KiB
Executable File
AGENTS.md
本文件为在此代码仓库中工作的所有 AI Agent(包括 Antigravity、Claude Code、Cursor、Copilot 等)提供权威的系统规范与行为指导准则。
1. 项目定位与 Agent 角色定义
- 仓库路径:
/vol4/1000/docker - 系统性质:基于 Docker Compose 的自托管多媒体与私有云基础设施系统。
- Agent 核心使命: 作为本基础设施的专业 DevOps 运维与架构治理专家,确保服务的高可用性、模块化隔离、数据一致性、路径与权限规范性以及绝对的凭据安全。
2. 核心架构原则 (Architecture Principles)
- 模块化与垂直隔离:
按功能层级组织目录(下载层
media-cloud/media-pt、处理层media-servers、工具层development/lucky等),每个单元独立维护docker-compose.yml,严禁建立单点巨石 Compose。[emby/jellyfin 已改由飞牛应用中心安装,media-player 目录已移除] - 唯一配置真实源 (SSOT):
根目录
.env是所有共享配置与密码凭据的唯一源头。各子目录通过符号链接.env -> ../.env集中引用,严禁在 Compose 文件或子配置中硬编码敏感值。 - 共享网络通信 (
trim-default): 所有容器统一接入外部网络trim-default。服务间通信优先使用容器名直接寻址(例如moviepilot连接qbittorrent:8080、aria2:6800)。 - 统一重启策略:
所有生产服务强制使用
restart: unless-stopped。 - 用户权限控制 (PUID/PGID):
所有持久化挂载容器必须映射为非特权用户
PUID=1000, PGID=1000(triplestone:Administrators),新建或移动文件后必须确保所有权正确。
3. 标准目录布局 (Directory Layout)
/vol4/1000/docker/
├── .agents/ # 标准项目级 Agent 定制规范
│ ├── rules/ # 渐进式披露细分规则
│ │ ├── 01-architecture-compose.md # Compose 编排与服务分层规范
│ │ ├── 02-network-access.md # 网络拓扑与端口规划
│ │ ├── 03-storage-media.md # 媒体库与存储路径规范
│ │ └── 04-security-env.md # 凭据安全与环境变量规范
│ └── skills/ # 运维标准化技能 (Runbooks)
│ ├── api-auditor/ # API/端点可用性审计
│ └── docker-service-ops/ # 容器启停排障 SOP
├── .env # 全局主环境变量(唯一真实源)
├── media.env # 媒体存储路径专有变量
├── proxy.env # 代理环境变量(指向主路由 OpenClash)
├── AGENTS.md # 本规范总纲(顶级 SSOT,各工具原生直接支持)
├── README.md # 项目端口与历史概览
├── media-cloud/ # 云端下载层 (openlist, aria2) [pansou, quark-auto-save 已迁移至 Oracle ARM]
├── media-pt/ # PT 协议下载层 (qbittorrent, transmission)
├── media-servers/ # 元数据处理层 (moviepilot, bonita) [danmu-api 已迁移至 Oracle ARM, music-tag-web 已被飞牛音乐替代下线;emby/jellyfin 已改由飞牛应用中心安装]
├── calibre-web/ # 电子书服务
├── development/ # 开发与代码管理服务 (gitea) [dm8, redis, minio 已迁移并清理删除;sjzl 已废弃移除]
└── lucky/ # 反向代理与运维管理工具
4. 网络架构与局域网服务访问规范
4.1 网络拓扑
- 主路由 (
192.168.68.1):JDCloud AX1800 Pro(QWRT/OpenWrt,NSS 硬件加速),PPPoE 拨号(光猫桥接)、DHCP/IPv6 分发、运行 OpenClash(HTTP:7890, SOCKS5:7891)与 Tailscale。 - AP/Mesh 节点 (
192.168.68.125JDBox_Athena /192.168.68.144JDBox_Arthur):京东云无线宝,AP 模式专职 WiFi 覆盖,不参与路由/DHCP。 - 宿主机 (
192.168.68.168):承载全部 Docker 服务。
4.2 访问模式准则
- 状态:DDNS 与公网/域名访问已关闭。
- 访问标准:所有管理端与 WebUI 均采用
http://192.168.68.168:<PORT>局域网直连。
4.3 局域网端口清单
| 服务分类 | 服务名称 | 内部端口 | 局域网访问地址 | 核心职责 |
|---|---|---|---|---|
| 媒体管理 | MoviePilot V3 | 17021 | http://192.168.68.168:17021 |
影视自动识别、TMDB 刮削与整理入库 |
| 媒体管理 | Bonita | 17026 | http://192.168.68.168:17026 |
媒体辅助工具 |
| 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 服务 |
| 系统管理 | Lucky | 13070 | http://192.168.68.168:13070 |
运维与端口转发面板 |
5. 存储架构与媒体库规范
5.1 媒体库结构规范 (/vol3/1000/media/library)
必须严格保持以下规范英文子目录,严禁产生未约定的中文一级目录或已废弃的一级分类(如废弃的 anime):
/vol3/1000/media/library/
├── movies/ # 电影库(华语电影、外语电影、动画电影等)
├── tv/ # 剧集库(所有电视剧、国漫、日番等动漫剧集均归入此处的二级目录)
├── music/ # 音乐库(飞牛音乐直接扫描,按 歌手/专辑 (年份)/歌曲 组织)
└── porn/ # 特定隔离内容
5.2 核心路径映射
- 媒体总根目录:
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
6. 标准 Docker Compose 规范模板
添加或修改服务时,必须严格符合以下模板:
services:
<service_name>:
image: <image>:<tag>
container_name: <service_name>
restart: unless-stopped
env_file:
- .env
- proxy.env # 可选:需要外网代理(主路由 OpenClash)时使用
- media.env # 可选:媒体相关服务使用
networks:
- default
ports:
- "<HOST_PORT>:<CONTAINER_PORT>"
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ./config:/app/config
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
default:
name: trim-default
external: true
7. Agent 行为底线与防爆安全守则 (Guardrails)
- 绝对禁止硬编码敏感信息:
任何密码、API Token、Secret 必须从
.env引用,严禁明文写入 Compose 文件或脚本。 - 严防跨卷/文件权限混乱:
容器生成的文件必须归属
1000:1000。迁移或批量创建目录后必须主动校验文件属主。 - 服务变更闭环验证流程:
- 变更前:排查依赖与关联路径;
- 变更中:修改对应子目录的 compose 或配置;
- 变更后:必须执行状态检查 (
docker ps)、端口连通性检查 (curl) 与日志检查 (docker logs --tail 50),确保容器处于健康运行状态,方可向用户汇报。
- 渐进式规则加载:
本总纲为常驻核心规则;对于特定领域的深度规范,请查阅
.agents/rules/下的细分规范。