feat(web): 部署方式由 Docker 改为 Linux 原生站点(nginx + systemd)
需求变更:Web 服务端不再使用 Docker,改为直接运行在 Linux 上的网站。 - 移除 deploy/docker-compose.yml、web-server/Dockerfile、 web-server/admin/Dockerfile、web-server/.dockerignore - 新增 deploy/install.sh:建服务用户与目录 → 装运行期依赖 → 迁移 → 注册 systemd 服务 → 配置 nginx 站点 → 健康检查,一键完成 - 新增 deploy/systemd/opendance-api.service:ProtectSystem=strict 等 安全加固,ReadWritePaths 限定为上传目录 - 新增 deploy/nginx/opendance.conf:同站点托管管理端静态资源 + 反代 /api /health /static,client_max_body_size 512m,SPA 回退 - 新增 deploy/uninstall.sh:默认保留数据,--purge 才删除 - 新增配置项 HOST(AppConfig.bindHost):原生部署下 Node 只监听 127.0.0.1,不直接对外暴露,实测外部 IP 不可达 - 同步更新 contracts/rest-api.yaml、DSH.md、project.yaml、README.txt、 tasks/008、tasks/010 与发布打包脚本
This commit is contained in:
+23
-10
@@ -1,22 +1,35 @@
|
||||
# ============================================================
|
||||
# OpenDance Studio Web 服务端 —— 部署环境变量
|
||||
# 复制为 .env 后填写,.env 已被 .gitignore 忽略,禁止提交。
|
||||
# OpenDance Studio Web 服务端 —— Linux 原生部署环境变量
|
||||
#
|
||||
# 复制为 deploy/.env 后填写;.env 已被 .gitignore 忽略,禁止提交。
|
||||
# 该文件由 systemd 通过 EnvironmentFile 注入 Node 进程。
|
||||
# ============================================================
|
||||
|
||||
# ---- 现有 MySQL / MariaDB 实例(本项目不部署、不管理数据库)----
|
||||
# ---- 服务 ----
|
||||
NODE_ENV=production
|
||||
PORT=3000
|
||||
# 仅监听本机,由 nginx 反向代理对外提供服务(不要直接暴露 Node 进程)
|
||||
HOST=127.0.0.1
|
||||
|
||||
# ---- 现有 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
|
||||
|
||||
# ---- 端口映射(宿主机端口)----
|
||||
API_PORT=3000
|
||||
ADMIN_PORT=8080
|
||||
|
||||
# ---- 上传与预处理 ----
|
||||
# 单文件上限(字节),默认 512 MiB
|
||||
# ---- 文件存储 ----
|
||||
# 需与 install.sh 的 STORAGE_DIR 一致,且服务用户可写
|
||||
STORAGE_DIR=/var/lib/opendance/storage
|
||||
# 单文件上传上限(字节),默认 512 MiB;nginx 的 client_max_body_size 需不小于此值
|
||||
UPLOAD_MAX_BYTES=536870912
|
||||
# 可选:Assimp 可执行文件(FBX/glTF 动作预处理需要)
|
||||
|
||||
# ---- 可选的 Assimp(FBX/glTF 动作预处理)----
|
||||
ASSIMP_BIN=assimp
|
||||
|
||||
# ---- 契约目录 ----
|
||||
# 指向安装目录下的 contracts/,使 /health 与 /api/catalog/version 反映实时契约版本
|
||||
CONTRACTS_DIR=/opt/opendance/contracts
|
||||
|
||||
Reference in New Issue
Block a user