# Terminus 小白部署清单（11 数据库 + 185 应用 + 12 Nginx）

## 0. 机器分工
- `192.168.7.11`：PostgreSQL
- `192.168.7.185`：Docker 应用（frontend + backend）
- `192.168.7.12`：Nginx（域名 `dws.dtacloud.cn`）

## 1. 先在 Mac 本地准备
项目根目录：`达沃斯会议心理测评系统`

- 把 `deploy/.env.11-185-12.example` 复制为 `.env`，再把占位密码改成真实值：
```bash
cd "达沃斯会议心理测评系统"
cp deploy/.env.11-185-12.example .env
```

## 2. 在 11 上安装并初始化 PostgreSQL
登录：`opt@192.168.7.11`

```bash
sudo apt update
sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql
```

创建账号和库（密码要和 `.env` 一致）：
```bash
sudo -u postgres psql -c "CREATE USER davos_prod WITH PASSWORD '你的DB强密码';"
sudo -u postgres psql -c "CREATE DATABASE davos_assessment OWNER davos_prod;"
```

## 3. 在 185 上上传并启动应用
登录：`ubuntu@192.168.7.185`

```bash
sudo mkdir -p /opt/davos
sudo chown -R $USER:$USER /opt/davos
cd /opt/davos
```

用 Terminus SFTP 把本地压缩包上传到 `/opt/davos/`，然后执行：
```bash
tar -xzf davos-assessment-11-185-12.tar.gz
cd "达沃斯会议心理测评系统"
cp deploy/.env.11-185-12.example .env
# 编辑 .env，把占位符密码/邮箱改成真实值
```

启动：
```bash
docker compose up -d --build
docker compose ps
```

首次成功后，建议把 `.env` 中这两个改为 `false`，再重启一次：
- `SEED_ADMIN_ENABLED=false`
- `SEED_INVITE_ENABLED=false`

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

## 4. 在 12 上配置 Nginx
登录：`ops@192.168.7.12`

示例配置（按你现有目录放到站点 conf）：
```nginx
server {
    listen 80;
    server_name dws.dtacloud.cn;

    location /api/ {
        proxy_pass http://192.168.7.185:8080/api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location / {
        proxy_pass http://192.168.7.185:8088/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
```

检查并重载：
```bash
sudo nginx -t
sudo systemctl reload nginx
```

## 5. 验证
- 在 185 上：
```bash
curl -I http://127.0.0.1:8088
curl -I http://127.0.0.1:8080/actuator/health
```
- 任意机器：
```bash
curl -I http://dws.dtacloud.cn
```

## 6. HTTPS 证书
确认 HTTP 正常后，再在 12 上做自动证书（acme/certbot），并将 80 跳转 443。
