# 真实服务器部署与摸排手册

## 1) 先在本地打包

```bash
cd /Users/wangguolin/Desktop/测评/达沃斯会议心理测评系统
./scripts/prepare-server-bundle.sh
```

会输出 `PACKAGE=...tar.gz`。

## 2) 上传到服务器

```bash
scp /path/to/davos-assessment-server-*.tar.gz user@SERVER_IP:/opt/
```

## 3) 服务器现状摸排（先执行）

```bash
ssh user@SERVER_IP
uname -a
cat /etc/os-release
docker --version
docker compose version
free -h
nproc
df -h
ss -lntp | grep -E ':80|:443|:8080|:8088|:5432' || true
```

## 4) 解包并部署

```bash
cd /opt
mkdir -p davos-assessment
tar -xzf davos-assessment-server-*.tar.gz -C davos-assessment
cd davos-assessment
cp .env.production.example .env
```

编辑 `.env`（至少改这些）：

- `POSTGRES_PASSWORD`
- `DATABASE_PASSWORD`
- `JWT_SECRET`
- `ADMIN_EMAIL`
- `ADMIN_PASSWORD`
- `SEED_INVITE_CODE`
- `CORS_ALLOWED_ORIGINS`
- `VITE_API_BASE_URL`

然后启动：

```bash
docker compose up -d --build
```

## 5) 验收

```bash
docker compose ps
docker compose logs -f backend
curl http://127.0.0.1:8080/api/health
```

## 6) 性能参数（已接入 compose）

后端会读取以下参数（来自 `.env`）：

- `SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE`
- `SPRING_DATASOURCE_HIKARI_MINIMUM_IDLE`
- `SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT`
- `SERVER_TOMCAT_THREADS_MAX`
- `SERVER_TOMCAT_THREADS_MIN_SPARE`
- `SERVER_TOMCAT_ACCEPT_COUNT`
- `HIBERNATE_JDBC_BATCH_SIZE`

建议保持默认值先上线，再按真实监控微调。

1000 人并发和多实例部署见 `docs/CONCURRENCY_CAPACITY.md`。简要结论：1000 人同时在线填写测评可以支撑；1000 人同一秒集中注册、登录或提交，需要结合服务器规格压测确认，且不建议和批量 PDF 导出同时发生。单台多核服务器可用 `docker compose -f docker-compose.cluster.yml up -d --build --scale backend=4` 起步。
