Files
opendance-web/deploy/.env.example
T
zijunchiang 9f08d316d0 docs: 清除文档中的真实部署信息与易混淆 Unicode 字符
需求:公开仓库的说明文档不应暴露开发/部署期信息,且 Gitea 会对 README.txt
报"含模棱两可的 Unicode 字符"。

敏感信息(全部替换为占位符或文档示例值):
- 真实数据库实例:DB_HOST=192.168.150.10 / DB_USER=dpendance / DB_NAME=dpendance
  → <数据库主机> / opendance_app / opendance(web-server/.env.example、
  deploy/.env.example、contracts/database.md ×3 库、project.yaml、README.txt
  的建库 SQL、tasks/001、tasks/002)
- 内网网段 192.168.150.0/24 / 192.168.150.20 / 192.168.1.10
  → RFC 5737 文档网段 192.0.2.0/24 等(含测试夹具,行为不变)
- 真实 Gitea 域名 → https://<Gitea 地址>/<owner>/<repo>(systemd 单元、
  Windows/Android README 的交叉链接)
- 测试夹具里的真实口令字面量 → 虚构口令(仍覆盖特殊字符场景)
- 保留 /opt/opendance、/var/lib/opendance 等产品默认安装路径(非敏感)

README.txt 易混淆字符:
- 全角拉丁字母(I/K 等)与全角 ASCII 标点((),:;?)→ 半角 + 中文排版空格
- 正文里的乱码字节样例(模å…)→ 改为文字描述
- × → x,★ → *
- 注意:代码/测试/契约里的全角「IK」是 MMD 真实骨骼名,**必须保留**,
  已回滚误改(mmd-skeleton.ts、mmd-vmd.spec.ts、inspect-vmd.mjs、各契约)

验证:168 项单测通过(含 VMD 31 项,确认全角骨骼名未被破坏)。
2026-09-15 21:25:25 +08:00

65 lines
3.1 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# OpenDance Studio Web 服务端 —— Linux 原生部署环境变量
#
# 复制为 deploy/.env 后填写;.env 已被 .gitignore 忽略,禁止提交。
# 该文件由 systemd 通过 EnvironmentFile 注入 Node 进程。
# ============================================================
# ---- 服务 ----
NODE_ENV=production
# 软件 API 端口:Windows/Godot 客户端与 Android App 调用它
# (提供 /api、/health、/static、/contracts,**不提供管理页面**)
PORT=3000
# 管理端端口:浏览器访问管理界面(页面 + 上面全部接口)
# 不设置时默认 = PORT + 1(即 3001);设为与 PORT 相同即为单端口兼容模式
ADMIN_PORT=3001
# 监听地址:
# 反代与后端同机 → 127.0.0.1(后端不直接对外暴露,推荐)
# 反代在别的机器 → 0.0.0.0,并用防火墙把该端口限制为仅反代来源可访问
HOST=0.0.0.0
# 管理端单独绑定地址(可选)。只想让管理端暴露在内网时,例如 127.0.0.1 或内网网卡地址
# ADMIN_HOST=127.0.0.1
# 管理端静态站点目录(本服务自带管理端页面,反代只需整体转发到管理端端口)
ADMIN_DIR=/opt/opendance/admin
# ---- 现有 MySQL / MariaDB 实例(本项目不安装、不管理数据库)----
DB_HOST=<existing-mysql-host>
DB_PORT=3306
DB_USER=opendance_app
DB_PASS=<数据库口令>
DB_NAME=opendance
# 生产环境必须为 false,表结构一律走 TypeORM migration
DB_SYNCHRONIZE=false
DB_LOGGING=false
# ---- 文件存储 ----
# 需与 install.sh 的 STORAGE_DIR 一致,且服务用户可写
STORAGE_DIR=/var/lib/opendance/storage
# 单文件上传上限(字节),默认 512 MiB。
# ★ 反向代理层的同名限制必须不小于此值(nginx client_max_body_size /
# IIS requestLimits),否则大模型上传会在代理层被拒(413)。
UPLOAD_MAX_BYTES=536870912
# ---- 可选的 Assimp(FBX/glTF 动作预处理;也用于压缩包模型的转换)----
# 上传 .zip(内含 .pmx 的 MMD 模型包)时必须能调用到它,否则转换会失败
ASSIMP_BIN=assimp
# 需要转换的模型(PMX / FBX)交付格式:glb(默认,两个客户端都原生加载)| vrm
# glb:通用,客户端直接加载
# vrm:在 GLB 之上补 VRMC_vrm 扩展(humanoid 骨骼 / 表情语义);
# humanoid 骨骼名映射不全时会自动回退交付 GLB 并写进 conversion_note
MODEL_CONVERT_FORMAT=glb
# 压缩包里优先选用的 PMX 文件名(大小写不敏感);找不到时按"格式优先级 → 目录最浅 → 文件最大"挑
MODEL_CONVERT_PMX=Hatsune Miku.pmx
# 单次转换超时(毫秒)
MODEL_CONVERT_TIMEOUT_MS=180000
# ---- 默认模型(可选)----
# 显式指定默认模型 id;不设置时按源码 src/config/default-model.ts 里的种子匹配,
# 再回落到契约 data-models.md §4.1 的 VRM 优先规则
# DEFAULT_MODEL_ID=1
# ---- 契约目录 ----
# 指向安装目录下的 contracts/,使 /health 与 /api/catalog/version 反映实时契约版本
CONTRACTS_DIR=/opt/opendance/contracts