chore(部署): 增加 Docker 部署配置

关键改动:

- 新增本地和生产 Docker Compose、Web/Server Dockerfile 与 Nginx 模板

- 增加生产部署校验脚本、环境变量示例和 Prisma 初始迁移

- 更新部署文档、README 和架构/决策/流程/路线图说明

Co-Authored-By: Codex GPT-5 <codex@openai.com>
This commit is contained in:
Script Generator
2026-07-01 16:04:18 +08:00
parent 06b4aad7a4
commit 61f4ca51f1
22 changed files with 1051 additions and 1 deletions

View File

@@ -123,6 +123,25 @@ DevTask 没有"已完成"状态,"已提测"就是终态——开发交付完
**后续 V2.2(计划):**`app_data` 中稳定的数据形状逐步拆成关系表和领域 CRUD API。拆表前不要恢复业务 localStorage 缓存,避免线上部署后出现多端数据分叉。
## 生产部署层2026-07-01
当前仓库已补齐云服务器生产部署基线:
- `Dockerfile.web`:以 monorepo 根目录为 build context构建 `@ftb/shared` 和 Next.js 前端,运行 `pnpm --filter web start`
- `Dockerfile.server`:构建 `@ftb/shared` 和 NestJS 后端,执行 `prisma generate`,运行 `pnpm --filter server start:prod`
- `docker-compose.prod.yml`:编排 `web``server``postgres``redis``nginx` 五个服务,服务间通过 Docker 内网通信,对外只暴露 Nginx 80 端口。
- `docker-compose.local.yml`:本地服务器/局域网部署入口,同样编排五个服务,默认对外暴露 `8080`,使用独立 `local_*` volumes避免与云服务器生产数据混用。
- `deploy/nginx/default.conf.template`:同域反向代理,`/api/` 转发到 NestJS其他路径转发到 Next.js。
- `.env.production.example` / `.env.local-server.example`:生产和本地服务器配置模板;正式部署复制为 `.env.production``.env.local-server`,不提交真实密钥。
生产持久化边界:
- 业务主数据在 PostgreSQL `postgres_data` volume 中。
- Redis AOF 在 `redis_data` volume 中。
- AI Provider 配置文件在 `server_data` volume 中,对应容器路径 `/app/apps/server/data`
生产数据库初始化使用 Prisma migration`pnpm --filter server db:deploy`。本地开发仍可使用 `pnpm db:migrate`
## 权限模型(轻量)
V1 仅做前端校验,无后端鉴权: