# 服务器登录与部署完整操作指南

## 第一步：登录服务器

### 方法 1：Windows PowerShell（最简单）

1. **打开 PowerShell**
   - 按 `Win + X`
   - 选择 **Windows Terminal** 或 **PowerShell**
   - 或者按 `Win + R`，输入 `powershell`，回车

2. **执行 SSH 登录命令**
   ```bash
   ssh root@47.98.113.167
   ```

3. **如果是第一次连接**
   - 会提示：`Are you sure you want to continue connecting (yes/no)?`
   - 输入 `yes`，回车

4. **输入密码**
   - 提示 `root@47.98.113.167's password:`
   - 输入服务器密码（输入时不显示，正常输入完回车即可）

5. **登录成功标志**
   ```
   Welcome to Ubuntu 22.04.x LTS
   root@服务器名称:~#
   ```

---

### 方法 2：使用 SSH 密钥（如果已配置）

如果你之前配置过密钥，直接：
```bash
ssh root@47.98.113.167
```
不需要输入密码，直接登录。

---

### 方法 3：通过阿里云/腾讯云控制台（如果忘记密码）

1. **登录云服务商控制台**
   - 阿里云：https://ecs.console.aliyun.com
   - 腾讯云：https://console.cloud.tencent.com/cvm

2. **找到你的服务器**
   - IP: `47.98.113.167`

3. **使用远程连接/VNC**
   - 点击 **远程连接** 或 **VNC**
   - 或者点击 **重置密码**，设置新密码后再用方法 1 登录

---

## 第二步：清理服务器空间

登录成功后，复制下面的命令，粘贴到终端，回车执行：

```bash
echo "=========================================="
echo "开始清理服务器..."
echo "=========================================="
echo ""
echo "当前磁盘占用："
df -h
echo ""
echo "清理 Docker 无用资源..."
docker system prune -a --volumes -f
echo ""
echo "清理 systemd 日志（保留 7 天）..."
journalctl --vacuum-time=7d
echo ""
echo "清理 APT 缓存..."
apt-get clean
apt-get autoremove -y
echo ""
echo "清理后磁盘占用："
df -h
echo ""
echo "=========================================="
echo "清理完成！"
echo "=========================================="
```

**预期结果：**
- 会输出清理前后的磁盘占用对比
- 至少释放几 GB 空间

---

## 第三步：执行部署

清理完成后，继续执行：

```bash
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker
chmod +x deploy-staging.sh
./deploy-staging.sh
```

**部署过程会：**
1. 复制环境变量文件
2. 确保 public 目录存在
3. 构建 api、worker、web 三个镜像
4. 启动所有容器

**预计时间：**
- api 和 worker：1-2 分钟（有缓存）
- web：3-5 分钟（需要 npm install + next build）

---

## 第四步：验证部署

部署完成后，检查服务状态：

```bash
# 查看容器状态
docker ps

# 测试 API
curl http://127.0.0.1:8000/api/v1/health

# 查看前端端口（3001）
curl -I http://127.0.0.1:3001
```

**成功标志：**
- `docker ps` 显示 5 个容器运行中（postgres、redis、api、worker、web）
- API 返回健康检查 JSON
- 前端返回 HTTP 200

---

## 第五步：访问服务

在你的浏览器打开：
- **API**: `http://47.98.113.167:8000/api/v1/health`
- **前端**: `http://47.98.113.167:3001`

---

## 常见问题

### Q1: 提示 "Permission denied"
**原因**: 密码错误或没有权限  
**解决**: 
- 确认密码正确
- 或者去云服务商控制台重置密码

### Q2: 提示 "Connection refused" 或 "Network error"
**原因**: 网络不通或服务器防火墙  
**解决**:
- 检查服务器是否开机
- 检查安全组/防火墙是否放行 22 端口

### Q3: 部署时提示 "No space left on device"
**原因**: 清理后空间还是不够  
**解决**:
```bash
# 查看最大的目录
du -sh /* | sort -hr | head -20

# 手动删除不需要的大文件/目录
```

### Q4: 部署过程中断
**原因**: 网络不稳定  
**解决**:
```bash
# 使用 tmux 隔离会话
tmux new -s deploy
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker
./deploy-staging.sh

# 按 Ctrl+B, 然后按 D 离开
# 部署继续在后台跑，不会因为 SSH 断开而中断

# 重新连接查看
tmux attach -t deploy
```

---

## 完整的一键操作（复制粘贴）

如果你想一次性执行所有步骤，登录后直接粘贴：

```bash
echo "========== 步骤 1: 清理空间 ==========" && \
docker system prune -a --volumes -f && \
journalctl --vacuum-time=7d && \
apt-get clean && apt-get autoremove -y && \
echo "" && echo "========== 步骤 2: 开始部署 ==========" && \
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker && \
chmod +x deploy-staging.sh && \
./deploy-staging.sh && \
echo "" && echo "========== 步骤 3: 验证服务 ==========" && \
docker ps && \
curl http://127.0.0.1:8000/api/v1/health && \
echo "" && echo "========== 部署完成！ =========="
```

---

## 需要帮助？

如果执行过程中遇到任何报错，把错误信息发给我，我帮你分析。
