Archived
docs(deploy): 部署方案——开发机构建 + 服务器轻构建(Caddy)
按熟悉的工作流调整:构建在开发机完成(四绿验证后的 dist 才是部署物),SFTP 上传 dist/Caddyfile/compose.yaml/Dockerfile 四件到服务器,服务器上 docker build 仅做 COPY(无构建工具链需求,秒级)。单阶段 Dockerfile;.dockerignore 不再排除 dist(部署必需品)且继续排除 .env*;README 部署章节重写为三步流程(本机构建/SFTP/服务器 compose)。compose 文件采用 Compose 规范标准名 compose.yaml(docker-compose.yml 仅为向后兼容保留)。
This commit is contained in:
@@ -50,10 +50,36 @@ bun run build # type-check + vite build(dist/)
|
||||
|
||||
## 已知边界
|
||||
|
||||
- 生产部署(`bun run build`)无 Vite 代理,需为网关路径配置反向代理
|
||||
- `useClipboard` 在非 https 环境(如 http://localhost)自动降级 `execCommand`
|
||||
- `/v1/models/:model` 单模型详情接口未纳入(数据源是硬编码静态表,与 `/v1/models` 不一致,无调试价值)
|
||||
|
||||
## 部署(开发机构建 + 服务器轻构建运行)
|
||||
|
||||
构建在开发机完成(四绿验证后的 dist 才是部署物),服务器只做镜像 COPY + 起容器,
|
||||
不需要任何构建工具链。
|
||||
|
||||
```bash
|
||||
# —— 开发机 ——
|
||||
bun run build # 得到 dist/(此时已过 test/type-check/lint)
|
||||
# SFTP 上传四个部署物到服务器同一目录:
|
||||
# dist/ Caddyfile compose.yaml Dockerfile
|
||||
# (.env 不上传,GATEWAY 在服务器上以 .env 或环境变量提供)
|
||||
|
||||
# —— 服务器(目录内需有 .env,内容为 GATEWAY=https://…)——
|
||||
docker compose up -d --build # 首次:拉 caddy 镜像 + COPY 产物起容器,秒级
|
||||
# 浏览器打开 http://<服务器IP>:8080
|
||||
|
||||
# —— 常规更新(开发机)——
|
||||
bun run build # 重新构建
|
||||
# SFTP 覆盖 dist/
|
||||
docker compose up -d --build # 服务器上重新 COPY + 替换容器
|
||||
```
|
||||
|
||||
- Caddy 承担与 dev 代理相同的职责:静态文件 + `/api`、`/v1` 转发到 `$GATEWAY` + SPA fallback
|
||||
- 换网关:改服务器上的 `.env` 后 `docker compose up -d --force-recreate`(无需重新 build)
|
||||
- 暴露公网时把 `Caddyfile` 的 `:80` 改为域名,Caddy 自动签发 HTTPS 证书
|
||||
- `compose.yaml`(Compose 规范标准文件名)里 `GATEWAY` 为必填(未设置时启动即报错,不会带错误配置运行)
|
||||
|
||||
## 文档
|
||||
|
||||
- 交互与技术决策:`docs/bench交互设计文档.md`
|
||||
|
||||
Reference in New Issue
Block a user