Add installation and initial setup documentation

- Add docs/installation.md covering prerequisites, port usage, Docker startup, local development setup, default accounts, first-run validation, and common setup issues.

- Link the installation guide from the project README and docs index.

- Point deployment documentation to the installation guide for first-time setup.

- Update AGENTS.md and progress documentation to include the new installation guide.
This commit is contained in:
2026-05-02 02:30:08 +08:00
parent 8de3a12dc1
commit e67763fa82
6 changed files with 238 additions and 0 deletions

View File

@@ -207,6 +207,7 @@ npm run test:e2e
│ └── tsconfig.json
├── docs/
│ ├── README.md
│ ├── installation.md
│ ├── requirements.md
│ ├── design.md
│ ├── permissions.md

View File

@@ -19,6 +19,8 @@
更细的功能真实性判断见 [docs/features.md](./docs/features.md)。
首次安装、端口规划、数据库初始化和常见问题见 [docs/installation.md](./docs/installation.md)。
## 技术栈
- React 19
@@ -177,6 +179,7 @@ cp .env.example .env.local
## 文档
- [docs/README.md](./docs/README.md):文档入口。
- [docs/installation.md](./docs/installation.md):安装、初始设置和首次验收。
- [docs/requirements.md](./docs/requirements.md):需求文档。
- [docs/design.md](./docs/design.md):设计文档。
- [docs/features.md](./docs/features.md):功能真实性盘点。

View File

@@ -4,6 +4,7 @@
## 文档结构
- [安装与初始设置](./installation.md):从源码到可登录系统的首次安装、端口、数据库初始化和常见问题。
- [需求文档](./requirements.md):业务目标、用户角色、功能需求和非功能约束。
- [设计文档](./design.md):前端架构、路由、状态、数据模型和关键设计取舍。
- [权限设计](./permissions.md):已确定的角色、部门、报告、模板和 AI 上下文权限规则。

View File

@@ -1,5 +1,7 @@
# 部署运行
如果是第一次安装项目,建议先阅读 [安装与初始设置](./installation.md)。本文档主要记录开发运行、质量检查、环境变量和 Docker/Nginx 部署边界。
## 本地开发
前端:

230
docs/installation.md Normal file
View File

@@ -0,0 +1,230 @@
# 安装与初始设置
本文档面向第一次接手项目的开发者,目标是把系统从源码启动到可登录、可保存报告。部署细节见 [部署运行](./deployment.md),业务和架构背景见 [文档入口](./README.md)。
## 前置要求
- Node.js 20 或更高版本。
- npm。
- Docker 与 Docker Compose用于一键启动 PostgreSQL、API 和前端。
- Linux/macOS shell 环境Windows 建议使用 WSL。
确认工具可用:
```bash
node --version
npm --version
docker --version
docker compose version
```
## 端口规划
本项目已避开常见默认端口:
| 用途 | 本地/宿主机端口 | 说明 |
| --- | --- | --- |
| Vite 前端开发服务 | `3001` | 仅 `npm run dev` 使用 |
| NestJS API 本地服务 | `3100` | `npm run server:dev` 默认监听 |
| Docker API 暴露端口 | `3002` | 宿主机访问 Compose API |
| Docker 前端入口 | `4002` | 推荐的整套系统访问入口 |
| Docker PostgreSQL | `5433` | 宿主机访问 Compose 数据库 |
如果这些端口被占用,优先修改 `.env``docker-compose.yaml` 和对应文档,避免回退到 `3000` 等默认端口。
## 推荐方式Docker 一键启动
第一次启动:
```bash
npm install
docker compose up -d --build
```
启动后访问:
```text
http://localhost:4002
```
健康检查:
```bash
curl http://localhost:4002/api/health
curl http://localhost:3002/api/health
```
当前 Compose 会启动:
- `tuwen_web`Nginx 托管前端,宿主机端口 `4002`
- `tuwen_api`NestJS API容器内监听 `3100`,宿主机端口 `3002`
- `tuwen_db`PostgreSQL 16宿主机端口 `5433`
查看状态:
```bash
docker compose ps
```
停止:
```bash
docker compose down
```
连数据卷一起清理会删除数据库和上传文件,只在确认不需要当前数据时使用:
```bash
docker compose down -v
```
## 本地开发方式
如果希望前端热更新、后端直接跑在本机,可以按下面启动。
安装依赖并创建环境变量:
```bash
npm install
cp .env.example .env
```
先准备 PostgreSQL。可以复用 Compose 的数据库:
```bash
docker compose up -d db
```
生成 Prisma Client、执行迁移和 seed
```bash
npm run prisma:generate
npm run prisma:migrate
npm run prisma:seed
```
启动后端 API
```bash
npm run server:dev
```
API 默认地址:
```text
http://localhost:3100/api/health
```
另开一个终端启动前端开发服务:
```bash
npm run dev
```
前端开发地址:
```text
http://localhost:3001
```
开发模式下Vite 会把 `/api` 代理到 `VITE_API_PROXY_TARGET`,默认是 `http://localhost:3100`。如果你想用本机 Vite 前端连接 Docker Compose API`.env` 中的目标改成:
```bash
VITE_API_PROXY_TARGET="http://localhost:3002"
```
## 默认账号
默认数据由后端 seed 写入:
| 用户ID | 密码 | 角色 |
| --- | --- | --- |
| `admin` | `123456` | 超级管理员 |
| `manager` | `123456` | 管理员 |
| `0001` | `123456` | 医生 |
登录后建议先进入“系统设置”确认 AI Provider、讯飞语音配置、默认模板和抽帧策略。AI 与语音密钥保存在后端 Settings API 中,不应写入源码、文档或提交记录。
## 初次验收
完成启动后建议按顺序验证:
1. 打开 `http://localhost:4002` 或本地开发地址 `http://localhost:3001`
2. 使用 `admin / 123456` 登录。
3. 进入工作台,确认统计卡片能正常加载。
4. 进入“系统设置”,确认全局配置可保存。
5. 使用医生账号 `0001 / 123456` 新建报告并保存草稿。
6. 进入“报告管理”,确认能看到刚保存的报告。
命令行验证:
```bash
npm run lint
npm run test
npm run build
```
后端、权限或关键流程变更后再运行:
```bash
npm run server:build
npm run test:e2e
```
## 常见问题
### 保存草稿提示后端不可用
先检查当前访问入口和 API 健康检查:
```bash
curl http://localhost:4002/api/health
curl http://localhost:3002/api/health
docker compose ps
```
Docker 方式应访问 `http://localhost:4002`。本地开发方式应确保 `npm run server:dev` 正在运行,并且 `VITE_API_PROXY_TARGET` 指向 `http://localhost:3100`
### 端口被占用
检查占用:
```bash
ss -ltnp | grep -E ':3001|:3002|:3100|:4002|:5433'
```
本项目不应使用 `3000` 作为默认 API 端口。如果必须改端口,同步修改 `.env``docker-compose.yaml``vite.config.ts` 或 Nginx upstream并更新文档。
### 数据库连接失败
如果使用 Compose 数据库,确认 `tuwen_db` 正常运行:
```bash
docker compose ps db
```
本地默认连接串在 `.env.example` 中:
```text
postgresql://surclaw:surclaw_dev_password@localhost:5433/surclaw?schema=public
```
修改数据库配置后重新运行:
```bash
npm run prisma:generate
npm run prisma:migrate
npm run prisma:seed
```
### AI 或讯飞提示未配置
AI 对话和讯飞语音均通过后端代理读取系统设置。使用超级管理员进入“系统设置”,填写并保存 AI Provider、模型名称和讯飞 APPID/APIKey/APISecret。普通用户读取设置时不会拿到真实密钥。
### 前端页面像旧版本
Docker 重建后浏览器可能仍缓存旧 bundle。先强制刷新页面仍异常时重新构建
```bash
docker compose up -d --build
```

View File

@@ -72,3 +72,4 @@
| 2026-05-02 | 新增 `ReportMedia` 表和迁移,报告视频/关键帧引用从 `Report.metadata` 拆出。 |
| 2026-05-02 | 新增 Dashboard API、数据库 Session Store、审计服务、HTML 白名单清洗、本地回退开关和 Docker 上传目录 volume清理 Gemini 旧依赖。 |
| 2026-05-02 | 新增审计日志查询 API/页面、Auth Context 路由角色守卫,并把 Playwright E2E 改为真实后端 API seed。 |
| 2026-05-02 | 新增安装与初始设置文档,补充首次启动、端口规划、数据库初始化、验收步骤和常见问题。 |