Files
UHD_Media_Tool/docker/compose.env.example
T
rootandClaude Opus 5.5 ceb66f8c77 feat: v0.3.8–v0.3.14 工作区汇总(依赖升级、整理来源、手动入库、原地入库等)
生产 v0.3.8~v0.3.13 均由 8013196 加工作区修改构建部署,此前未提交;本提交补齐源码,
并含未部署的 v0.3.14 原地入库。中间各版本源码状态未保存,无法逐版拆分,详见
docs/plan/17-full-upgrade.md 与 docs/plan/18-organize-release.md。

- v0.3.8 全面升级:Deno workspace 依赖、Router 8 / Vite 8、camofox 1.18.0 / Node 24、
  PostgreSQL 18.6、备份客户端 18.6、演示 qB 5.2.4
- v0.3.9 媒体整理:分类规则、整理来源与目录快照(0059)、文件管理整理入口
- v0.3.10 手动下载与入库:独立手动下载、详情页资源下载、TMDB / Local 元数据兜底
  (metadata.resolve_organize)、正常多版本 / 一次性洗版(0060)
- v0.3.11 搜索详情与桌面黑边修复
- v0.3.12 列表分页、搜索历史、首页概况
- v0.3.13 统一整理弹窗与队列
- v0.3.14 原地入库(0061,未部署)

同批审计修复:
- 刮削入队:确认原记录存在后才删重放产生的新记录;写回 run 关联失败时保持 queued,
  由处理器补关联(对齐 MP 先登记、只在入队失败时记失败)
- 识别升级链只在结果更确定时采用,不再用 no_match 顶替原有歧义候选
- bluray_dir 资产以原盘目录本身为刮削根(MP 同做法)
- metadata.resolve_organize 登记到入库排障 Skill 与能力地图
- db/src/types.ts 按迁移重新生成;contracts 整理动作枚举顺序与数据库对齐
- 测试:原地入库用例改为直接查记录表;domain 测试模板补 version
- 前端:通知铃铛弹层与用户菜单统一样式;站点卡片共用卡头、底栏贴底、分页间距

依赖升级证据只提交摘要文件,registry-snapshot.json 移至 .local/(SHA-256 记于文档)。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-02 15:47:17 +08:00

86 lines
3.9 KiB
Bash

# docker compose 用的环境变量(复制为部署目录下的 .env)。
#
# SECRET_MASTER_KEY:凭证加密主密钥,生成一次后永不更换(换了之前存的站点/下载器/模型密钥全部无法解密)。
# 生成:openssl rand -hex 32
# 必须与数据库备份分开保管(密码管理器 / 离线介质);备份里不含它,丢了它备份里的密钥也无法恢复。
SECRET_MASTER_KEY=
# 数据库密码:openssl rand -hex 16
POSTGRES_PASSWORD=
# 对外端口与绑定地址(放在反代后面时可改成 127.0.0.1)
UMT_PORT=4380
UMT_BIND=0.0.0.0
# 容器运行用户:与宿主媒体目录属主一致,例如 id -u / id -g 的输出
PUID=10001
PGID=10001
# 备份保留份数(0 = 不轮转)
BACKUP_KEEP=14
# PG 内存(缺省按 4C/8G 给 PG 3G;调整方法见 docs/runbook/storage.md「PG 参数」)
# PG_MEM_LIMIT=3g
# PG_SHARED_BUFFERS=2GB
# PG_EFFECTIVE_CACHE_SIZE=5GB
# PG_WORK_MEM=32MB
# PG_MAINTENANCE_WORK_MEM=256MB
# PG_MAX_WAL_SIZE=2GB
LOG_LEVEL=info
# APP_VERSION=v0.3.8
# 国内网络构建换源(可选):APT_MIRROR=mirrors.ustc.edu.cn
# 桌面底座 HTTPS 软件源代理(仅构建时生效,地址须能从构建网络访问):APT_HTTPS_PROXY=http://代理地址:端口
# worker 并发(可选):io 组分文件 / 网络 / 维护三条道,agent 组(Agent 会话)单独一池。
# 三条道缺省用 设置 → 自动化 → 高级 里的值(可热改);设了下面的变量就以变量为准。
# 旧 WORKER_CONCURRENCY 映射到网络道。
# WORKER_FILE_CONCURRENCY=2
# WORKER_NETWORK_CONCURRENCY=4
# WORKER_MAINTENANCE_CONCURRENCY=1
# WORKER_AGENT_CONCURRENCY=2
# 手动按路径整理时递归遍历的文件数上限(dryRun 超出返回 truncated,正式执行拒绝)
# ORGANIZE_WALK_MAX_FILES=5000
# ── 浏览器服务(camofox-browser,原站视图 / Agent 浏览器能力;docs/runbook/browser.md)──
# 缺省随 compose 起一个 camofox 容器(只在内网,不映射端口),app 自动登记为 camofox-env。
# 缺省镜像是浏览器桌面(原站视图桌面模式,docker/browser-desktop);要先有 camofox-browser:1.18.0(runbook browser.md §1.1)。
# 访问凭据:camofox 与 app 共用;建议设置(openssl rand -hex 24)。桌面模式的控制 / 只读口令也由它派生,不设则桌面模式不可用
CAMOFOX_ACCESS_KEY=
# 接自有 camofox 实例:改成它的地址与凭据,并把 CAMOFOX_REPLICAS 设 0
# BROWSER_PROVIDER_URL=http://camofox:9377
# BROWSER_ACCESS_KEY=
# 完全不用浏览器:CAMOFOX_REPLICAS=0 且 BROWSER_ENABLED=false(界面标"浏览器不可用")
# CAMOFOX_REPLICAS=1
# BROWSER_ENABLED=true
# 桌面接管 / 人工接管 / 智能体正在用的浏览器会话的保活间隔(毫秒,0 = 关闭;要比 camofox 标签页空闲回收 5 分钟短)
# BROWSER_KEEPALIVE_MS=120000
# camofox 调优(可选):会话空闲回收(回收时落盘登录状态)、浏览器空闲退出、最多会话数、内存上限
# CAMOFOX_SESSION_TIMEOUT_MS=1800000
# CAMOFOX_BROWSER_IDLE_TIMEOUT_MS=300000
# CAMOFOX_MAX_SESSIONS=8
# CAMOFOX_MEM_LIMIT=3g
# CAMOFOX_LOCALE=zh-CN
# CAMOFOX_TIMEZONE=Asia/Shanghai
# ── 原站视图桌面模式(docs/runbook/browser.md §8)──
# 只要截图模式:改回纯截图镜像(同一个卷,登录状态通用)
# CAMOFOX_IMAGE=camofox-browser:1.18.0
# 桌面分辨率与帧率(纯 CPU 编码,持续滚动约占 1 核)
# BROWSER_DESKTOP_WIDTH=1280
# BROWSER_DESKTOP_HEIGHT=900
# BROWSER_DESKTOP_FRAMERATE=24,8-30
# 容器内输入法(备选;缺省用访问者本机输入法):fcitx5
# BROWSER_DESKTOP_IME=
# 桌面浏览器进程的运行用户
# CAMOFOX_PUID=1000
# CAMOFOX_PGID=1000
# 桌面上游地址(缺省由 BROWSER_PROVIDER_URL 推出,端口换 3000)
# BROWSER_DESKTOP_URL=http://camofox:3000
# ── HTTPS(可选,compose profile tls;桌面模式的视频解码与剪贴板需要 HTTPS)──
# docker compose --profile tls up -d
# 不设 TLS_DOMAIN = 自签(Caddy 内部 CA);设域名 + TLS_ISSUER=邮箱 = ACME 自动证书
# TLS_DOMAIN=media.example.com
# [email protected]
# TLS_PORT=443
# TLS_BIND=0.0.0.0