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:
2026-09-14 22:42:56 +08:00
parent 0c133986b4
commit 75498db1c0
18 changed files with 516 additions and 315 deletions
+4 -2
View File
@@ -2,10 +2,10 @@
# ============================================================
# 打包发布产物:opendance-web-v0.1.0.tar.gz
#
# 产物结构(文档 §4.4):
# 产物结构(Linux 原生站点部署,不使用 Docker):
# web-server/ NestJS 源码 + 构建产物
# admin/ React 管理端构建产物
# deploy/ docker-compose.yml / install.sh / .env.example
# deploy/ install.sh / uninstall.sh / .env.example / nginx / systemd
# contracts/ 当前版本契约快照
# THIRD_PARTY.md 开源项目声明
# README.txt 使用说明
@@ -66,7 +66,9 @@ else
fi
cp -r deploy "$STAGE/deploy"
# 部署配置里绝不能带真实 .env(含数据库口令)
rm -f "$STAGE/deploy/.env"
rm -rf "$STAGE/deploy"/systemd/*.bak "$STAGE/deploy"/nginx/*.bak
cp -r contracts "$STAGE/contracts"
cp THIRD_PARTY.md README.txt project.yaml DSH.md "$STAGE/"
cp -r tasks "$STAGE/tasks"