Files
xiaoxia-saas/infra/scripts/DEPLOY-GUIDE.md
T

212 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 服务器登录与部署完整操作指南
## 第一步:登录服务器
### 方法 1Windows 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 和 worker1-2 分钟(有缓存)
- web3-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 "========== 部署完成! =========="
```
---
## 需要帮助?
如果执行过程中遇到任何报错,把错误信息发给我,我帮你分析。